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

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

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
  • すべてが正しく機能するためには、別々にインストールする必要があるライブラリを記録してください。

答え2

yumこれがまさに、、、などのdpkgパッケージングツールが使用される理由です。rpm私はRasbianユーザーではなく、netatalkがシステムパッケージとして利用可能かどうかわかりません(確認中...そうだ)。

  • 可能であれば、それが最初の寄港地になります。
  • 利用可能ですが、バージョンが古すぎる場合は、パッケージ管理者に連絡して更新を依頼してください。
  • 利用できない場合や管理者に連絡したくない場合は、Rasbianが使用するパッケージ管理システム(Debianパッケージのようです)を使用してパッケージを構築することを検討できます。これはガイドですについてdpkgこれは別のものです。ラトビアリンク彼らだけのページ

バイナリパッケージを使用しないということは、すべてのファイルがインストールされている場所を直接追跡し、何らかの方法でパッケージ化し、tarファイルを解凍してもターゲットの内容を上書きしないことを意味します。これは、パッケージ管理ツールが実行するすべての操作です(依存関係を満たすことなど)。

Rasbianはユーザーの関与に頼る小規模なディストリビューションのように思えるので、パッケージマネージャとの友好的な会話をするのが良いでしょう。

関連情報