いままでWindowsユーザーだった私が、CentOSを触り始めました。
いろいろ設定をしようとすると、「yumでインストールします・・・」などという見慣れない言葉が。。。
インストールって「インストーラーをダウンロードして・・・」というやり方じゃないの?というあたりの話です。
#環境
今回はCentOS(RedHat系)の環境を元に話を進めます。
ソフトウェアをインストールするとき
OSに何らかのソフトウェアをインストールする場合。
Windowsだとインストーラーをダウンロードし、そのインストーラーを使ってソフトウェアをインストールします。
Linuxではインストーラーではなく、パッケージ管理システムでパッケージ(ソフトウェア)をインストールします。
yumはRedHat系ディストリビューションのパッケージ管理システムで使用されるツール(コマンド)です。
※ディストリビューションとは
Linuxの配布形態のことを指します。
Linuxはカーネルの部分のみ(核となる部分)を指し、そのほかの便利なプログラム(デスクトップ向け環境で使うソフトウェアなど)は含まれていません。
ディストリビューションにはカーネルとこれらのプログラムがまとめられており、ユーサーはディストリビューションを使用することで実用的な環境を簡単に構築できます。
ディストリビューションには、Fedora、CentOS(RedHat系)、Ubuntu(Debian系)などがあります。
RedHat系ディストリビューションではyumというパッケージ管理のツールがあるように、そのほかのディストリビューションにもそれぞれ異なるツールがあります。
ディストリビューション | ツール |
---|---|
RedHat系 | RPM、yum、dnf |
Debian系 | dpkg、dselect、apt |
パッケージとは
ソフトウェアに関わるファイル一式がまとまったものをパッケージといいます。
「ソフトウェアに関わるファイル」には、設定ファイルやドキュメント、プログラム本体、プログラムが動くために必要なライブラリなどが含まれます。
パッケージには形式があり、その形式はディストリビューション毎に異なります。
パッケージの形式
ディストリビューション | パッケージの形式 |
---|---|
RedHat系(Fedora、CentOS) | RPM |
Debian系(Ubuntu) | deb |
#パッケージ管理システムでできること
パッケージ管理システムでパッケージ(ソフトウェア)をインストールできる、と上記で述べましたが、パッケージ管理システムではそのほかのこともできます(すべてのパッケージ管理システムに必ず備わっているというわけではありません)。
###パッケージのインストール、アンインストール、更新
パッケージを指定して、パッケージのインストール、アンインストールができます。
また、すでにインストール済みのパッケージをアップデートすることもできます。
###パッケージ同士の依存関係の解決
パッケージをインストールするときに、他のパッケージがインストールされていることが条件になっている場合があります。
パッケージ管理システムではこれらの依存関係を把握し、依存関係が損なわれてしまうようなインストール(あるいはアンインストール)に警告を出します。
###パッケージはどこから持ってくるのか
リポジトリから持ってきます。
私たちは「リポジトリがどこにあるのか」を意識する必要はありません(実際はWeb上のどこかにあります)。
パッケージ名を指定することでシステム側でリポジトリを探して、パッケージを探してくれます。
このようなことができるのは、ディストリビューションによって公式にサポートされた「公式リポジトリ」に対してです。
非公式のリポジトリもありますが、それらはパッケージ管理システムに登録することで使えるようになります。
#まとめ
- Linuxでソフトウェアをインストールするときは、インストーラーを使うのではなく、パッケージ管理システムを使用することが多い
- パッケージ管理システムを使うにはyumなどのツールを使用する
- ソフトウェアはパッケージという形でリポジトリに登録されている