GNU/Linux >> Linux の 問題 >  >> Linux

ソースから構築されたバイナリを2台目のマシンにインストールできますか?

これを尋ねるのに最適な場所かどうかはわかりません。もっと良い場所があれば、正しい方向に向けてください。

仮に、私が2台のマシンを持っているとしましょう。Aは開発マシンで、Bは本番マシンです。 Aには、ソースからソフトウェアをビルドするために使用できるコンパイラのようなソフトウェアがありますが、Bにはありません。

Aでは、通常のルーチンに従うことで、ソースからソフトウェアを簡単にビルドできます。

./configure
make

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

私が検討したいくつかのオプションがあります:

  1. パッケージマネージャーを使用してBにソフトウェアをインストールする:パッケージマネージャーで利用できるソフトウェアが非常に古くなっているため、これは私にとってオプションではありません。
  2. Bにコンパイラとその他のビルドツールをインストールする:さまざまな制約があるため、本番マシンにビルドツールをインストールしたくありません。
  3. バイナリをAからBに手動でコピーします。これはエラーが発生しやすいため、本番マシン全体でバイナリが一貫した方法でインストールされていることを確認したいと思います。
  4. makeのみをインストールします Bで、ソースディレクトリを転送し、sudo make installを実行します B:これは私がこれまでに見つけた最良の解決策ですが、何らかの理由(おそらくクロックオフセット)で、make ビルドツールがBにインストールされていないため、ビルド済みのはずのソフトウェアを再ビルドしようとしますが、失敗します。私のマシンのI / O速度もひどいため、ソースディレクトリの転送には非常に長い時間がかかります。 。

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

承認された回答:

これまでに持っていたものを使用し、makefileがGNU autotoolsで生成された場合、ターゲットの場所またはインストールパスを設定します と

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

次に実行します

make && make install

最後に、ファイルをプレフィックスフォルダからusr/にコピーします 他のマシンのフォルダ。これは、両方のマシンが同じアーキテクチャを備えていることを前提としています。そうでない場合は、対応するクロスツールチェーンを使用してください。

関連:パイプ全体でxargsを使用する方法はありますか?
Linux
  1. ソースコードからnanoエディターをインストールする方法

  2. Linux にソースから PHP5 をインストールする手順ガイド

  3. Linux にソースから Apache 2 をインストールする

  1. ソースからビルドされた python をアンインストールしますか?

  2. システムに Apache がインストールされているかどうかを確認するにはどうすればよいですか?

  3. Linux シェルから Windows マシンに接続できますか?

  1. 信頼できないソースからパッケージを削除して再インストールしますか?

  2. いつソースからコンパイルしてインストールする必要がありますか?

  3. dpkg はインストール済みパッケージのファイルを検証できますか?