コンテンツにスキップ

パッケージ操作

インストール済みのパッケージ一覧出力

$ dpkg -l      # debian
$ rpm -qa      # redhat
$ apk info     # alpine

パッケージ管理あれこれ / [cygwin][debian][redhat][Solaris][command] | 戯術者の日記

インストール済みのパッケージ foo に含まれるファイル一覧

$ dpkg -L foo        # debian
$ rpm -ql foo        # redhat
$ apk manifest foo   # alpine

ファイル /foo/bar をインストールしたパッケージ

$ dpkg -S /foo/bar    # debian
$ rpm -qf /foo/bar    # redhat

更新確認

yum

$ yum check-update 

インストール可能なバージョン一覧

yum updateするときに特定のパッケージを更新対象外にする - zaki work log

[root@rhel8 ~]# yum search httpd --showduplicates 
Updating Subscription Management repositories.
メタデータの期限切れの最終確認: 0:24:27 時間前の 2021年06月21日 21時36分50秒 に実施しました
================================================ 名前 完全一致: httpd =================================================
httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64 : Apache HTTP Server
httpd-2.4.37-10.module+el8+2764+7127e69e.x86_64 : Apache HTTP Server
httpd-2.4.37-11.module+el8.0.0+2969+90015743.x86_64 : Apache HTTP Server
httpd-2.4.37-16.module+el8.1.0+4134+e6bad0ed.x86_64 : Apache HTTP Server
httpd-2.4.37-12.module+el8.0.0+4096+eb40e6da.x86_64 : Apache HTTP Server
httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 : Apache HTTP Server
httpd-2.4.37-30.module+el8.3.0+7001+0766b9e7.x86_64 : Apache HTTP Server
httpd-2.4.37-39.module+el8.4.0+9658+b87b2deb.x86_64 : Apache HTTP Server
:
:

dnf

リポジトリ一覧

有効なものの一覧。-v付けると詳細

# dnf repolist

無効なものの一覧。

# dnf repolist --disabled

指定リポジトリで提供されるパッケージ一覧

dnf repository-packages <リポジトリ名> list

# dnf repository-packages ansible-2.9-for-rhel-8-x86_64-rpms list
Updating Subscription Management repositories.
メタデータの期限切れの最終確認: 0:07:08 時間前の 2021年08月08日 12時00分34秒 に実施しました
利用可能なパッケージ
ansible.noarch                   2.9.24-1.el8ae               ansible-2.9-for-rhel-8-x86_64-rpms
ansible-test.noarch              2.9.24-1.el8ae               ansible-2.9-for-rhel-8-x86_64-rpms
sshpass.x86_64                   1.06-3.el8ae                 ansible-2.9-for-rhel-8-x86_64-rpms

指定リポジトリを有効化/無効化

# dnf config-manager --enable ansible-2.9-for-rhel-8-x86_64-rpms

こうなる

[root@rhel8 ~]# dnf config-manager --enable ansible-2.9-for-rhel-8-x86_64-rpms
Updating Subscription Management repositories.
[root@rhel8 ~]# dnf repolist
Updating Subscription Management repositories.
repo id                                                            repo の名前
ansible-2.9-for-rhel-8-x86_64-rpms                                 Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs)
rhel-8-for-x86_64-appstream-rpms                                   Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms                                      Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)

無効化は--disableで。

# dnf config-manager --disable ansible-2.9-for-rhel-8-x86_64-rpms

強制インストール

自動化するときとか

dnf install -y <package-name>

rpmファイルダウンロード

dnf install --downloadonly --destdir /path/to <package-name>

ホストにインストール済みの場合はダウンロードされないため --installroot を併用する。

yum

リポジトリ一覧

有効なもの一覧

# yum repolist

無効なもの一覧

# yum repolist disabled

リポジトリの有効化

# yum-config-manager --enable ol7_developer_EPEL

引数に指定するのはリポジトリIDだけど、リスト時に/archが付いてる場合はそれは除く。

apt

強制インストール

自動化するときとか

apt-get install -y <package-name>

apk

インストール

# apk add squid

アンインストール

# apk del squid

リポジトリ