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によるパッケージの部分アップグレードの基本概念
  1. apt upgradeコマンドを実行し,更新対象パッケージを抽出
  2. 更新対象パッケージをapt installで個別に更新

何か他にいい方法がないかと思ったのだが,結局apt installで個別パッケージをインストールするしかないようだ。

一度リストを出力して,apt installで個別に更新することで,インストール対象が柔軟となる。例えば何らかの手違いでインストールしたx86向けのパッケージをついでにアンインストールすることもできる。

また,更新の中断・復帰もでき,インターネット回線の遅いネットワーク環境でも確実に更新を進めることができる。

今後,apt upgradeでパッケージを更新する場合,ファイルサイズが50 MBを以上になるようであれば,今回用意したapt-partial-upgrade.shで部分的に確実に更新していきたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です