AlmaLinuxでパッケージのアップデートとロールバックをやってみた

2026年8月13日

 

Linuxをインストールしたら最初にやっておいた方がいいものの一つ

それはパッケージのアップデート。

運用では定期的に行うものの、定型でやること以外は知らなかったりするので、ちょっとだけ深堀りしてみました。

ただ、掘れば掘るほどキリがないので、本当にちょっとだけ・・・。

OSはAlmaLinux9。RedHat系のOSですね。RedHat系ではパッケージのアップデートにdnfを使います。

 

1. 現在のOSバージョンでの更新情報を確認する

まずは、アップデートできるパッケージをdnf check-updateでチェック。現在のOSの中でアップデートできるパッケージです。

[minyaneko@AlmaLinux9 system32]$ sudo dnf check-update
Last metadata expiration check: 1:09:57 ago on Fri 31 Jul 2026 08:34:00 PM JST.

acl.x86_64 2.4.0-1.el9_8 baseos
coreutils.x86_64 8.32-41.el9_8 baseos
coreutils-common.x86_64 8.32-41.el9_8 baseos
expat.x86_64 2.5.0-6.el9_8.1 baseos
glib2.x86_64 2.68.4-19.el9_8.2 baseos
glibc.x86_64 2.34-274.el9_8 baseos
glibc-common.x86_64 2.34-274.el9_8 baseos
glibc-gconv-extra.x86_64 2.34-274.el9_8 baseos
glibc-langpack-en.x86_64 2.34-274.el9_8 baseos
gnutls.x86_64 3.8.10-4.el9_8 baseos
libacl.x86_64 2.4.0-1.el9_8 baseos
libeconf.x86_64 0.4.1-7.el9_8 baseos
libsolv.x86_64 0.7.24-6.el9_8 baseos
libtasn1.x86_64 4.16.0-10.el9_8 baseos
libxml2.x86_64 2.9.13-14.el9_8.2 baseos
openssh.x86_64 9.9p1-9.el9_8.alma.1 baseos
openssh-clients.x86_64 9.9p1-9.el9_8.alma.1 baseos
openssl.x86_64 1:3.5.5-6.el9_8 baseos
openssl-fips-provider.x86_64 1:3.5.5-6.el9_8 baseos
openssl-libs.x86_64 1:3.5.5-6.el9_8 baseos
python-unversioned-command.noarch 3.9.25-7.el9_8.2 appstream
python3.x86_64 3.9.25-7.el9_8.2 baseos
python3-libs.x86_64 3.9.25-7.el9_8.2 baseos
systemd.x86_64 252-67.el9_8.4.alma.1 baseos
systemd-libs.x86_64 252-67.el9_8.4.alma.1 baseos
systemd-pam.x86_64 252-67.el9_8.4.alma.1 baseos
systemd-rpm-macros.noarch 252-67.el9_8.4.alma.1 baseos
tzdata.noarch 2026b-1.el9 baseos
vim-filesystem.noarch 2:8.2.2637-26.el9_8.13 baseos
[minyaneko@AlmaLinux9 system32]$

右の「baseos」とか「appstream」って何?

大まかに言って、「baseos」がOSの基本的なコンポーネント、「appstream」がOSの上に乗るアプリケーションになります。このほかに「extras」というのもありますが、それは補助的なパッケージですね。

 

2. 一つのパッケージの情報を確認する

この中からaclを例に取ってアップデートしてみましょう。すべてのパッケージをいっぺんにアップデートすることもできますが、ハングアップを避けるために、念のために慎重にいきましょう。

aclの現在のバージョンとアップデート後のバージョンをdnf infoでチェックします。

[minyaneko@AlmaLinux9 system32]$ dnf info acl.x86_64
AlmaLinux 9 - AppStream 7.6 MB/s | 18 MB 00:02
AlmaLinux 9 - BaseOS 7.5 MB/s | 21 MB 00:02
AlmaLinux 9 - Extras 29 kB/s | 22 kB 00:00
Installed Packages
Name : acl
Version : 2.3.1
Release : 4.el9

Architecture : x86_64
Size : 207 k
Source : acl-2.3.1-4.el9.src.rpm
Repository : @System
Summary : Access control list utilities
URL : https://savannah.nongnu.org/projects/acl
License : GPLv2+
Description : This package contains the getfacl and setfacl utilities needed for
: manipulating access control lists.

Available Packages
Name : acl
Version : 2.4.0
Release : 1.el9_8

Architecture : x86_64
Size : 74 k
Source : acl-2.4.0-1.el9_8.src.rpm
Repository : baseos
Summary : Access control list utilities
URL : https://savannah.nongnu.org/projects/acl
License : GPLv2+
Description : This package contains the getfacl and setfacl utilities needed for
: manipulating access control lists.

現在のバージョンが2.3.1-4.el9で、アップデート後のバージョンが2.4.0-1.el9_8であることが分かります。

 

3. 1つのパッケージをアップデートする

それではaclをdnf upgradeでアップデートしていきます。

[minyaneko@AlmaLinux9 system32]$ sudo dnf upgrade acl.x86_64
Last metadata expiration check: 1:17:38 ago on Fri 31 Jul 2026 8:34:00 PM JST.
Dependencies resolved.b
======================================================================
Package Architecture Version Repository Size
=======================================================================
Upgrading:
acl x86_64 2.4.0-1.el9_8 baseos 74 k
libacl x86_64 2.4.0-1.el9_8 baseos 24 k

Transaction Summary
=======================================================================
Upgrade 2 Packages

Total download size: 99 k

aclの他にlibaclもアップデートされることが分かります。問題なければyを押下して続けます。

Is this ok [y/N]: y
Downloading Packages:
(1/2): libacl-2.4.0-1.el9_8.x86_64.rpm 283 kB/s | 24 kB 00:00
(2/2): acl-2.4.0-1.el9_8.x86_64.rpm 617 kB/s | 74 kB 00:00
-------------------------------------------------------------------------------------
Total 99 kB/s | 99 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : libacl-2.4.0-1.el9_8.x86_64 1/4
Upgrading : acl-2.4.0-1.el9_8.x86_64 2/4
Cleanup : acl-2.3.1-4.el9.x86_64 3/4
Cleanup : libacl-2.3.1-4.el9.x86_64 4/4
Running scriptlet: libacl-2.3.1-4.el9.x86_64 4/4
Verifying : acl-2.4.0-1.el9_8.x86_64 1/4
Verifying : acl-2.3.1-4.el9.x86_64 2/4
Verifying : libacl-2.4.0-1.el9_8.x86_64 3/4
Verifying : libacl-2.3.1-4.el9.x86_64 4/4

Upgraded:
acl-2.4.0-1.el9_8.x86_64 libacl-2.4.0-1.el9_8.x86_64

Complete!
[minyaneko@AlmaLinux9 system32]$

libaclとaclが両方アップデートされました。

アップデート後のバージョンを確認してみましょう。rpm にqオプション(query)を付けます。

[minyaneko@AlmaLinux9 system32]$ rpm -q acl.x86_64
acl-2.4.0-1.el9_8.x86_64
[minyaneko@AlmaLinux9 system32]$

想定通りのバージョンにアップデートされています。

ところで、何らかの事情によりパッケージを前のバージョンに戻したい時。(例えばアプリケーションとの互換性の問題が出た時など)

 

4. アップデートしたパッケージをロールバックしてみる

今回、アップデートした一つ前の状態に戻したい場合はdnf history undo lastを用います。

[minyaneko@AlmaLinux9 system32]$ sudo dnf history undo last
Last metadata expiration check: 1:19:21 ago on Fri 31 Jul 2026 08:34:00 PM JST.
Dependencies resolved.
=====================================================================
Package Architecture Version Repository Size
=====================================================================
Downgrading:
acl x86_64 2.3.1-4.el9 baseos 69 k
libacl x86_64 2.3.1-4.el9 baseos 22 k

Transaction Summary
=====================================================================
Downgrade 2 Packages

Total download size: 91 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libacl-2.3.1-4.el9.x86_64.rpm 170 kB/s | 22 kB 00:00
(2/2): acl-2.3.1-4.el9.x86_64.rpm 291 kB/s | 69 kB 00:00
----------------------------------------------------------------------------
Total 87 kB/s | 91 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Downgrading : libacl-2.3.1-4.el9.x86_64 1/4
Downgrading : acl-2.3.1-4.el9.x86_64 2/4
Cleanup : acl-2.4.0-1.el9_8.x86_64 3/4
Cleanup : libacl-2.4.0-1.el9_8.x86_64 4/4
Running scriptlet: libacl-2.4.0-1.el9_8.x86_64 4/4
Verifying : acl-2.3.1-4.el9.x86_64 1/4
Verifying : acl-2.4.0-1.el9_8.x86_64 2/4
Verifying : libacl-2.3.1-4.el9.x86_64 3/4
Verifying : libacl-2.4.0-1.el9_8.x86_64 4/4

Downgraded:
acl-2.3.1-4.el9.x86_64 libacl-2.3.1-4.el9.x86_64

Complete!
[minyaneko@AlmaLinux9 system32]$

aclがlibaclとともに前のバージョンに戻ります。

戻した後のバージョンを確認します。

[minyaneko@AlmaLinux9 system32]$ rpm -q acl.x86_64
acl-2.3.1-4.el9.x86_64
[minyaneko@AlmaLinux9 system32]$

バージョンが戻っていることが確認できます。

今回は直前のバージョン(正確にはトランザクション)に戻しましたが、dnf historyでdnfの履歴を表示して、任意のトランザクションに戻す方法もあるので、ご参考まで。