【LPIC】Linuxのパッケージ管理システムについて
概要
LPIC1の勉強中に混乱したので、まとめてみました。
パッケージ管理について
実行プログラム、設定ファイル、ドキュメントを1つのファイルにまとめたものをパッケージという。
その管理はパッケージ管理システムが行う。
Linuxのパッケージ管理は、大きく分けて2つある。
- Debian形式(Debian系のディストリブーション)
- dpkgコマンド・APTツールが使われることが多い
- RPM形式(Red Hat系のディストリブーション)
- rpmコマンド ・ YUM(CentOSやFedoraでのAPTツールに相当)
Debianパッケージ管理
dpkgコマンド
dpkgコマンドでappachパッケージをインストール
dpkg -i apach2_2.4.29-1ubuntu4.5_amd64.deb
設定ファイル含めて削除
dpkg --purge apache2
設定ファイルを残す場合
dpkg -r apache2
指定したファイルがどのパッケージからインストールされたかを表示
dpkg -S '*/apache2'
パッケージ情報を確認
dpkg -s bash
dpkg --status bash
インストール済みの全パッケージ
dpkg -l
パッケージに含まれるファイルを表示
dpkg -L bash
dpkg --listfiles bash
対話形式で、再設定などを行う場合。(例: Postfix)
dpkg-reconfigure postfix
apt-getコマンド
apt-getはAPTに含まれるコマンド。インターネット経由で最新パッケージの入手などができる。
※ apt-getコマンドでパッケージ管理を始めるには、/etc/apt/sources.list
にパッケージ管理をしているサイトのURLを記述する必要がある。
dev http://archive.ubuntu.com/ubuntu bionic main restricted
設定したサイトに接続して最新のパッケージを取得
apt-get update
インストールとアンインストール
apt-get install apache2
apt-get remove apache2
システムを一括で最新にする場合
apt-get dist-upgrade
ただしこのコマンドは、既存パッケージを削除する場合があるため、削除を伴わないパッケージのアップグレードは下記のようにする。
apt-get upgrade
apt-cacheコマンド。
パッケージの照会・検索をするコマンド。
apache2に関連するパッケージを検索
apt-cache search apache2
apache2パッケージの情報を表示
apt-cache show apache2
パッケージが依存するパッケージを表示
apt-cache depends zsh
aptコマンド
apt-get と apt-cacheを合わせたようなコマンドが aptコマンド。
パッケージリストの更新
apt update
apt -y update # 対話的な動作をせず、自動的にYES
インストールとアンインストール
apt install emacs
apt remove emacs
「apache2」で始まる名前のパッケージだけを一覧表示
apt search "apache2*"
依存関係のためにインストールされたが、今や必要なくなったものを削除。
apt autoremove
RPMパッケージの管理
RPMはRed Hat社が開発したパッケージ管理システム。
rpmコマンド
パッケージのインストール
rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
vオプションで詳細な情報を表示し、hオプションで進行状況(###[100%])を表示する。
パッケージのアップデート
rpm -Fvh ~/rpms/*.rpm
Fオプションではインストールされていればアップグレードする。
Uオプションはなければインストールする。
アンインストール。
eオプションであることに注意!。eraseの略。
rpm -e httpd
ただし、依存関係を無視してアンインストールする場合、--nodepsをつける。
rpm -e --nodeps httpd-tools
パッケージの照会。
照会の場合は-qオプションを必ずつける。
インストール済全てを表示
rpm -qa
パッケージ情報を表示。
rpm -qi bash
インストール前のパッケージ情報は、
rpm -qip bash
指定したファイルが何というパッケージからインストールされたのか表示する。
rpm -qf /bin/bash
パッケージからどのようなファイルがインストールされるのかを事前に調べる。
rpm -qlp bash-4.3.26.el7.x86_64.rpm
指定のパッケージからインストールされたファイルの一覧。
rpm -ql hhtpd # 全てのファイル
rpm -qc hhtpd # 設定ファイルのみ
rpm -qd hhtpd # ドキュメントファイルのも
依存関係を調べる
rpm -qR less
署名の確認
rpm --checksig httpd-2.4.6-80.el7.centos.1.x86_64.rpm
rpm -K httpd-2.4.6-80.el7.centos.1.x86_64.rpm
RPMパッケージをインストールせずに内容を展開するにはrpm2cpioコマンド
rpm2cpio httpd-2.4.6-80.el7.centos.1.x86_64.rpm | cpio -id
カレントディレクトリ以下にファイルやディレクトリを展開してくれる。
yumコマンド
YUMはCentOSにおけるAPTツールに相当する。YUMの設定は。/etc/yum.confと/etc/yum.repos.dディレクト以下のファイルで行う。
パッケージ内にアップデートパッケージが存在するパッケージを表示
yum check-update
全パッケージのインストール
yum update # 全パッケージアップデート
yum install ruby # インストール
yum remove emacs #アンインストール
yum info bash # 詳細
リポジトリにある全てのパッケージ情報とインストールの有無を確認
yum list
パッケージ情報をキーワード検索する
yum search ruby
パッケージグループ単位のリスト表示
yum groups list
GNOMEデスクトップ関連のパッケージをまとめて、インストールする
yum groups install "GNOTE Desktop"
その他コマンド
似ているもとして、dnfコマンドやzypperコマンドが存在する。
Discussion