【Linux入門】RPMパッケージ

パッケージの管理(CentOS)

パッケージ管理の重要性

  • CentOSや他のRed Hat系ディストリビューションでは、パッケージ管理がシステムの構成やアプリケーションの管理において中心的な役割を果たします。
  • RPM(Red Hat Package Manager)は、CentOSで利用されるパッケージ管理システムの一つです。

RPMパッケージとは

RPMの役割

  • RPMは、ソフトウェアや関連するファイルを単一のファイルにまとめ、インストール、アップグレード、削除などの操作を容易にします。
  • .rpmという拡張子のパッケージファイルが使用されます。

パッケージ名とパッケージファイルの違い

パッケージ名

  • パッケージ名は、インストールするソフトウェアやライブラリの名前を指します。例えば、httpdはApache HTTP Serverのパッケージ名です。

パッケージファイル

  • パッケージファイルは、実際にインストールされる .rpm ファイルを指します。例えば、httpd-2.4.6-90.el7.centos.x86_64.rpmはApache HTTP ServerのRPMパッケージファイルです。

rpmコマンド

インストール関連

  • -ivh パッケージファイル名: パッケージをインストール
  • -Uvh パッケージファイル名: パッケージをアップグレード

アンインストール関連

  • -e パッケージ名: パッケージをアンインストール

クエリ関連

  • -q パッケージ名: パッケージがインストールされているか確認
  • -qa パッケージ名: インストールされているすべてのパッケージを表示
  • -qi パッケージ名: パッケージの詳細情報を表示

rpmコマンドの主なオプション

オプション説明
-i or --installパッケージを新規にインストール
-U or --upgradeパッケージをアップグレード
-e or --eraseパッケージをアンインストール
-q or --queryインストール済みパッケージの情報表示
-qaインストール済みすべてのパッケージを表示
-qiパッケージの詳細情報を表示
-ivhインストール時に進捗情報と詳細を表示
-Uvhアップグレード時に進捗情報と詳細を表示
--nodeps依存関係のチェックをスキップ
rpmコマンドの主なオプション

これらのオプションを組み合わせて使用することで、rpmコマンドを効果的に利用できます。

インストール済みRPMパッケージを表示する例

$ rpm -qa
libpciaccess-0.14-1.el7.x86_64
jomolhari-fonts-0.003-17.el7.noarch
gnome-shell-extension-places-menu-3.28.1-17.el7_9.noarch
compat-exiv2-026-0.26-2.el7.x86_64
geoclue2-libs-2.4.8-1.el7.x86_64
mozilla-filesystem-1.9-11.el7.x86_64
pyparted-3.9-15.el7.x86_64
gnome-getting-started-docs-3.28.2-1.el7.noarch
urw-base35-bookman-fonts-20170801-10.el7.noarch
libvirt-daemon-driver-storage-iscsi-4.5.0-36.el7_9.5.x86_64
(省略)

パッケージの説明を表示する例

$ rpm -qi パッケージ名

以下は、「vim-common」パッケージの説明です。

$ rpm -qi vim-common
Name        : vim-common
Epoch       : 2
Version     : 7.4.629
Release     : 8.el7_9
Architecture: x86_64
Install Date: 2023年12月31日 17時34分14秒
Group       : Applications/Editors
Size        : 22155744
License     : Vim
Signature   : RSA/SHA256, 2020年12月18日 05時37分20秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.629-8.el7_9.src.rpm
Build Date  : 2020年12月16日 01時44分28秒
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/
Summary     : The common files needed by any version of the VIM editor
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-common package contains files which every VIM binary will need in
order to run.

If you are installing vim-enhanced or vim-X11, you'll also need
to install the vim-common package.

インストールされているかどうかを確認する例

$ rpm -q パッケージ名

 下の例では、httpdパッケージはインストールされていませんが、postfixパッケージはインストールされていることが確認できます。

$ rpm -q httpd
パッケージ httpd はインストールされていません。
$ rpm -q postfix
postfix-2.10.1-9.el7.x86_64

コマンドでパッケージをインストールする例

rpmコマンドで「Htop」をインストールする例を紹介します。

 Htop とは、top の置き換えを目標に設計されたプロセス ビューアーで、リアルタイムでシステム監視を行うためのテキストモードアプリケーションです。デフォルトでは、プロセスはCPU使用率の順に並べられます。

ここでは、「htop-2.2.0-3.el7.x86_64.rpm」をインストールします。

 「htop-2.2.0-3.el7.x86_64.rpm」で検索するとダウンロードができるサイトがいくつか見つかります。そこから、ダウンロードします。

 「https://rpmfind.net/linux/rpm2html/search.php?query=htop(x86-64)」などから「htop-2.2.0-3.el7.x86_64.rpm」をダウンロードします。

ダウンロードした「htop-2.2.0-3.el7.x86_64.rpm」ファイルを「/root」ディレクトリに配置します。

$ sudo mv Downloads/htop-2.2.0-3.el7.x86_64.rpm /root
[sudo] user01 のパスワード:

rpmコマンドで「-ivh」 オプションを指定してHtopをインストールします。

$ su -
パスワード:
最終ログイン: 2024/02/03 (土) 15:00:32 JST日時 pts/0
# rpm -ivh htop-2.2.0-3.el7.x86_64.rpm 
警告: htop-2.2.0-3.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:htop-2.2.0-3.el7                 ################################# [100%]

パッケージをアンインストールする例

$ su -
パスワード:
最終ログイン: 2024/02/06 (火) 01:04:27 JST日時 pts/1
# rpm -e htop

まとめ

 このように、rpmコマンドはパッケージの管理やシステムの構成に関するさまざまな作業をサポートします。それぞれのオプションを利用して必要な操作を行い、システムを効果的に管理することができます。