Fedora 24: 特定パッケージをアップデート対象外にする

特定のパッケージに変更を加えた場合に、アップグレード対象から外したい場合があります(もちろんセキュリティの考慮も必要です)。

特定パッケージをアップデート対象外にする方法について記載します。

dnfコマンド実行時に対象外にする方法と/etc/dnf/dnf.confで対象外にする方法があります。

 

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.