ディストリビューション間/OSのパッケージング

ディストリビューション間/OSのパッケージング

Fedora、FreeBSD、OS X(Homebrew、MacPorts)、Ubuntu、Debianなどは、すべてバイナリとソースコードの配布に異なるパッケージングシステムを使用しています。

新しいアプリケーションを開発するときは、できるだけ多くのユーザーがすぐに使用できるようにしたいと思います。しかし、さまざまなパッケージングツールとルールの両方を学ぶのは難しいことです。できますが、より簡単な方法が必要です。

これらすべてのパッケージングシステムを維持および学習するためのオーバーヘッドを軽減するために知っておく必要があるスーパーツールはありますか?

ベストアンサー1

最も簡単な方法は、ソースアーカイブを提供し、ディストリビューションマネージャに独自のディストリビューション用のパッケージを作成させることです。

通常のバイナリアーカイブ()を簡単に作成し、それをaとa.tar.gzに変換できます。これはほとんどのLinuxユーザーを対象としていますが、適切に作成されたパッケージほど有用ではありません。正しい形式のバイナリアーカイブを取得することは、氷山の一角にすぎません。良い包装のためには、次の条件が必要です。.deb.rpm

  • ファイルを適切なディレクトリに配置します。しかし、FHSLinuxディレクトリ構造を統合しようとしたにもかかわらず、ディストリビューション間にはまだ違いがあります。
  • 正しいバージョンのライブラリーをコンパイルします。これがどれほど難しいかは、プログラムが急速に進化するABIライブラリに依存しているかどうかによって異なります。同じディストリビューションの異なるバージョンには異なるライブラリバージョンが用意されているため、異なるパッケージが必要になる場合があります。
  • 正しいパッケージ名で依存関係を宣言してください。
  • メニュー項目、MIMEハンドラ、ドキュメント、起動スクリプトを宣言します。

通常、各ディストリビューションに精通している人にパッケージを作成させる方が簡単です。通常、これらの貢献を単一のソースコードパッケージ(debianディレクトリ、.specrpmファイルなどを含む)として収集し、ソースコードアーカイブをデプロイし、各デプロイを実行している人にデプロイ用のパッケージを作成させます。プログラムを大幅に変更しない限り、特定のディストリビューションが機能すると、最新バージョンではおそらく同じビルドスクリプトを使用します。

一部のディストリビューションには、パッケージを構築および配布するための自動化されたメカニズムがあります。たとえば、Ubuntuを作成できますアンフェタミンUbuntuを実行しなくても、サポートされているすべてのUbuntuバージョンに対して自動的にビルドされます。

おすすめ記事