少し前に、 Fpmというユーティリティについて書きました これは、複数のLinuxプラットフォーム用のLinuxパッケージを簡単に構築するのに役立ちます。今日は、 CheckInstallについて説明します これは、ソースコードからLinuxパッケージをビルドするためにも使用されます。
通常、ディストリビューションのパッケージマネージャーを使用してパッケージをインストールします。ただし、インストールしたいアプリケーションがディストリビューションリポジトリで利用できない場合は、選択の余地はありません。手動でコンパイルして、ソースコードから自分でインストールします。
ソースコードからアプリケーションをコンパイルしてインストールすることは、一部の人、特に初心者にとっては少し難しいです。ここで、FPMやCheckInstallなどのプログラムが役立ちます。
CheckInstallは、ソースコードからプログラムをコンパイルし、Linuxディストリビューション用のネイティブパッケージを作成するプログラムです。ディストリビューションのパッケージ管理システム(dpkg、rpm、またはinstallpkg)を使用してパッケージをインストールできるようにします。
現在、CheckInstallは、DEBベースのシステム、RPMベースのシステム、およびSlackwareのネイティブパッケージを作成します。この簡単なチュートリアルでは、CheckInstallプログラムを使用してソースからパッケージをビルドする方法について説明します。
LinuxにCheckInstallをインストールする
CheckInstallは、ほとんどのLinuxディストリビューションのデフォルトリポジトリで利用できます。したがって、パッケージマネージャーを使用してインストールできます。
たとえば、Debianベースのシステムでは、次のコマンドを使用してインストールできます。
$ sudo apt-get install checkinstall
SUSE / openSUSEの場合:
$ sudo zypper install checkinstall
CentOS、RHEL、Fedoraの場合:
このリンクからCheckInstallrpmファイルをダウンロードしてインストールします 。
# wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpmダウンロード -無料の電子書籍:「Linux®パッチ管理:Linux®システムを最新の状態に保つ」
CheckInstallを使用してソースからパッケージをビルドする
‘hello’
のDEBパッケージを作成する簡単な手順は次のとおりです。 プログラム。 Ubuntu16.04LTSで次の手順をテストしました。
まず、「hello」プログラムのtarballをダウンロードします。
$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
コマンドを使用してtarballを抽出します:
$ tar -zxvf hello-2.10.tar.gz
、hellotarballを抽出したディレクトリに移動します。
$ cd hello-2.10/
次のコマンドを1つずつ実行してコンパイルします。
$ ./configure
$ make
これで、"make install"
と入力する代わりに プログラムをインストールするコマンドを実行するには、次のコマンドを入力します。
$ sudo checkinstall --install=no
このコマンドは.deb
を作成します パッケージですが、インストールされません。 Yを押します "doc-pak"
という名前のパッケージドキュメントディレクトリを作成します 。
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]: y Preparing package documentation...OK Please write a description for the package. End your description with an empty line or EOF. >> Simple Hello Program ## Type your Program name and hit ENTER key. >> ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ [email protected] ] 1 - Summary: [ Simple Hello Program ] 2 - Name: [ hello ] 3 - Version: [ 2.10 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ hello-2.10 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ hello ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue: ## Hit ENTER key [...] Building file list...OK Building Debian package...OK NOTE: The package will not be installed Erasing temporary files...OK Deleting temp dir...OK ********************************************************************** Done. The new package has been saved to /home/sk/hello-2.10/hello_2.10-1_amd64.deb You can install it in your system anytime using: dpkg -i hello_2.10-1_amd64.deb **********************************************************************
これで、新しく作成した.deb
をインストールできます。 dpkg
を使用したパッケージ パッケージマネージャー:
$ sudo dpkg -i hello_2.10-1_amd64.deb
"--install=no"
なしで上記のコマンドを実行した場合 フラグを立てると、debパッケージが自動的に作成され、システムにインストールされます。
$ sudo checkinstall
出力例:
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ [email protected] ] 1 - Summary: [ Simple Hello Program ] 2 - Name: [ hello ] 3 - Version: [ 2.10 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ hello-2.10 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ hello ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue: ##Press ENTER [...] Installing Debian package...OK Erasing temporary files...OK Writing backup package...OK OK Deleting temp dir...OK ********************************************************************** Done. The new package has been installed and saved to /home/sk/hello-2.10/hello_2.10-1_amd64.deb You can remove it from your system anytime using: dpkg -r hello **********************************************************************
このコマンドは、.debファイルを作成し、システムに自動的にインストールします。次のコマンドを使用して、いつでもインストールパッケージを削除できます:
$ sudo dpkg -r hello
CheckInstall .rpm
を作成します または.deb
使用している現在のLinuxディストリビューションのタイプに応じて、自動的にパッケージ化されます。 .rpmパッケージを作成する必要がある場合は、RPMベースのシステムで上記の手順に従ってください。 Slackwareパッケージの場合、これはSlackwareシステムで行います。
詳細については、マニュアルページを参照してください:
$ man checkinstall
または、ヘルプセクションを確認してください。
$ checkinstall --help
関連記事:
- エイリアンを使用してLinuxパッケージを変換する方法
- ソースからDebianパッケージを構築する方法