Fedora、FreeBSD、OS X(Homebrew、MacPorts)、Ubuntu、Debianなどは、すべてバイナリとソースコードの配布に異なるパッケージングシステムを使用しています。
新しいアプリケーションを開発するときは、できるだけ多くのユーザーがすぐに使用できるようにしたいと思います。しかし、さまざまなパッケージングツールとルールの両方を学ぶのは難しいことです。できますが、より簡単な方法が必要です。
これらすべてのパッケージングシステムを維持および学習するためのオーバーヘッドを軽減するために知っておく必要があるスーパーツールはありますか?
答え1
最も簡単な方法は、ソースアーカイブを提供し、ディストリビューションマネージャに独自のディストリビューション用のパッケージを作成させることです。
通常のバイナリアーカイブ()を簡単に作成し、それをaとa.tar.gz
に変換できます。これはほとんどのLinuxユーザーを対象としていますが、適切に作成されたパッケージほど有用ではありません。正しい形式のバイナリアーカイブを取得することは、氷山の一角にすぎません。良い包装のためには、次の条件が必要です。.deb
.rpm
- ファイルを適切なディレクトリに配置します。しかし、FHSLinuxディレクトリ構造を統合しようとしたにもかかわらず、ディストリビューション間にはまだ違いがあります。
- 正しいバージョンのライブラリーをコンパイルします。これがどれほど難しいかは、プログラムが急速に進化するABIライブラリに依存しているかどうかによって異なります。同じディストリビューションの異なるバージョンには異なるライブラリバージョンが用意されているため、異なるパッケージが必要になる場合があります。
- 正しいパッケージ名で依存関係を宣言してください。
- メニュー項目、MIMEハンドラ、ドキュメント、起動スクリプトを宣言します。
通常、各ディストリビューションに精通している人にパッケージを作成させる方が簡単です。通常、これらの貢献を単一のソースコードパッケージ(debian
ディレクトリ、.spec
rpmファイルなどを含む)として収集し、ソースコードアーカイブをデプロイし、各デプロイを実行している人にデプロイ用のパッケージを作成させます。プログラムを大幅に変更しない限り、特定のディストリビューションが機能すると、最新バージョンではおそらく同じビルドスクリプトを使用します。
一部のディストリビューションには、パッケージを構築および配布するための自動化されたメカニズムがあります。たとえば、Ubuntuを作成できますアンフェタミンUbuntuを実行しなくても、サポートされているすべてのUbuntuバージョンに対して自動的にビルドされます。
答え2
あなたは考慮することができますフッ素PMこれは、さまざまなパッケージング形式のパッケージを簡単に構築するのに役立つツールです。
答え3
横にザイルズの答え、少なくともGNU / Linuxディストリビューションの場合、状況はあまり変わりませんでした。
プラットフォームまたはそのワークフローと戦略に精通している開発者にパッケージングを任せることは依然として賢明ですが、上記のほとんどには別々のインストールディレクトリがあり、いくつかのサポート制限/刑務所があります。したがって、自由にアプリケーションを構築できます。
答え4
MyPaint用のAppImageラッパーを見て、Kritaと一緒に試してみてください。本当に素敵です!実行可能ファイルとして設定された単一のイメージファイルを提供するので、バージョン管理について心配する必要はありません。あるいは、他のパッケージがインストールされていると、競合が発生し、ソフトウェアが不安定になる可能性があります。 1つのファイルにドッカーシステム全体が含まれているのと似ています。何よりも何もインストールする必要はありません!
確認してください...
Appimage.org