ソースコードは公開されていないか無料ではないため、インストール時にコンパイルすることはオプションではありません。これまで出会った開発者:
- tar.gzファイルが提供され、適切な場所に解凍するのはユーザーの役割です。
- install.shスクリプトと一緒に.tar.gzを提供してデフォルトのインストーラを実行し、ユーザーにインストールオプションの入力を求めるプロンプトを表示することもできます。
- RPMおよび/またはdebファイルを提供すると、ユーザーはインストール/アップグレード/削除のために使い慣れた基本的なパッケージ管理ツールを引き続き使用できます。
ビルド/パッケージング/インストールインフラストラクチャをできるだけ少なく保ちながら、最大数のLinuxディストリビューションをサポートし、ユーザーの人生をできるだけ簡単にしたいと思います。
私のソフトウェアをパッケージ化する方法についてのアドバイスを探しています。
答え1
私はそれを見る2つの方法があると思います。
1つは、最も広く使用されているLinux用に各Linuxの基本パッケージを提供し、人気の順にパッケージを提供します。数年前に、これは最初にRed HatタイプのLinux用RPMを提供し、次に時間が許すように、あまり人気のない各RPMベースのLinux用ソースRPMを再構築することを意味しました。これは、Mandriva RPMが通常Red HatまたはSuSE RPMよりも少し古い理由です。ただし、過去数年間でUbuntuが人気を集めながら.debで始まり、後でRPMを追加することもできます。
もう一つの方法は、努力して目標を設定することです。みんなすぐに利用可能なLinuxを提供することは、バイナリタールボールを提供する人々がやりたいことです。システム管理者でありエンドユーザーとして、私はこのオプションがあまり好きではありません。これらのタールボールは、解凍したシステム全体にファイルを分散させ、削除、パッケージの確認、スマートアップグレード、その他の詳細を後で実行できないようにします。
最も人気のあるLinux用の基本パッケージ、奇妙なLinux用のバイナリタールボール、何らかの理由でパッケージマネージャを気に入らない古いシステム管理者など、ハイブリッドアプローチを試すことができます。
答え2
私が好むのは常にパッケージ(rpm | debなど)です。ソフトウェアの特性に応じて、特定のディストリビューション(rhel / centosなど)のパッケージをターゲットにすることは価値があるかもしれませんが、誰もが十分なパッケージを持っていないかもしれません。
スクリプトをインストールすると、スクリプトによって異なります。パッケージされていないソフトウェアについて私にとって最も重要なのは、私が選択した場所に簡単にインストールできることです。
答え3
ゲームは、プレフィックスにゲームをきれいにインストールし、アイコンなどのタスクを処理するインストーラ(以前はLoki Installer、現在MojoSetup)を使用する傾向があります。