コンパイルされたアプリケーションを別のシステムにコピーする

コンパイルされたアプリケーションを別のシステムにコピーする

netatalk私のRaspberry Piのやや古いバージョンを置き換えるために、ソースから最新バージョン(3.1.8)をコンパイルしました。

これは非常に成功しており、他のRaspberry Piでこのバージョンを使用したいのですが、すべてのdevライブラリをダウンロードして再コンパイルするのは過度のようです。

manコンパイルされたバージョンとそのファイルconfなどを別のシステムにコピーするプロセスはありますか?

ベストアンサー1

先行は達成するのが難しい~の回答一般的にはより良いアプローチですが、netatalkこの場合はパッケージを最新バージョンにアップグレードする方が適切です。複雑(少なくとも流通の場合)。

これで、ローカルにビルドされたバージョンがインストールされているので、次のnetatalk方法を使用することをお勧めします(netatalkというディレクトリに展開し、netatalk-3.1.8そこからビルドしてインストールしたとします)。

  • tarソースコード(およびソースツリーに埋め込まれたバイナリ)を実行します。
  • Tarbolを別のRaspberry Piにコピーします。
  • 他のラズベリーパイにインストールcheckinstallタルボールを抽出します。
  • インストールバイナリの使用checkinstall

    checkinstall -D make install
    

    (のようにroot)。

-dev最後の手順では、ビルドされたソースからコピーしたバイナリを最初のRaspberry Pi(パッケージは不要)にインストールし、.debこのバイナリからパッケージをビルドします。その後、.debパッケージを別のRaspberry Piシステムにコピーできます。

必要なライブラリが欠けている場合、これがどのように役立つかわかりません。したがって、lddまず最初のRaspberry Piでバイナリを実行し、2番目のRaspberry Piにそのパッケージがインストールされていることを確認するlib...ことをお勧めします(!)。-dev

一つあるより簡単なバリエーションnetatalk Makefile作業対象がある場合uninstall:この場合、最初のRaspberry Piで

  • インストールするcheckinstall
  • 削除netatalk:

    make uninstall
    
  • 次のコマンドを使用して再インストールしますcheckinstall

    checkinstall -D make install
    

これにより、必要なライブラリがインストールされ、生成されたライブラリに.deb適切な依存関係が必要であることがわかります。

もしcheckinstall動作しません、常に事前に構築されたtarballメソッドがあります:

  • tarソースコード(およびソースツリーに埋め込まれたバイナリ)を実行します。
  • Tarbolを別のRaspberry Piにコピーします。
  • すべてのRaspberry Piで実行されますmake install
  • すべてが正しく機能するためには、別々にインストールする必要があるライブラリを記録してください。

おすすめ記事