まだオープンソースではないアプリケーションを作成しましたが、さまざまなLinuxディストリビューションに実行可能ファイルを配布したいと思います。これを行う最善の方法は、.rpmと.debパッケージを少し見てきましたが、バイナリで使用できるかどうかはわかりません。理想的には、OS X上のPackageMakerやWindows上の通常のインストーラのようなものが、自動的に/ usr/binにコピーされます。それは.rpmと.debパッケージが対象とするものなのですか、それとも自動的にそれを行うシェルスクリプトをバンドルする必要がありますか?バイナリアプリケーションをLinuxディストリビューションに配布する
答えて
RPMパッケージとDEBパッケージは、Linuxでバイナリパッケージを配布するための2つの主要なメカニズムです。 RPMはRedHatとその派生物(Fedora、CentOS)で使用され、DEBはDebianとUbuntuで使用されます。
.rpmファイルと.debファイル自体は一般的に「ダム」アーカイブであり、あらかじめインストールされたヘルパーアプリケーションによってファイルシステム内の正しい場所にインストールされます。システムごとに特別な設定が必要な非常に複雑なアプリケーションでない限り、ファイルをインストールするためのスクリプトの作成について心配する必要はありません。
- リリースcompessedのtarball(.tar.gz形式または.tar.bz2と)、および配布パッケージャが細部を心配してみましょう:私はバイナリを配布するための参照
いつものパターンがあります。これは一般的なアプリケーションではうまくいきますが、新しくリリースされた場合、誰もアプリケーションをパッケージ化するのに十分注意します。
- tarball、RPMおよび/またはDEBパッケージ(お客様のニーズに応じて)としてリリースします。サポートされているディストリビューションのお客様は、既製のパッケージをインストールすることができます。珍しいディストリビューションを使用している人は、とにかくtarballからインストールしても大丈夫です。
rpmとdebはバイナリを格納します。異なるディストリビューションではパスのように異なるため、ディストリビューションまたはディストリビューションごとに異なるバイナリを持つ必要があります。
rpmとdebの2つで始まり、それらの2つのディストリビューションを釘付けすることをお勧めします。その後、他のディストリビューションのために、人々が抽出してディレクトリ構造を作成し、独自のパーミッションをコピーして処理できるようにするためのtarballを行うかもしれません。
また、debのようなものについては、サイトをリポジトリとしてセットアップすることができます。そうすれば、人々がrepoを追加してdebをubuntuに簡単にインストール/インストールすることが容易になります。サードパーティのクローズドソース開発者の多くはそうしています。
これは.rpmファイルと.debファイルの機能ですが、installeeディストリビューションが.rpmファイルと.debファイルを処理できることを確認する必要があります。 のを複数のディストリビューションで実行したい場合は、適切なパッケージマネージャがあるかどうかわからない場合は、シェルスクリプトメソッドを使用する必要があります。 バイナリを.rpmと.debの両方に作成することをお勧めします。この方法で、ほとんどのディストリビューションをカバーし、ユーザーは快適で親しみやすい方法でインストールできますあなた自身のインストーラ/アンインストーラシェルスクリプトを動かす必要はありません。
公式にサポートしているLinuxディストリビューションごとにネイティブパッケージを提供するべきです(公式にサポートしているので、これをテストすることは簡単です).tar.gz人々は他の人のために落ちることができます。
ユーザーは、あなたがサポートしていないエイリアン配布用に独自の.rpmなどを作ることができます。公式にサポートされているOSで動作しない限り、あなたに文句を言うことはできません。
公式にサポートしているOSはどれですか?明らかにそれらをすべてテストする必要があります(最低限、各リリースの各OSですべての回帰テストスイートを渡す必要があります)。
これはもちろん、複数のアーキテクチャをサポートしている場合は複雑です。
MojoSetupは、完全にクロスディストリビューションソリューションであり、正当なライセンス(zlib、非常に許容されます)です。すべてのLinuxディストリビューションに付属の標準のsh
シェルが必要です。また、デスクトップショートカットは、Linux用のほぼすべてのグラフィカル環境でサポートされているfreedesktop.org仕様のショートカットを作成することで簡単に行うことができます(異なる解像度でPNGにダンプし、.desktopファイルの空白を埋めてください)。
インストーラは非常に単純なLuaプログラミング言語を使用してスクリプト化されており、インストーラスクリプトin the Mercurial repositoryと長いチュートリアルの例がいくつかあります。また、軽量のクロスディストリビューションインストーラにその開発をバックアップするには長年が必要です。
- 1. LinuxでQTアプリケーションを配布する
- 2. Tomcatに使うLinuxディストリビューションは?
- 3. Linuxディストリビューション、RailsとIDE
- 4. Linuxディストリビューションでのバージョンアップ
- 5. Linux用GCC(slitazディストリビューション)
- 6. ソースなしでlinuxにプログラムを配布する
- 7. nwjs Linux上でアプリを配布するには?
- 8. HDInsightクラスタのLinuxディストリビューション情報
- 9. LinuxディストリビューションのC++コンパイラのバージョン
- 10. 最小限のLinuxディストリビューション
- 11. Xcode 7.3 Apple Ad Hocディストリビューションは配布マニフェスト情報を要求します
- 12. Linuxにソフトウェアを配布していますか?
- 13. 異なるLinuxディストリビューションのELFバイナリ
- 14. 自分のPythonを配布する、クロス-linux
- 15. 配布バージョンを確認するip linux with ip
- 16. 配布情報を取得するためのLinuxコマンド
- 17. Linuxでソフトウェアを配布する場合のライブラリ依存関係
- 18. AndroidスティックPCに軽量Linuxディストリビューションをインストールするには?
- 19. amazon Linuxディストリビューションにnginx 1.9.15をインストールするには
- 20. ルートディレクトリの '/ data'を含むLinuxディストリビューション?
- 21. 独自のLinuxディストリビューションを作成するには?
- 22. Debian Hadoopの配布に従うか、Cloudera、Hortonworks、MapR ...が提供する他のディストリビューションに移行しますか?
- 23. Android開発ワークステーションの推奨Linuxディストリビューション
- 24. Linuxシステム上の複数のPythonディストリビューション
- 25. どのLinuxディストリビューションのPHP Webサイトコーディング
- 26. プログラマのプライベートサーバ向けのLinuxディストリビューション
- 27. 複数のLinuxディストリビューションの単一インストールドキュメント
- 28. "すべて"のLinuxディストリビューションで動作するバイナリを作成
- 29. マルチコアをサポートする最小のLinuxディストリビューションですか?
- 30. 複数のディストリビューションとバージョンのLinuxパッケージを構築する
注記:64ビットのコンピュータやエキゾチックなプロセッサでは、RPM/debのバージョンを別々に保つ必要があります。 – Gnudiff