AlmaLinuxでのパッケージ管理

はじめに

Linuxを使っているとパッケージに含まれるファイルを調べたいときがあります。インストールされているパッケージの場合はrpmコマンドが使えます。

例えばhttpdパッケージに含まれるファイルを知りたい時にはrpmコマンドが使えます。

$ rpm -ql httpd

アップデート情報を取得する

$ dnf check-update
AlmaLinux 9 - AppStream            4.2 MB/s | 7.5 MB     00:01
AlmaLinux 9 - BaseOS               2.8 MB/s | 2.4 MB     00:00
AlmaLinux 9 - Extras                25 kB/s |  17 kB     00:00

firewalld.noarch               1.2.1-1.el9.0.1               baseos
firewalld-filesystem.noarch    1.2.1-1.el9.0.1               baseos
python3-firewall.noarch        1.2.1-1.el9.0.1               baseos

パッケージをアップデートする

$ sudo dnf update

ファイル名(コマンド名)からそのファイルを提供するパッケージを調べる

$ dnf provides <ファイル名orコマンド名>

インストール済みのパッケージを調べる

rpmコマンドの場合は -qa オプションを付けます。

$ rpm -qa | grep ssh
libssh-config-0.9.6-3.el9.noarch
openssh-8.7p1-8.el9.x86_64
libssh-0.9.6-3.el9.x86_64
openssh-clients-8.7p1-8.el9.x86_64
openssh-server-8.7p1-8.el9.x86_64

yumコマンドの場合はサブコマンドlistにオプション--installedを付けます。

$ yum list --installed | grep ssh
libssh.x86_64                          0.9.6-3.el9              @baseos          
libssh-config.noarch                   0.9.6-3.el9              @baseos          
openssh.x86_64                         8.7p1-8.el9              @baseos          
openssh-clients.x86_64                 8.7p1-8.el9              @baseos          
openssh-server.x86_64                  8.7p1-8.el9              @baseos

dnfコマンドの場合もサブコマンドlistにオプション–installedを付けます。

$ dnf list installed | grep ssh
libssh.x86_64                          0.9.6-3.el9              @baseos          
libssh-config.noarch                   0.9.6-3.el9              @baseos          
openssh.x86_64                         8.7p1-8.el9              @baseos          
openssh-clients.x86_64                 8.7p1-8.el9              @baseos          
openssh-server.x86_64                  8.7p1-8.el9              @baseos 

パッケージに含まれるファイルの一覧を表示する

インストール済みのパッケージのみ可能

rpm -ql <パッケージ名> で実行します。

$ rpm -ql openssh-server
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d
/etc/ssh/sshd_config.d/50-redhat.conf
/etc/sysconfig/sshd
/usr/lib/.build-id
/usr/lib/.build-id/14
/usr/lib/.build-id/14/9bac81c313142120a01984652df41e08c4fd53
/usr/lib/.build-id/9e
/usr/lib/.build-id/9e/fde6871e0486bcf22e478317e0e1e88a1c491a
/usr/lib/systemd/system/sshd-keygen.target
/usr/lib/systemd/system/sshd-keygen@.service
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/sshd.socket
/usr/lib/systemd/system/sshd@.service
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/sshd-keygen
/usr/sbin/sshd
/usr/share/empty.sshd
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz

未インストールでも可能

yum repoquery -list <パッケージ名> で実行します。

$ yum repoquery --list nginx
メタデータの期限切れの最終確認: 0:58:10 時間前の 2022年09月01日 23時38分33秒 に実施しました。
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/.build-id
/usr/lib/.build-id/6b
/usr/lib/.build-id/6b/c5bdb91b15cb88254d4552f3cf64c446c1b76e
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx
/usr/share/doc/nginx/CHANGES
/usr/share/doc/nginx/README
/usr/share/doc/nginx/README.dynamic
/usr/share/licenses/nginx
/usr/share/licenses/nginx/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/nginx/html/system_noindex_logo.png
/usr/share/nginx/modules
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx

dnf repoquery --list <パッケージ名> で実行します。

$ dnf repoquery --list nginx
メタデータの期限切れの最終確認: 0:59:15 時間前の 2022年09月01日 23時38分33秒 に実施しました。
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/.build-id
/usr/lib/.build-id/6b
/usr/lib/.build-id/6b/c5bdb91b15cb88254d4552f3cf64c446c1b76e
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx
/usr/share/doc/nginx/CHANGES
/usr/share/doc/nginx/README
/usr/share/doc/nginx/README.dynamic
/usr/share/licenses/nginx
/usr/share/licenses/nginx/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/nginx/html/system_noindex_logo.png
/usr/share/nginx/modules
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx

rpmの場合、インストールされていないパッケージを指定するとエラーになります。

$ rpm -ql nginx
パッケージ nginx はインストールされていません。

コメント