このページではパッケージ管理システムについてまとめてみた。yumやrpmについても詳しくお伝えする。
パッケージ管理システムとは?
パッケージ管理とは、実行ファイルや設定ファイルやライブラリを一括で管理することを言う。パッケージ管理システムは、それらを管理するシステムのことだ。
順を追って見ていこう。
Linuxとソフトウェアインストール
Linuxはソフトウェアをインストールする手段は大きくわけて2種類ある。
ソースコードを利用する
ひとつ目の方法は自分でソフトウェアソースコードを入手しtarで解凍、ソースコードを「./configure」「make」「make install」という3つの手順を使いコンパイルしインストールする方法だ。
Linuxのソフトウェアインストール手段としては根底にあり「世界共通」的な手段といえる。
しかしこの手段は必要なライブラリの依存関係を自分で解決しないといけない。依存関係とは、「このソフト動かすには、このソフトのversion○○が必要だよね」というソフト同士の関係のことだ。
手動で実施するには、これらの依存関係をしっかりと自分で管理し、必要なソフトを準備したり、削除するときに気を使ったりしないといけない。
入門者にとってはとても難易度が高いのは想像いただけるだろう。
特にGUIなアプリケーションなどは多数のライブラリを使用しているので非常に依存関係が複雑になる。Linuxを初めて触るという人には特にお手上げだ。
パッケージ管理システムを使う
もうひとつの方法はパッケージ管理システムを使用して、ソフトウェアをインストールする方法だ。これが現在一般的に使われている方法になっている。
パッケージとは、必要なソフトやライブラリのひとまとめのことだが、このパッケージをまとめて管理してくれる。
パッケージ管理システムはパッケージを使用するに際して、必要な依存関係を自力で解決してくれる。
パッケージは個々に、どのパッケージがどのパッケージに依存しているのか?という、依存情報をもっている。その依存情報をもとに必要なものが適切にインストールされるようになっている。
パッケージ管理システムを使う利点
とにかく使いやすい
先にも記述したとおり、ソースコードを「./configure」「make」「make install」してインストールするのは、大変手間がかかる。慣れないうちはどのパッケージが何に依存しているのかわからない、という事態に多々遭遇する。
もしあなたがWindowsを普段使っているとしたら、アプリケーションをインストールするだけでなぜこんなに手間がかかるのか?と疑問に思うはずだ。
しかし、パッケージ管理ソフトを利用すれば同じような簡易さで利用できる。コマンドを一行打ち込むだけでアプリケーションが利用可能になる。
削除するときも便利
もうひとつ大きな利点としてパッケージマネージャを使いパッケージを管理することでシステムからパッケージを削除しようとしたときも、クリーンに削除できる。
必要のないソフトウェアが徐々にLinuxを汚していくことを避けることができ、重宝する。
そもそもなぜ不便になっているのか?
もともとLinuxはオープンソースであり、根底ではソフトウェアは全て自力でコンパイルして使うというスタイルがあるため、このような作りになっている。
またLinuxは、ライブラリやアプリケーションをはじめカーネルなどの「バージョンを決め打ちした規格がない」。ディストリビューション(種類)もたくさんある。
そのため環境自体がまばらなのだ。
反対にWindowsの場合バージョンが固定され、提供する会社もプラットホームも一定である。そのため、だいたいのソフトは他のマシンでも動作するのである。
パッケージ管理のコマンド
CentOSの場合RPMパッケージをyumを使いインストールする。Debianの場合DEBパッケージをAPTを使用してソフトウェアをインストールする。
それぞれディストリビューション独自の方法でパッケージを管理している。これらはCUIコマンドもしくはGUIなフロントエンドから操作できるようになっている。
それぞれ下記ページで詳しくご紹介した。参考にしてほしい。
CentOSやFedoraなどのRedHat系をご使用の方はこちら
- 【RPMによるパッケージ管理】rpmコマンドの使い方
- 【初心者でもわかる】yumコマンドの使い方とリポジトリの追加方法
- 【簡単に解説】RPMパッケージを作成する方法
- 【Linux】ローカルリポジトリを作成してみる
UbuntuなどDebian系をご使用の方はこちら
まとめ
このページでは、Linuxのパッケージ管理についてRedhat系、Debian系と何も確認してきた。パッケージの作成方法は正直覚える必要はないが、各種のコマンドの使い方は覚えておいたほうがいいだろう。
ぜひ参考にしつつ、コマンドを叩いてみていただければと思う。