特定のパッケージに変更を加えた場合に、アップグレード対象から外したい場合があります(もちろんセキュリティの考慮も必要です)。
特定パッケージをアップデート対象外にする方法について記載します。
dnfコマンド実行時に対象外にする方法と/etc/dnf/dnf.confで対象外にする方法があります。
Table of Contents
1 dnf –exclude
dnfコマンドの–excludeオプションでアップデート対象から外すパッケージを指定します。ダブルコーテーションでくくると複数パッケージを指定できます。ここではmcとemacsを指定します。
$ # sudo dnf update --exclude="<package> [<package>...]" $ sudo dnf update --exclude="mc emacs"
2 /etc/dnf/dnf.conf
/etc/dnf/dnf.confのexcludeディレクティブでアップデート対象から外すパッケージを指定します。ダブルコーテーションは使いません。
[main] <snip> exclude=<package> [<package>...]
ここではmcとemacsを指定します。
$ diff -uprN /etc/dnf/dnf.conf{.org,} --- /etc/dnf/dnf.conf.org 2016-06-30 19:45:37.876541410 +0900 +++ /etc/dnf/dnf.conf 2016-06-30 19:53:29.486621755 +0900 @@ -2,3 +2,4 @@ gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True +exclude=mc emacs
3 実行結果
/etc/dnf/dnf.confでexcludeをしていない状態です。
$ cat /etc/dnf/dnf.conf [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True
mcパッケージがアップデート対象になっています。
$ dnf check-update | grep "^mc" mc.x86_64 1:4.8.15-2.fc24 fedora
/etc/dnf/dnf.confでmcパッケージをexcludeします。
$ sudo su -c 'echo exclude=mc >> /etc/dnf/dnf.conf' $ cat /etc/dnf/dnf.conf [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True exclude=mc
mcパッケージがアップデート対象から除外されました。
$ dnf check-update | grep "^mc" $ # mc is not included in update packages.