web-dev-qa-db-ja.com

Linuxアプリケーションのインストーラーの作成

小さなクロスプラットフォームアプリケーションを開発していますが、Linuxにインストールする方法についてアドバイスが必要です。 WindowsでInnoSetupを、OSXでアプリケーションバンドルを使用していますが、アプリをLinuxにインストールする方法がわかりません。Linux用のオープンソースインストーラークリエーターはありますか?

ありがとう。

35
JWood

標準* nixシステムで(そしてそれだけでなく)すべての強力で普遍的に利用可能なインストーラーは Autotools です。

# the user will install like so:
./configure --with-stuff
make # if package is from source
make install

RedHatまたはCentOSでは [〜#〜] rpm [〜#〜] またはDebian、Ubuntuでは deb のようなディストリビューション固有のインストーラーを提供することもできますが、 Autotoolsによって作成されたMakefileは、これらを簡単に作成します。

# the user will install like so:
yum install your-package-1.0.rpm # on redhat or
apt-get install your-package-1.0.deb # on debian

Autotoolsは "GNUビルドシステム"とも呼ばれます。一見すると少し怖いです。新しいユーザーは、古代のm4マクロシステムなどと出会うと困惑しますが、nota beneこれはほとんどの人が行う方法であり、こつをつかめば非常に簡単です。

学習リソース

18
clyfe

可能であれば、インストーラーを必要とせず、単純な抽出と実行のアプローチを使用することを選択します。これにより、ユーザーはファイルを好きな場所に配置して実行できます。

ただし、次のような他のオプションがあります。

  1. autoconf を使用して、
  2. CMake を使用して、
  3. Javaインストーラー IZPack
2
Kaleb Pederson

InstallJammer を見てください。 WindowsとLinuxの両方のインストーラーに対して1つのプロジェクトを作成できます。Macのサポートは間もなく開始されます。

2
Damon

本当に堅牢なmakefileを書いてください!または CMake を使用します

1
Hortinstein

さまざまなディストリビューションにバイナリパッケージをインストールしなければならない状況のために nistall を書き始めました。

それはいくつかのことを試みます:

  • OSの種類とパッケージマネージャーを実現します。これにより、システムパッケージマネージャーを使用して、プログラムに必要な依存関係を取得できます。たとえば、debian/ubuntuを使用している場合はapt-get install libncurses5-dev、RHEL/Fedora/CentOSを使用している場合はyum install libncurses-develを使用することがわかります。
  • 必要に応じて、initの更新に使用されるメカニズムを理解する
  • 安全なアンインストーラーを作成する
  • 任意のシェル(bash、dash、zsh、pdksh、busybox ashなど)で作業する

有用なビットがたくさんあるので、レポはそのままにしておきますが、Linuxディストリビューション用のinstall sheildタイプのプログラムのアイデアにすぐに諦めました。 。 .deb、.rpmおよび(おそらく)slackware .tgz形式のインストール可能なパッケージを作成する方がはるかに優れていることがわかります。

これは checkinstall のようなツールを使用してビルドシステムに統合できます。 Debianや他の人が定めた厳格なlintガイドラインによると、checkinstallが生成するパッケージは必ずしも完璧ではありませんが、パッケージは問題なく機能します。

ユーザーに提供できる最高のインストールエクスペリエンスは、ネイティブパッケージマネージャーを使用してソフトウェアをインストール(および更新)できるようにすることです。

1
Tim Post