【LPICレベル1】Linuxのパッケージ管理システムとは

LPICやLinuCのレベル1の試験範囲に「パッケージ管理システム」というものがあります。

dpkg、apt、rpm、yum、などのコマンドもたくさん出てくるので、勉強し始めた人にとってはよく分からなくなる分野ではないでしょうか。

パッケージ管理システムとは、分かりやすく言うと「Linuxにおけるソフトをインストールする仕組み」です。

スマホアプリのインストールやアップデートができるAppleストアGoogle Playもパッケージ管理システムです。

PCソフトのインストーラや、MacのHomebrew、プログラミング言語Pythonのpipなどもパッケージ管理システムです!

Linuxの世界では、コマンドを使ったパッケージ管理システムでインストールやアンインストールなどを行います。

CentOSやUbuntu、Fedoraなど、LinuxのOSによってパッケージ管理システムも様々です。

今回は、LPICレベル1でもつまづく人が多い分野であるパッケージ管理システムについて説明します。

基本的なところから順を追って理解してきましょう。

パッケージ管理システムを理解する流れ

パッケージ管理システムを攻略する流れとしては以下のような手順を踏むのが良いかと思います。

  1. 「パッケージ管理システム」について知る。
  2. Linuxの代表的ディストリビューションであるDebian系とRedHat系のパッケージ管理システムについて知る。
  3. 実際にコマンドを打ったり、問題を解いて覚える。

パッケージ管理システムとは

プログラム本体、ライブラリや設定ファイル(プログラムが動作するのに必要)、ドキュメント(手順書 or マニュアル)を1つにまとめたものを「パッケージ」と言います。

パッケージ管理システムとは、パッケージのインストールやアンインストール、アップデート、パッケージ同士やライブラリの競合、依存関係を管理するシステムです。

以下はパッケージ管理システムで出来る主なことです。
  • パッケージのインストール、アンインストール(削除)、アップデート(更新)

  • パッケージの依存関係の管理
    パッケージの依存とは、インストールしようとするパッケージが、特定のパッケージがないシステムでは正しく動作しないこと。

  • パッケージの競合関係の管理
    パッケージの競合とは、インストールしようとするパッケージが,特定のパッケージがインストール済みのシステムでは正しく動作しないこと。

  • リポジトリの管理
    リポジトリとは「保管場所」の意味。インターネット上にあるLinuxパッケージの配布場所のことです。Apple StoreやGoogle Playみたいなもの。

Linuxのパッケージ管理システム

Linuxのパッケージ管理システムには代表的なものとしてDebian系RedHat系があります。

分類 主なディストリビューション コマンド
Debian系 Ubuntu など dpkg, apt
RedHat系 CentOS など rpm, yum, dnf

 

以下の表は、各コマンドの由来や、関係性をまとめたものです。

コマンド 略語の由来 説明
dpkg Debian Package Debian系、rpmと同等。
オプションを使って操作する。
例:dpkg -i ***, dpkg –install ***
apt Advanced Package Tool Debian系、yumと同等、dpkgの拡張版。
コマンドを使って操作する。
例:apt-get install ***, apt-cache show *** 
rpm Redhat Package Manager RedHat系、dpkgと同等。
オプションを使って操作する。
例:rpm -q ***, rpm –query ***
yum Yellowdog Updater Modified RedHat系、aptと同等、rpmの拡張版。
コマンドを使って操作する。
例:yum install ***, yum remove ***
MEMO
LPICの勉強では、ある程度どんなコマンドがあるか把握した後は、以下のような学習方法がおススメです。
  • 各コマンドの内容と英語の意味を照らし合わせながら覚える。
  • Ping-tなどで問題を何回も解く。
  • 自分のPCにUbuntuやCentOSの仮想マシン環境を作って、実際にコマンドを打ちながら覚える。

パッケージ管理コマンドの比較表

Debian系とRedHat系のコマンドを比較した表を作ってみました。
学習を進めるうえでの参考になれば幸いです。

Debian系のパッケージ管理コマンド(dpkgとapt)

dpkgはDebian系パッケージ管理の基本的ツールです。

aptはdpkgを拡張したツールです。

項目 dpkg apt
設定ファイル /etc/dpkg/dpkg.cfg  
リポジトリ設定   /etc/apt/sources.list
パッケージの
インストール
dpkg -i (–install) パッケージ名 apt-get install パッケージ名
パッケージの削除
dpkg -r (–remove) パッケージ名
※設定ファイルは残す
dpkg -P (–purge) パッケージ名
※設定ファイルも削除
apt-get remove パッケージ名
apt-get clean
※過去ファイルを削除
パッケージの更新   apt-get install パッケージ名
apt-get update
apt-get upgrade

※全パッケージのアップグレード
ディストリビューション
の更新
  apt-get dist-upgrade
パッケージの
インストール
(オプション)
dpkg -Ei パッケージファイル名
※同バージョンがあるなら何もしない
dpkg -Gi パッケージファイル名
※新バージョンがあるなら何もしない
 
パッケージの
インストール
(オプション)
dpkg -Ri ディレクトリ名
※再帰的にディレクトリを検索
 
インストール済み
パッケージを表示
dpkg -l (–list) 検索パターン apt-cache search キーワード
インストール済み
ファイルを表示
dpkg -L (–listfiles) パッケージ名  
インストール済み
パッケージの情報表示
dpkg -s (–status) パッケージ名 apt-cache show パッケージ名
指定ファイルがどのパッケージ
からインストールされたか表示
dpkg -S (–search) 検索パターン  
インストール未完了の
パッケージを表示
dpkg -C (–audit)  
パッケージの依存関係を表示   apt-cache showpkg パッケージ名
※dependsとは逆の依存関係を表示
パッケージの依存関係を表示   apt-cache depends パッケージ名

RedHat系のパッケージ管理コマンド(rpmとyum)

rpmはRedHat系パッケージ管理の基本的ツールです。

yumはrpmを拡張したツールです。

作業項目 rpm yum
パッケージの
インストール
rpm -i (–install) パッケージファイル名
rpm -U (–upgrade) パッケージファイル名
yum install パッケージ名
パッケージの
アンインストール
rpm -e (–erase) パッケージ名 yum remove パッケージ名
パッケージの更新 rpm -U (–upgrade) パッケージファイル名
※なければインストール
rpm -F (–freshen) パッケージファイル名
※なければインストールしない
yum update [パッケージ名]
パッケージのインストール
(オプション)
rpm -iv パッケージファイル名
※詳細情報の表示
rpm -ivh (-iv –hash) パッケージファイル名
※詳細情報の表示、進行状況を「#」で表示
rpm -i –test パッケージファイル名
※実際には実行せずテストを実施
rpm -i –nodeps パッケージファイル名
※依存関係を無視
 
パッケージの
グループインストール
  yum groupinstall グループ
インストール済み
パッケージの照会
rpm -q (–query) パッケージ名 yum search キーワード
パッケージの検査 rpm -V (–verify) パッケージ名  
インストール済み
パッケージの表示
rpm -qa (-q –all)
rpm -Va (-V –all)
yum list [パッケージ名]
インストール済み
ファイルを表示
rpm -ql (-q –list) パッケージ名  
インストール済み
パッケージの情報表示
rpm -qi (-q –info) パッケージ名 yum info [パッケージ名]
指定ファイルがどのパッケージ
からインストールされたか表示
rpm -qf (-q –file) ファイル名  
パッケージの変更履歴を表示 rpm -q –changelog パッケージ名  
設定ファイルの一覧表示 rpm -qc(-q –configfiles) パッケージ名  
MD5によるファイルの
改ざんを検査しない
rpm -V –nomd5 パッケージ名  
アップデート可能なパッケージの表示   yum check-update [パッケージ名]
パッケージグループの一覧表示   yum grouplist

まとめ

  • パッケージ管理システムとは、スマホアプリをインストールするのと同じような仕組みのこと。
  • Linuxのパッケージ管理システムには、Debian系(dpkg、apt)とRedHat系(rpm、yum)がある。
  • dpkgの拡張版がapt、rpmの拡張版がyumである。