APTによるパッケージの部分アップグレード

Ubuntu 18.04を使っており,パッケージの更新をapt upgrade
コマンドにより行っている。
しかし,何か月かに一回やる場合,パッケージの更新対象が多く,更新に時間がかかってしまう。また,apt upgrade
により更新する場合,ひとつでも更新に失敗すると残り全ての更新も中断されてしまう。
1時間近く更新に時間をかけた挙句に,最後の最後で更新に失敗して全体の更新が停止してしまったときには目もあてられない。
そこで,APTによるパッケージの更新を工夫し,部分的にアップグレードできるようにした。サンプルコード群を「example/shell/apt-partial-upgrade at master · senooken/example」で公開している。
apt-partial-upgrade.shをダウンロードして実行すると,apt upgrade
の更新対象をapt install
で個別にインストールする。ついでに,i386のパッケージをアンインストールする。
基本的な考え方は,「nlog(n): 特定のパッケージだけを apt-get でアップグレード」を参考にした。具体的には,以下の手順で部分アップグレードを行う。
apt upgrade
コマンドを実行し,更新対象パッケージを抽出- 更新対象パッケージを
apt install
で個別に更新
何か他にいい方法がないかと思ったのだが,結局apt install
で個別パッケージをインストールするしかないようだ。
一度リストを出力して,apt install
で個別に更新することで,インストール対象が柔軟となる。例えば何らかの手違いでインストールしたx86向けのパッケージをついでにアンインストールすることもできる。
また,更新の中断・復帰もでき,インターネット回線の遅いネットワーク環境でも確実に更新を進めることができる。
今後,apt upgradeでパッケージを更新する場合,ファイルサイズが50 MBを以上になるようであれば,今回用意したapt-partial-upgrade.sh
で部分的に確実に更新していきたい。