treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

apt full-upgrade中にエラーで停止

Debianをbusterからbullseyeへアップグレードした際に、別の環境で実施したところ、一点エラーで処理が停止したことがあったので自分用に備忘録として残しておきます。

前回<Raspberry Pi OSをbusterからbullseyeへアップグレード - treedown’s Report>にてDebian busterからbullseyeへのアップグレードを実施したときと同じ手順で別のDebian環境でOSアップグレードを実施した時のエラーの記録です。

エラー内容

<Raspberry Pi OSをbusterからbullseyeへアップグレード - treedown’s Report>で実施したように、別のDebian環境でbusterからbullseyeへのアップグレードを実施していた時に発生しました。

「sources.list編集」や「アップグレード実施」で<sudo apt update>⇒<sudo apt upgrade --without-new-pkgs>まではエラーなく完了できました。

最終的に<sudo apt full-upgrade>を実行してアップグレードを完了させようとしたところで、以下のようなエラーが発生しました。

--------------------------------------------------------------
wpasupplicant (2:2.9.0-21) で (2:2.7+git20190128+0c1e29f-6+deb10u4 に) 上書き展開しています ...
.../324-xarchiver_1%3a0.5.4.17-2_i386.deb を展開する準備をしています ...
xarchiver (1:0.5.4.17-2) で (1:0.5.4.14-1 に) 上書き展開しています ...
.../325-xfsprogs_5.10.0-4_i386.deb を展開する準備をしています ...
xfsprogs (5.10.0-4) で (4.20.0-1 に) 上書き展開しています ...
.../326-xserver-xorg-input-libinput_0.30.0-1_i386.deb を展開する準備をしています ...
xserver-xorg-input-libinput (0.30.0-1) で (0.28.2-2 に) 上書き展開しています ...
.../327-xserver-xorg-video-intel_2%3a2.99.917+git20200714-1+deb11u1_i386.deb を展開する準備をしています ...
xserver-xorg-video-intel (2:2.99.917+git20200714-1+deb11u1) で (2:2.99.917+git20180925-2 に) 上書き展開しています ...
処理中にエラーが発生しました:
 /tmp/apt-dpkg-install-tF9jpB/053-firmware-qcom-soc_1%3a20230210-5~bpo11+1+rpt2_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
--------------------------------------------------------------

エラーは
「xserver-xorg-video-intel (2:2.99.917+git20200714-1+deb11u1) で (2:2.99.917+git20180925-2 に) 上書き展開しています ...
処理中にエラーが発生しました:」
に続いて
「E: Sub-process /usr/bin/dpkg returned an error code (1)」でアップグレードが停止しています。

解決策を模索

情報収集したところ以下のWebページと「E: Sub-process /usr/bin/dpkg returned an error code (1)」の点で共通しているようです。

--------------------------------------------------------------
参考:
Sub-process /usr/bin/dpkg returned an error code を解決する手順
https://virment.com/fix-sub-process-returned-an-error-code/

--------------------------------------------------------------

ざっくり、インストールやアップデートを試みたパッケージが破損しているため、更新インストールが出来なくなっている、と言う状態のようです。依存関係や整合性の問題が挙げられています。ダウンロードしたアップグレード用パッケージが破損している(あるいは通信の不調によって破損した)という可能性があるようです。

サイトに記載のあるように、

$ sudo dpkg --configure -a


を実行してみることにしました。

やってみる

<sudo dpkg --configure -a>を実行してみたところ、以下のメッセージの箇所で停止しました。

--------------------------------------------------------------
dictionaries-common (1.28.4) のトリガを処理しています ...
libvlc-bin:i386 (3.0.20-0+deb11u1) のトリガを処理しています ...
libgdk-pixbuf-2.0-0:i386 (2.42.2+dfsg-1+deb11u1) のトリガを処理しています ...
処理中にエラーが発生しました:
 firmware-qcom-media
--------------------------------------------------------------

試しにこの後<sudo apt full-upgrade>の実行をしてみると、

--------------------------------------------------------------
$ sudo apt full-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 firmware-qcom-media : 依存: firmware-qcom-soc しかし、インストールされていません
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。

--------------------------------------------------------------

「firmware-qcom-media」の処理で停止してしまいました。再度<sudo apt full-upgrade>の実行でも「firmware-qcom-media」の更新処理でエラーが発生し処理が進まなくなっています。

そこでメッセージに記載のある指示通り、

$ sudo apt --fix-broken install

を実行しました。

--------------------------------------------------------------

/$ sudo apt --fix-broken install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下の追加パッケージがインストールされます:
  firmware-qcom-soc
以下のパッケージが新たにインストールされます:
  firmware-qcom-soc
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 11 個。
1 個のパッケージが完全にインストールまたは削除されていません。
28.4 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 91.2 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
(中略)
--------------------------------------------------------------

(データベースを読み込んでいます ... 現在 192837 個のファイルとディレクトリがインストールされています。)
.../firmware-qcom-soc_1%3a20230210-5~bpo11+1+rpt2_all.deb を展開する準備をしています ...
firmware-qcom-soc (1:20230210-5~bpo11+1+rpt2) を展開しています...
firmware-qcom-soc (1:20230210-5~bpo11+1+rpt2) を設定しています ...
firmware-qcom-media (1:20230210-5~bpo11+1+rpt2) を設定しています ...

--------------------------------------------------------------

すんなり完了。

もう一度試してみる

原因となっていた「firmware-qcom-media」が<sudo apt --fix-broken install>で正常になったと思われましたので、もう一度、

$ sudo apt full-upgrade

で、再度upgradeを実行してみます。

--------------------------------------------------------------

$ sudo apt full-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージは「削除」されます:
  libgc1c2 libpython-stdlib linux-image-4.19.0-13-amd64:amd64 python python-asn1crypto python-blinker python-buttonshim python-cairo python-certifi python-cffi-backend
  python-click python-colorama python-configparser python-cookies python-crypto python-cryptography python-dbus python-entrypoints python-enum34 python-fourletterphat
  python-funcsigs python-gobject-2 python-idna python-ipaddress python-itsdangerous python-jwt python-keyring python-keyrings.alt python-minimal python-oauthlib python-olefile
  python-openssl python-pantilthat python-piglow python-pigpio python-pil python-pyinotify python-scrollphat python-secretstorage python-serial python-simplejson python-smbus
  python-sn3218 python-spidev python-urllib3 python-werkzeug python-wheel python-xdg
以下のパッケージが新たにインストールされます:
  libgc1
以下のパッケージはアップグレードされます:
  dh-python guile-2.2-libs libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python-six python2 python2-minimal python2.7 python2.7-minimal python3-six
アップグレード: 11 個、新規インストール: 1 個、削除: 48 個、保留: 0 個。
9,440 kB のアーカイブを取得する必要があります。
この操作後に 283 MB のディスク容量が解放されます。
続行しますか? [Y/n] Y

--------------------------------------------------------------

(中略)

guile-2.2-libs:i386 (2.2.7+1-6) を設定しています ...
python2.7 (2.7.18-8+deb11u1) を設定しています ...
libpython2-stdlib:i386 (2.7.18-3) を設定しています ...
python2 (2.7.18-3) を設定しています ...
python-six (1.16.0-2) を設定しています ...
desktop-file-utils (0.26-1) のトリガを処理しています ...
gnome-menus (3.36.0-1) のトリガを処理しています ...
libc-bin (2.31-13+deb11u8) のトリガを処理しています ...
man-db (2.9.4-2) のトリガを処理しています ...
mailcap (3.69) のトリガを処理しています ...

--------------------------------------------------------------

なんとなく正常に完了したような感じがします。

確認

</etc/os-release>と</etc/debian_version>でアップグレード結果を確認してみます。

--------------------------------------------------------------
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

$ cat /etc/debian_version
11.9

--------------------------------------------------------------

何とか上手くアップグレードが完了出来たようです。