Linux でいうパッケージ、パッケージ管理とはどのような
事を言うのでしょうか。Linux 関連の記事を読む度に
よく聞く言葉ですがいったいどのような物かもう一度確認しておきましょう。
オープンソースの世界では通常ソフトウェアはソースコードのみが公開されています。
もしそのソフトウェアを利用したい場合は、そのソースコードをコンパイルして、
インストールを行わなければなりません。
とりあえず、試しに apache のサイトから https://httpd.apache.org/
apache のソースをダウンロードしてコンパイルを試みてみます。
どこかのサイトを見るとソースコードをダウンロードして ./configure して make
すれば良いなどと書かれています。
$ tar xvfj httpd-2.4.29.tar.bz2 httpd-2.4.29/ httpd-2.4.29/.deps httpd-2.4.29/.gdbinit httpd-2.4.29/ABOUT_APACHE httpd-2.4.29/acinclude.m4 httpd-2.4.29/ap.d : $ ./configure checking for chosen layout... Apache checking for working mkdir -p... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu configure: configure: Configuring Apache Portable Runtime library... configure: checking for APR... no configure: error: APR not found. Please read the documentation. $ make make: *** ターゲットが指定されておらず, makefile も見つかりません. 中止.
しかし普通にLinux ディスクトップの環境をインストールしただけでは、
コンパイルするための開発ツール、ライブラリがインストールされていない為
コンパイルができません。エラーの内容を見てもきっと初心者はチンプンカンプンです。
* configure コマンドやシステムコール、ライブラリなどがシステムに揃っているかどうかを
自動的にチェックして Makefile を自動作成します。
* make プログラムのビルド作業を自動化するツール。make は、コンパイル、リンク、インストール等の
ルールが記述された Makefile を参照しプログラムのビルドを行う。
このように、ソースコードのままではユーザはソフトウェアを利用できません。
これらの作業を Red Hat、Ubuntu、等のディストリビュータが
あらかじめコンパイル、バイナリー化して配布しており、これらのファイル群を
パッケージと呼んでいるのです。
現在 Linux では、rpm と deb 2つのパッケージ形式が主流となっています。
* rpm形式 Red Hat(CentOS), Fedora、openSUSE、等で利用されている。
* deb形式 Debian、Ubuntu, KNOPPIX 等で利用されている。