Linuxの基本(その2)パッケージ管理システム

ソフトウェアをインストールする場合、自分でソースコードを入手、解凍後にコンパイルしてインストールするのは大変です

パッケージ管理システムを使うと簡単にできます

目次
  1. パッケージ管理システム
    1. RedHat系のパッケージ管理システム
      1. rpmコマンド
      2. yumコマンド
    2. Debian系のパッケージ管理システム
      1. dpkgコマンド
      2. (aptコマンド・apt-cacheコマンド)

パッケージ管理システム

パッケージ管理システムで、パッケージを「リポジトリからインストールしたり」「削除したり」「更新したり」します

ソフトウェアをインストールするには、ほとんどの場合「ルート権限」が必要です

su -でルートユーザーになる(ユーザーを切り替える)
または、コマンドの前にsudoをつけて、「ルートユーザーの権限(ユーザーはそのまま)」で実行します

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

「RPM」は、Red Hat社が開発した「ソフトウェアのパッケージ管理システム」のパッケージで、拡張子は「.rpm」です

[パッケージの名前][バージョン番号][リリース番号][アーキテクチャ].rpm

パッケージ管理コマンドには、「rpmコマンド」や「yumコマンド」などがありますが、依存関係を解決する「yumコマンド」が便利です

rpmコマンド

rpmコマンドは、RPMパッケージを「インストール」「アップグレード」「削除」「検索」するためのコマンドです

rpmコマンドは、依存関係は解決しません

「依存関係は解決しない」場合、例えば必要なライブラリがあっても一緒にインストールしません


*「インストール」「アップグレード」には、パッケージ(バイナリパッケージ)の場所を指定します(通常はネットなどで探します)

#パッケージ情報(v)と進捗状況(h)を表示してインストールする
rpm -ivh ファイルの場所

#パッケージをアップグレード(存在しない場合インストールする) 
rpm –U ファイルの場所

#パッケージをアップグレード(存在しない場合インストールしない)
rpm –F ファイルの場所

#パッケージを削除
rpm –e パッケージ名

#パッケージに問題ないか検証
rpm –V パッケージ名
#インストールされているパッケージ一覧を表示
rpm –qa

# パッケージに含まれるファイル一覧を表示
rpm –ql パッケージ

#パッケージの詳細情報を表示
rpm –qi パッケージ

#指定したファイルを含んでいるパッケージを表示
rpm –qf ファイルパス

#パッケージの更新履歴を表示
rpm –q パッケージ --changelog

インストールするパッケージに依存関係があるとエラーになります
依存関係を無視してインストールする場合です

#依存関係を無視してインストール
rpm -ivh ファイルの場所 --nodeps

yumコマンド

「yumコマンド」は依存関係を解決するので、便利で使いやすいです
RedHat系は、通常こちらを使用

パッケージはインターネット上にあり、利用するには「リポジトリ情報」が必要です

「リポジトリ」とは、ソフトウェアなどのプログラムのソースコードをためておく場所で、パッケージの配布場所のようなイメージです
/etc/yum.repos.d/は、yumコマンドで使用される「リポジトリ情報」が格納されている場所です

リポジトリは世界中にたくさんあり、それぞれ配っているパッケージが違います
リポジトリを追加することによって、パッケージの種類が多くなります

リポジトリを追加する場合、「/etc/yum.repos.d」直下に「repoファイル」を用意すれば、どこのリポジトリでも追加できます
しかし、安易にリポジトリを追加するのはセキュリティ上よくないです

*「repoファイル」の「mirrorlist」に設定されているURLから返ってくる「ミラーサイトのリスト」で一番近い場所をからパッケージを取得しています

#アップデートがないかチェック
yum check-update

#可能なもの全てアップデート(パッケージ名を指定しないときは)
yum update

#パッケージをアップデート
yum update パッケージ名

#パッケージをインストール
yum install パッケージ名

#パッケージを削除
yum remove パッケージ名


#リポジトリからパッケージを検索
yum search パッケージ名

#パッケージの詳細情報を表示
yum info パッケージ名

#インストールされているパッケージ一覧を表示
yum list installed

「/etc/yum.conf」は、yumの設定ファイルです

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

Debianのパッケージの拡張子は「.deb」です

[パッケージの名前][バージョン番号][リビジョン番号][アーキテクチャ].deb

dpkgコマンド」は、Debianのパッケージを管理するためのコマンドです

「APT」は「dpkgコマンド」を拡張した高機能なツールで、リポジトリから最新のパッケージをインストール、依存関係を解決します

「apt-getコマンド」や「apt-cacheコマンド」などがありますが、最近は2つを組み合わたような「aptコマンド」の利用が推奨されています

dpkgコマンド

#インストール済みのパッケージ一覧を表示
dpkg -l

#パッケージによってインストールされたファイル一覧を表示
dpkg –L パッケージ名

#指定したパッケージのアーカイブ情報を表示
dpkg –I アーカイブ名

#パッケージの詳細情報を表示
dpkg –s パッケージ名

#指定した文字列に一致するパッケージを表示
dpkg –S 文字列:
#パッケージをインストール
dpkg –i パッケージ名

#設定ファイルを残してパッケージを削除
dpkg –r パッケージ名

#設定ファイルを含めてパッケージを削除
dpkg –p パッケージ名

APT
(aptコマンド・apt-cacheコマンド)

「aptコマンド」は依存関係を解決するので、便利で使いやすいです
Debian系は、通常「aptコマンド」を使用

/etc/apt/sources.listは、パッケージのダウンロード元一覧がリストになったファイルです

aptコマンド

#パッケージリスト情報を最新に更新
apt update

#アップグレード可能なパッケージをリスト
apt list --upgradable

#パッケージのリストを表示する
apt list

#インストール済みのパッケージ一覧
apt list --installed

#インストール済みのパッケージをまとめて更新(パッケージ削除が発生するものは操作保留する)
apt upgrade

#保留されたる処理も含めて、すべてのパッケージを更新する
apt full-upgrade


#パッケージをインストールまたは更新
apt install パッケージ名

#パッケージを設定ファイルは残して削除
apt remove パッケージ名

#パッケージを設定ファイルを含め完全に削除
apt purge パッケージ名

#不要になったパッケージを削除する
apt autoremove


#指定したキーワードをもとにパッケージを検索
apt search キーワード

#パッケージの詳細情報
apt show パッケージ名

#/etc/apt/sources.listを編集する
apt edit-source

apt-cacheコマンド(パッケージの依存関係を表示)

#パッケージ[が]依存したパッケージ一覧
apt-cache depends パッケージ名

#パッケージ[に]依存したパッケージ一覧
apt-cache showpkg パッケージ名

apti-fileコマンド(ファイルを使っているパッケージを検索する)
apt-fileコマンドのインストールは、 apt install apt-file

apt-file search ファイル

余談1インストールしたパッケージの場所は、which パッケージ名で確認できます

余談2「wgetコマンド」は、指定したURLのファイルをダウンロードします
wget URLで「.debファイル」取得するなどに利用できたり、その他かなり便利そう
さっそく、apt install wget でインストールしました😊