Linuxコマンドの基本:パッケージとリポジトリ

 ここでは、Linuxにおけるソフトウェア導入手法の1つであるパッケージ管理システムと、パッケージを配布する「リポジトリ」について概観します。複数のLinuxディストリビューション(ここではCentOSとUbuntu)を例に、共通の概念からコマンド使用例までを紹介します。


なぜパッケージ管理システムが必要なのか

 Linuxでは、Windowsのようにソフトウェアごとに独立したインストーラが付属していない場合が多く、ソフトウェアの導入は「パッケージ」を利用するのが一般的です。パッケージ管理システムを使用すると、ソフトウェアのインストール・アンインストール・更新を簡潔かつ統一的に行えます。さらに、必要な依存関係を自動的に解決してくれるため、手動でライブラリを揃える手間を省くことができます。


パッケージとパッケージファイル形式

 パッケージとは、ソフトウェアを動かすために必要なファイル(実行バイナリ、設定ファイル、ドキュメント、インストールスクリプトなど)をひとまとめにしたアーカイブファイルです。ディストリビューションによって採用するパッケージ形式が異なり、主に以下の2種類が主流です。

パッケージファイル形式採用ディストリビューション
Red Hat形式(.rpm)Red Hat Enterprise Linux, CentOS, Fedora
Debian形式(.deb)Debian GNU/Linux, Ubuntu

ポイント

  • .rpmファイル:主にRed Hat系ディストリビューションで利用。
  • .debファイル:主にDebian系ディストリビューションで利用。

リポジトリとは何か

 リポジトリ(Repository)は、パッケージをまとめて配布している場所を指します。ここでの「リポジトリ」は、Gitなどのバージョン管理システムで使う「リポジトリ」とは異なり、単なるパッケージ配布用の保管庫・ダウンロード元という意味合いです。

 パッケージ管理システムは、設定ファイルやコマンドオプションで指定したリポジトリからパッケージ情報やパッケージファイル本体を取得し、インストール・アップデートを行います。

リポジトリの種類例

  • 公式リポジトリ:ディストリビューション提供元が公式に配布しているパッケージを格納。
  • サードパーティリポジトリ:外部の開発プロジェクトや個人が提供。追加設定すれば公式リポジトリにないパッケージを導入可能。

サードパーティリポジトリ例

ディストリビューションリポジトリ例
CentOSRepoForge (RPMForge), EPEL, Remi
UbuntuPPA, Japanese Team

パッケージ管理コマンドの利用例

ディストリビューションごとにパッケージ管理コマンドが異なります。

  • Red Hat系(CentOSなど):yumdnfコマンド
  • Debian系(Ubuntuなど):apt-getaptコマンド

CentOSでの例(yumコマンド)

パッケージ一覧の更新

$ sudo yum update

解説

リポジトリ情報を更新し、最新のパッケージ情報を取得します。

パッケージのインストール

$ sudo yum install <パッケージ名>

解説

指定したパッケージをインストールします。依存関係も自動解決。

パッケージのアンインストール

$ sudo yum remove <パッケージ名>

解説

指定したパッケージを削除します。

Ubuntuでの例(aptコマンド)

パッケージ一覧の更新

$ sudo apt update

解説

リポジトリのパッケージ情報を最新化。

パッケージのインストール

$ sudo apt install <パッケージ名>

解説

指定したパッケージをインストールします。

パッケージのアンインストール

$ sudo apt remove <パッケージ名>

解説

指定したパッケージを削除します。


公式・サードパーティリポジトリの活用

 初期状態では、公式リポジトリが設定されており、ディストリビューションベースのパッケージはそこからインストールできます。より多くのソフトウェアを使いたい場合は、必要なサードパーティリポジトリを追加することで、公式リポジトリにはないパッケージもパッケージ管理システムで統一的に扱えます。


まとめ

  • パッケージ管理システムを用いることで、Linuxでのソフトウェアインストール・アップデート・削除が容易かつ安全に行えます。
  • ディストリビューションによってパッケージ形式(.rpm、.deb)が異なり、それぞれ対応するパッケージ管理コマンド(yum/dnf、apt-get/apt)を利用します。
  • リポジトリはパッケージファイルの配布元であり、公式・サードパーティリポジトリから必要なパッケージを入手します。
  • 必要に応じてサードパーティリポジトリを追加し、インストール可能なパッケージを増やすことも可能です。

 このように、パッケージとリポジトリを理解することで、Linux上でのソフトウェア管理がスムーズになり、運用・管理効率が向上します。