ソースからビルドされたバイナリを2台目のコンピュータにインストールできますか?

ソースからビルドされたバイナリを2台目のコンピュータにインストールできますか?

これがこの質問をするのに最適な場所であるかどうかわかりません。より良い場所がある場合は、正しい方向を教えてください。

2台のコンピュータがあるとしましょう。 Aは開発用コンピュータ、Bは生産用コンピュータです。 Aには、ソースコードからソフトウェアを構築するために使用できるコンパイラに似たソフトウェアがありますが、Bにはありません。

Aでは、一般的なルーチンに従ってソースからソフトウェアを簡単に構築できます。

./configure
make

その後、を実行してAにビルドされたソフトウェアをインストールできますsudo make install。しかし、私が本当にやりたいことは、Bに構築したばかりのソフトウェアをインストールすることです。最良のアプローチは何ですか?

私は次のオプションを考えました。

  1. パッケージマネージャを使用してBにソフトウェアをインストールする:パッケージマネージャで利用可能なソフトウェアが非常に古くなっているため、これは私にとってオプションではありません。
  2. Bにコンパイラや他のビルドツールをインストールする:さまざまな制約のため、本番システムにビルドツールをインストールしたくありません。
  3. AからBへのバイナリの手動コピー:これはエラーが発生しやすい操作なので、バイナリが本番システムに一貫した方法でインストールされていることを確認したいと思います。
  4. Bにのみインストールしてmakeソースディレクトリを転送した後、sudo make installBで実行します。これはこれまでに見つけた最高のソリューションですが、何らかの理由で(クロックドリフトかもしれません)、すでに必要なmakeソフトウェアを再構築しようとします。なぜなら失敗するからです。ビルドツールがBにインストールされていません。私のコンピュータのI / O速度も不都合なので、元のディレクトリを転送するのに時間がかかります。

バイナリと構成ファイルをインストールするために転送して実行できるビルドされたバイナリを含むパッケージの種類を作成する方法がある場合は、これをお勧めします。そのようなツールがありますか?

ベストアンサー1

これまでに持っているものを使用してMakefileがGNU autotoolsを使用して作成された場合は、次のように設定します。ターゲットの場所またはインストールパスそして

./configure --prefix=/somewhere/else/than/the/usual/usr/local

その後実行

make && make install

最後に、プレフィックスフォルダのファイルをusr/別のコンピュータのフォルダにコピーします。これは、両方のシステムが同じアーキテクチャを持っていると仮定し、そうでない場合は、対応するクロスツールチェーンが使用されます。

おすすめ記事