PKGBUILDとmakepkgを調べてみましたが、すでにビルドされたローカル実行ファイルを使用してパッケージを作成する方法を理解できないようです。他のLinuxシステムに簡単にインストールできるようにパッケージ化する必要があります。私はアーチLinuxを使用しています。
デフォルトでは、特定のディレクトリから2つの実行可能ファイルをインポートしてそのファイルをパッケージ化し、pacmanが通常実行可能ファイルをインストールするのと同じ場所にある別のArch Linuxシステムにそのファイルをインストールできるようにする必要があります。アプリケーションはすでに構築されているため、ソースコードや何も使用されません。
PKGBUILDファイルにファイルを置くソースの場所を知っていますが、package()関数に何を入れる必要があります。.installファイルが必要ですか?それでは、そこで何をすべきですか?
編集:この問題は解決されました。最良の答えが表示されました。
ベストアンサー1
ソフトウェアパッケージには、PKGBUILDファイルと同じディレクトリにあるすべてのファイルを含めることができます。あなたの目的に応じてこれを行うことができます。 PKGBUILDファイルの機能からpackage()
これらのファイルを呼び出すことができます${srcdir}/my-executable
。最終結果は次のとおりです。
# snip!
source=(my-executable)
sha256sums=('foo')
package() {
install -Dm755 "${srcdir}/my-executable" "${pkgdir}/usr/local/bin/my-executable"
}
これで、次のようにパッケージを作成できます。
updpkgsums && mksrcinfo && makepkg
このアプローチは、ホームブリックパッケージにのみ適しています。するいいえAURにパッケージをアップロードする場合は、この方法を使用してください。 PKGBUILDに付属のファイルはほとんど変更されません。確かにすべてのリリースでそうではありません。実行可能ファイルがバイナリの場合、パッケージをAURにアップロードできません。 (または効果があり、誰かがそれを認識し、あなたをブロックします。)
具体的な例については、以下を確認してください。マッピングテーブル。に簡単なラッパースクリプトをインストールします/usr/bin/mkgmap
。cd "${srcdir}/${pkgname}-${pkgver}"
package()
パッケージを作成したら、さまざまなツールを使用してこれらのパッケージをすべてのホストに送信できます。優れたアプリケーション固有のツールは次のとおりです。パスウェイ。 (ヒントをいただいたjasonwryanに感謝します。)
また、Ansibleなどのツールを使用することも検討してください。パッケージマネージャがこれらの実行可能ファイルを知ることができるようにするには、パッケージを作成することをお勧めします。ただし、たとえば、ユーザーディレクトリにファイルを保存したい場合は、~/.local/bin/
構成管理システムが優れている可能性があります。