treedown’s Report

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

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

dist-upgrade後にapt --fix-broken installが要求された

前回<Debianサーババージョンアップ(Stretchへ)>にてバージョンアップしたRaspberry Pi3(Raspbian 9)環境でしたが、終わったあとの後片付けをやっていないのを思い出して、早速実施してみました。
その時の記録。

本ページの環境(Raspbian Stretch=9)で、OSからのメッセージが「apt-get」ではなく「apt」になっているため、本文はすべて「apt」の表記にしています。

f:id:treedown:20190502161605p:plain
前回のここまでが完了したところからスタート。

後始末

dist-upgradeが終わったらバージョンアップも完了、やれやれ一息、とその前に…、
# apt update
# apt upgrade
でパッケージの状態を確認してみます。

今回実施した環境では
--------------------------------------------------------------
# apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
sonic-pi : 依存: libQt5printsupport5 しかし、インストールすることができません
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。
--------------------------------------------------------------
と表示されるようになりました。Raspberry Piだけにインストールされているsonic-piの依存パッケージが問題ある模様。sonic-piは利用していないので、削除されても大丈夫。
メッセージに従ってコマンドを実行してみます。

apt --fix-broken installを実行

実行してみると、
--------------------------------------------------------------
# apt --fix-broken install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
coinor-libipopt1 fontconfig-infinality fonts-lato …(中略)
 …zlib1g-dev
これを削除するには 'apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
sonic-pi
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 0 個。
この操作後に 151 MB のディスク容量が解放されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 123717 個のファイルとディレクトリがインストールされています。)
sonic-pi (1:2.11.0-0) を削除しています ...
mime-support (3.60) のトリガを処理しています ...
desktop-file-utils (0.23-1) のトリガを処理しています ...
gnome-menus (3.13.3-9) のトリガを処理しています ...
--------------------------------------------------------------
これでsonic-piと関連するパッケージが削除されました。

「apt --fix-broken install」は依存関係に未解決の問題が発生した時に実行するようにOSから促されるコマンドのようですが、これだけで解決しないこともあって、その場合には、前回使ったコマンド
# dpkg --audit
を実行してエラーがある(主に設定不足の)パッケージを特定し、「dpkg --configure」を実行して設定を完了させることで正常動作するようになります。(少なくとも手持ちの環境では)

別途「apt autoremove」実行が必要

完了後、もう一度
# apt update
# apt upgrade
を実行してみます。

--------------------------------------------------------------
# apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
coinor-libipopt1 fontconfig-infinality fonts-lato …(中略)
 … zlib1g-dev
これを削除するには 'apt autoremove' を利用してください。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
--------------------------------------------------------------
とメッセージが変化しますので、

# apt autoremove

を実行して不要になったパッケージを削除します。

これでdist-upgrade後の後片付けが完了しました。