Edited at

「パッケージ管理システムとは」by Windowsユーザー

More than 3 years have passed since last update.

いままで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などのツールを使用する

  • ソフトウェアはパッケージという形でリポジトリに登録されている