Fedoraでサポート期限を切らしてDNF(YUM)でupgradeコマンドが効かなくなった場合の対処法

前書き

2~3日経ってDNFを実行しても更新が来ない場合は大体この状態に陥っている。
既に2回ほど嵌まってしまったため、更新方法をまとめておく。

発生時の状況

・こんな感じで、アップデートを実行しても何もなく終了してしまう。

[root@server]/# dnf upgrade    
Last metadata expiration check: 0:29:47 ago on Thu Dec 27 23:36:46 2018.
Dependencies resolved.
Nothing to do.
Complete!

・"-v"オプションで詳細を表示するとこんな感じ。
 リポジトリを見ようとすると「not found」となっていることが分かる。

[root@server]/# dnf -v upgrade                    
Loaded plugins: builddep, config-manager, copr, debug, debuginfo-install, download, etckeeper, generate_completion_cache, needs-restarting, playground, repoclosure, repograph, repomanage, reposync, system-upgrade
DNF version: 2.7.5
cachedir: /var/cache/dnf
repo: using cache for: updates
updates: using metadata from Fri Nov 30 10:29:19 2018.
repo: using cache for: fedora
not found deltainfo for: Fedora 27 - x86_64
not found updateinfo for: Fedora 27 - x86_64
fedora: using metadata from Sun Nov  5 14:51:47 2017.
(中略)
--> Starting dependency resolution
--> Finished dependency resolution
Dependencies resolved.
Nothing to do.
Complete!

・で、リポジトリの設定ファイルを見てみるとbaseurlの部分がコメントアウトされている。(多分サービス最期の更新の時にDNFが実施するものと思われ)

[root@server]/# cat /etc/yum.repos.d/fedora.repo 
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
(後略)

解決方法

DNFコマンドに「system-upgrade」オプションを付けて実行することでシステム更新ができる。なお、こんなタイトルだがサポートが切れていてもいなくても手順は同じ。
(当然だがroot権限で実行のこと)


手順1) キャッシュをクリアし、アップグレードを全て適用する。

# dnf clean all
# dnf --refresh upgrade

手順1.5) ※Fedora27→28のアップデート時のみ


そのままシステム更新を実行しようとするとnss-pemパッケージが依存エラーを起こす。これはアップデートと同時に更新できないだけらしく、事前にinstallしてからアップデートすれば解決できる。

# dnf install nss-pem --releasever=28

手順2) システム更新をダウンロードする。

# dnf system-upgrade download -y --releasever <更新先バージョン>

※自動YESオプション"-y"を指定しない場合、ダウンロード後に
 鍵の更新確認プロンプトが出て一旦止まるので注意

 From       : (鍵のパス)
Is this ok [y/N]: 

手順3) DNFで以下のコマンドを実行すると、再起動後にシステム更新が始まる。

# dnf system-upgrade reboot

実際に試してみるとこんな感じ

#手順1
[root@server]/# dnf clean all                              
42 files removed
[root@server]/# dnf --refresh upgrade                      
Fedora 27 - x86_64 - Updates                                                                                                                                                        18 MB/s |  27 MB     00:01    
Fedora 27 - x86_64                                                                                                                                                                  17 MB/s |  58 MB     00:03    
Last metadata expiration check: 0:00:00 ago on Fri Dec 28 01:02:45 2018.
Dependencies resolved.
Nothing to do.
Complete!

#手順1.5 ※エラー発生も含め記載
[root@server]/# dnf system-upgrade download --releasever 28
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
RPM Fusion for Fedora 28 - Free - Updates                     299 kB/s | 528 kB     00:01    
RPM Fusion for Fedora 28 - Free                               324 kB/s | 754 kB     00:02    
Last metadata expiration check: 0:00:00 ago on Fri Dec 28 01:29:50 2018.
Error: 
 Problem: nss-pem-1.0.3-6.fc27.i686 has inferior architecture
  - nss-pem-1.0.3-6.fc27.x86_64 does not belong to a distupgrade repository
  - problem with installed package nss-pem-1.0.3-6.fc27.i686
[root@server]# dnf install nss-pem-1.0.3-9.fc28 --releasever=28
Last metadata expiration check: 0:34:03 ago on Fri Dec 28 01:45:25 2018.
Dependencies resolved.
==============================================================================================
 Package                     Arch            Version                   Repository        Size
==============================================================================================
Upgrading:
 nss                         i686            3.41.0-3.fc28             updates          765 k
 nss                         x86_64          3.41.0-3.fc28             updates          693 k
 nss-pem                     x86_64          1.0.3-9.fc28              fedora            80 k
 nss-softokn                 i686            3.41.0-3.fc28             updates          462 k
 nss-softokn                 x86_64          3.41.0-3.fc28             updates          434 k
 nss-softokn-freebl          i686            3.41.0-3.fc28             updates          265 k
 nss-softokn-freebl          x86_64          3.41.0-3.fc28             updates          266 k
 nss-sysinit                 x86_64          3.41.0-3.fc28             updates           66 k
 nss-tools                   x86_64          3.41.0-3.fc28             updates          545 k
 nss-util                    i686            3.41.0-3.fc28             updates          132 k
 nss-util                    x86_64          3.41.0-3.fc28             updates          130 k

Transaction Summary
==============================================================================================
Upgrade  11 Packages

Total download size: 3.7 M
Is this ok [y/N]: y   
Downloading Packages:
(1/11): nss-softokn-3.41.0-3.fc28.x86_64.rpm                  2.6 MB/s | 434 kB     00:00    
(2/11): nss-3.41.0-3.fc28.x86_64.rpm                          3.5 MB/s | 693 kB     00:00    
(3/11): nss-softokn-freebl-3.41.0-3.fc28.x86_64.rpm           5.2 MB/s | 266 kB     00:00    
(4/11): nss-tools-3.41.0-3.fc28.x86_64.rpm                    6.8 MB/s | 545 kB     00:00    
(5/11): nss-sysinit-3.41.0-3.fc28.x86_64.rpm                  3.3 MB/s |  66 kB     00:00    
(6/11): nss-softokn-3.41.0-3.fc28.i686.rpm                    8.8 MB/s | 462 kB     00:00    
(7/11): nss-softokn-freebl-3.41.0-3.fc28.i686.rpm             7.9 MB/s | 265 kB     00:00    
(8/11): nss-util-3.41.0-3.fc28.x86_64.rpm                     7.6 MB/s | 130 kB     00:00    
(9/11): nss-util-3.41.0-3.fc28.i686.rpm                       5.6 MB/s | 132 kB     00:00    
(10/11): nss-3.41.0-3.fc28.i686.rpm                           747 kB/s | 765 kB     00:01    
(11/11): nss-pem-1.0.3-9.fc28.x86_64.rpm                       55 kB/s |  80 kB     00:01    
----------------------------------------------------------------------------------------------
Total                                                         1.0 MB/s | 3.7 MB     00:03     
warning: /var/cache/dnf/fedora-f21308f6293b3270/packages/nss-pem-1.0.3-9.fc28.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 9db62fb1: NOKEY
Importing GPG key 0x9DB62FB1:
 Userid     : "Fedora 28 (28) <fedora-28@fedoraproject.org>"
 Fingerprint: 128C F232 A937 1991 C8A6 5695 E08E 7E62 9DB6 2FB1
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-28-x86_64
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction

(中略)

Upgraded:
  nss.i686 3.41.0-3.fc28                         nss.x86_64 3.41.0-3.fc28                    
  nss-pem.x86_64 1.0.3-9.fc28                    nss-softokn.i686 3.41.0-3.fc28              
  nss-softokn.x86_64 3.41.0-3.fc28               nss-softokn-freebl.i686 3.41.0-3.fc28       
  nss-softokn-freebl.x86_64 3.41.0-3.fc28        nss-sysinit.x86_64 3.41.0-3.fc28            
  nss-tools.x86_64 3.41.0-3.fc28                 nss-util.i686 3.41.0-3.fc28                 
  nss-util.x86_64 3.41.0-3.fc28                 

Complete!

#手順2
[root@server]/# dnf system-upgrade download --releasever 28     
Before you continue ensure that your system is fully upgraded by running "dnf --refresh upgrade". Do you want to continue [y/N]: y
Last metadata expiration check: 0:00:00 ago on Fri Dec 28 02:21:50 2018.
Dependencies resolved.
==============================================================================================
 Package                            Arch   Version                             Repository
                                                                                         Size
==============================================================================================
Installing:
 kernel                             x86_64 4.19.10-200.fc28                    updates  102 k
 kernel-core                        x86_64 4.19.10-200.fc28                    updates   24 M
 kernel-devel                       x86_64 4.19.10-200.fc28                    updates   13 M
 kernel-modules                     x86_64 4.19.10-200.fc28                    updates   28 M
 kernel-modules-extra               x86_64 4.19.10-200.fc28                    updates  2.2 M
Upgrading:

(中略)

Transaction Summary
==============================================================================================
Install     162 Packages
Upgrade    3124 Packages
Remove        5 Packages
Downgrade     7 Packages

Total download size: 3.2 G
DNF will only download packages, install gpg keys, and check the transaction.
Is this ok [y/N]: y
Downloading Packages:

(中略)

 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-28
Is this ok [y/N]: y
Key imported successfully
(中略)
Downgraded:
  hplip.x86_64 3.18.3-1.fc28                 hplip-common.x86_64 3.18.3-1.fc28 hplip-libs.x86_64 3.18.3-1.fc28   
(中略)

Complete!
Download complete! Use 'dnf system-upgrade reboot' to start the upgrade.
To remove cached metadata and transaction use 'dnf system-upgrade clean'
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

#手順3
[root@server]/# dnf system-upgrade reboot

#ここで再起動&自動でアップデートが開始され、終了すると通常のログイン画面に到達する。

補遺

手順1.5の内容は環境ごとに異なると思われるが、ver27→29のようにバージョンを飛ばして更新しようとするとエラー内容が増えた。
それに対して、ver27→28→29というように順を追って更新した所、手順1.5のエラー以外は出なかった。
よって、更新は飛ばさずに実施した方が良いと考えられる。

後書き

ちゃんとサポート期限が切れる前にシステム更新しよう。