別のLinuxマシンへの実行可能ファイルの移植性


11

Linuxマシン(M1)にモーションプログラムをインストールし、別のマシン(M2)に同じプログラムをインストールします。

このプログラムにはさまざまなビルドがあり、どれを使用したか忘れてしまいました。M1からuser / bin / motionファイルを直接コピーして、M2のuser / bin / motionに配置できますか?

構成ファイルの場所がわかっているので、それを横切って移動しますが、M2で動作バージョンのモーションが使用しているビデオドライバーがどれなのかはわかりません。見つける方法はありますか?

依存関係を見つける方法はありますか?


参考までに、これはほとんど常に悪い考えです。他のプラットフォームに対するLinuxの大きな利点の1つは、パッケージ管理です。バイナリをシステムディレクトリに手動でコピーすると、パッケージマネージャーを回避できます。多くの場合、これはバイナリの更新を手動で行う必要があることを意味しますが、場合によっては、システムの更新で重大な問題が発生する可能性があります。TL; DR:パッケージマネージャーを使用します。
HalosGhost 2014年

論理的に聞こえるので、dpkgを使用してこのタスクをどのように実行しますか?
レジー2014年

必要なツールを提供するパッケージがお使いのOSで本当に利用できない場合は、そのパッケージを作成します(思ったより難しくありません)。次に、dpkgを使用してパッケージをインストールします。
HalosGhost 2014年

どういう意味かわかりません。すでにインストールされているプログラムからパッケージを作成できますか?
レジー

いいえ、パッケージ化は別のプロセスです。しかし、それを学ぶことは非常に貴重なスキルです。ただし、ディストリビューション(または少なくともパッケージマネージャー)固有です。
HalosGhost 2014年

回答:


12

1つのプログラムを他のコンピューターに移動するには、移動する必要があります。

1)実行可能ファイル
コマンドパスを見つける簡単な方法はtypeコマンドです。

例えば: type cal

calは/ usr / bin / calです

2)ライブラリの依存関係コマンドで
ライブラリの依存関係を見つけることができlddますが、ソースからプログラムをコンパイルした場合は、両方のサーバーのCPUアーキテクチャが同じである必要があります。

例えば: ldd date

linux-vdso.so.1 =>(0x00007fff83dff000)
librt.so.1 => /lib64/librt.so.1(0x0000003784e00000)libc.so.6
=> /lib64/libc.so.6(0x0000003783e00000)libpthread
。 so.0 => /lib64/libpthread.so.0(0x0000003784200000)/lib64/ld-linux-x86-64.so.2(0x0000003783a00000

3)構成ファイル
新しいサーバーでは、構成ファイルが以前のサーバーに属しているため、構成ファイルを再作成するようにプログラムに指示する必要がある場合があります。

4)ハードウェアの依存関係の
チェックこれをチェックするには、ハードウェアをサポートするためにプログラムのWebサイトをチェックするか、新しい環境でプログラムをテストする必要があると思います。


実行可能ファイルが格納されている場所を見つけるにはどうすればよいですか?私はそれをuser / bin /のモーションと呼んでいると思います。これはマシンの起動時に実行されるので、実行可能ファイルが格納されている場所についての手がかりを教えてくれますか?
レジー2014年

@reggie、typeコマンドは簡単な方法です。私は自分の投稿を編集しました。
Sepahrad Salour 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.