結論: dpkg -i
コマンドに循環依存(依存関係のループ)のあるdebパッケージをまとめて指定すればよい。
状況
検証などの目的で、Ubuntu環境に古いバージョンのカーネルをインストールすることがある。
この場合。Launchpadのビルド結果ページなどからdebパッケージをダウンロードしてきて、手動でインストールする方法がある。
この際、 linux-image-unsigned
パッケージは同じバージョンの linux-modules
パッケージに、 linux-modules
パッケージは同じバージョンの linux-image
か linux-image-unsigned
パッケージに依存している。
したがって、 dpkg -i
コマンドで1つづつインストールしようとすると、互いにもう片方が未インストールであるため、インストールに失敗する。
dpkg -i のマニュアルで見る、複数指定の存在
ここで、 man dpkg
で、dpkgコマンドのマニュアルを見てみる。
ACTIONS
-i, --install package-file...
Install the package. If --recursive or -R option is specified, package-file must refer to a directory instead.
上記で package-file...
となっていることから、 dpkg -i
には複数のdebパッケージを指定して、一括でインストールすることができそうであることが分かる。
実際に、 dpkg -i
に linux-image-unsigned
と linux-modules
のパッケージを両方指定することで、正常にまとめてインストールされる。