9

まだオープンソースではないアプリケーションを作成しましたが、さまざまなLinuxディストリビューションに実行可能ファイルを配布したいと思います。これを行う最善の方法は、.rpmと.debパッケージを少し見てきましたが、バイナリで使用できるかどうかはわかりません。理想的には、OS X上のPackageMakerやWindows上の通常のインストーラのようなものが、自動的に/ usr/binにコピーされます。それは.rpmと.debパッケージが対象とするものなのですか、それとも自動的にそれを行うシェルスクリプトをバンドルする必要がありますか?バイナリアプリケーションをLinuxディストリビューションに配布する

答えて

6

RPMパッケージとDEBパッケージは、Linuxでバイナリパッケージを配布するための2つの主要なメカニズムです。 RPMはRedHatとその派生物(Fedora、CentOS)で使用され、DEBはDebianとUbuntuで使用されます。

.rpmファイルと.debファイル自体は一般的に「ダム」アーカイブであり、あらかじめインストールされたヘルパーアプリケーションによってファイルシステム内の正しい場所にインストールされます。システムごとに特別な設定が必要な非常に複雑なアプリケーションでない限り、ファイルをインストールするためのスクリプトの作成について心配する必要はありません。

  • リリースcompessedのtarball(.tar.gz形式または.tar.bz2と)、および配布パッケージャが細部を心配してみましょう:私はバイナリを配布するための参照

    いつものパターンがあります。これは一般的なアプリケーションではうまくいきますが、新しくリリースされた場合、誰もアプリケーションをパッケージ化するのに十分注意します。

  • tarball、RPMおよび/またはDEBパッケージ(お客様のニーズに応じて)としてリリースします。サポートされているディストリビューションのお客様は、既製のパッケージをインストールすることができます。珍しいディストリビューションを使用している人は、とにかくtarballからインストールしても大丈夫です。
+0

注記:64ビットのコンピュータやエキゾチックなプロセッサでは、RPM/debのバージョンを別々に保つ必要があります。 – Gnudiff

0

rpmとdebはバイナリを格納します。異なるディストリビューションではパスのように異なるため、ディストリビューションまたはディストリビューションごとに異なるバイナリを持つ必要があります。

rpmとdebの2つで始まり、それらの2つのディストリビューションを釘付けすることをお勧めします。その後、他のディストリビューションのために、人々が抽出してディレクトリ構造を作成し、独自のパーミッションをコピーして処理できるようにするためのtarballを行うかもしれません。

また、debのようなものについては、サイトをリポジトリとしてセットアップすることができます。そうすれば、人々がrepoを追加してdebをubuntuに簡単にインストール/インストールすることが容易になります。サードパーティのクローズドソース開発者の多くはそうしています。

0

これは.rpmファイルと.debファイルの機能ですが、installeeディストリビューションが.rpmファイルと.debファイルを処理できることを確認する必要があります。 を複数のディストリビューションで実行したい場合は、適切なパッケージマネージャがあるかどうかわからない場合は、シェルスクリプトメソッドを使用する必要があります。 バイナリを.rpmと.debの両方に作成することをお勧めします。この方法で、ほとんどのディストリビューションをカバーし、ユーザーは快適で親しみやすい方法でインストールできますあなた自身のインストーラ/アンインストーラシェルスクリプトを動かす必要はありません。

0

公式にサポートしているLinuxディストリビューションごとにネイティブパッケージを提供するべきです(公式にサポートしているので、これをテストすることは簡単です).tar.gz人々は他の人のために落ちることができます。

ユーザーは、あなたがサポートしていないエイリアン配布用に独自の.rpmなどを作ることができます。公式にサポートされているOSで動作しない限り、あなたに文句を言うことはできません。

公式にサポートしているOSはどれですか?明らかにそれらをすべてテストする必要があります(最低限、各リリースの各OSですべての回帰テストスイートを渡す必要があります)。

これはもちろん、複数のアーキテクチャをサポートしている場合は複雑です。

1

MojoSetupは、完全にクロスディストリビューションソリューションであり、正当なライセンス(zlib、非常に許容されます)です。すべてのLinuxディストリビューションに付属の標準のshシェルが必要です。また、デスクトップショートカットは、Linux用のほぼすべてのグラフィカル環境でサポートされているfreedesktop.org仕様のショートカットを作成することで簡単に行うことができます(異なる解像度でPNGにダンプし、.desktopファイルの空白を埋めてください)。

インストーラは非常に単純なLuaプログラミング言語を使用してスクリプト化されており、インストーラスクリプトin the Mercurial repositoryと長いチュートリアルの例がいくつかあります。また、軽量のクロスディストリビューションインストーラにその開発をバックアップするには長年が必要です。

関連する問題