2016-08-07 5 views
1

自分のLinuxアプリケーションを作成しました。私は、今後、私の今後のインターネットサービスを通じて大衆に配布します。自己開発のlinuxアプリケーションをパッケージ化する

私の質問は...どのようにバイナリをパッケージ化するのですか?私の最初に考えたのは、単純に実行するユーザーのためのbashスクリプトを書くことだった:

は/ opt /ソフトウェア名/バイナリ名にバイナリを配置してもsystemdにサービスを書き込みバイナリをダウンロードし
sudo wget -nv -O https://some-server/install-script.sh -P /tmp/ && sudo /tmp/install-script.sh 

ファイルを作成し、設定ファイルなどを作成します。

クライアントマシンの完成製品は、バイナリ、configfile、およびsystemdサービスファイルで構成する必要があります。

これはもっと専門的な(より簡単な)方法で実行できると思いますか?私はもちろん、これをエンドユーザにとって可能な限り簡単にすることを目指しています。私はこれをやっているbashファイルの作成には助けが必要ではありませんが、私は自分自身でそれを行うことができますが、特にソフトウェアを配布する際のベストプラクティスを理解する助けが必要です。

アドバイスを事前にいただきありがとうございます!

答えて

0

最も専門的なやり方は、DebianやRedHatのような配布用のdebパッケージとrpmパッケージを作ることです。

Linuxパッケージを作成するには、dpkg-buildpackageまたはrpmbuildツールを使用します。どちらも、パッケージのビルドとインストールのプロセスを記述する制御ファイルが必要です。

Deb/RPMパッケージビルドプロセスは、CMake/CPackツールを使用して統一され、簡略化されます。

パッケージファイルを作成したら、それらをサーバー上のapt/yumリポジトリに入れることができます。このようなリポジトリは単純なインデックスファイルを持つ正しいディレクトリ構造であり、RPMファイルの場合はcreaterepoコマンドで簡単に作成できます。エンドユーザがリポジトリを利用できる場合は、apt install packagenameまたはyum install packagenameに電話してインストールするだけで十分です。

+0

入力いただきありがとうございます。どのようにしてエンドユーザーにとってより簡単になりますか?それとも、「これはあなたがそれをやる方法」なのではないか? – gregoff

+0

この方法で、アプリケーションは、配布で利用可能な他のパッケージと同じ方法でエンドユーザーに配信されます。 パッケージからインストールされたアプリケーションは、 'dpkg -l'' rpm -qa'のようなシステムツールによって、他のインストールされているパッケージと一緒にリストアップすることができます。したがって、簡単に取り外したりアップグレードしたりすることができます。システムツールは、そのようなアプリケーションのすべてのインストールされたファイルについて知っています。 一方、カスタムスクリプトでインストールされたアプリケーションは少し隠されています。インストールスクリプトを削除したユーザーは、アプリケーションなどを完全に削除するためにどのファイルを削除するのか分かりません。 – Marcin

+0

本当ですが、ユーザーはまず自分のrepoを追加してからパケットインストールコマンドを呼び出す必要があるので、全体の複雑さ。 – gregoff

関連する問題