インターネット接続環境がないが、とあるパッケージのアップデートをしたい場合に対応した場合のメモ
手順としては以下。
- インターネットへの接続可能な環境でインスタンスを作成。こちらはパッケージをインストールしたい環境と同じもので作成
- 起動したインスタンスで
yumdownloader
を使って rpm をダウンロード - アップデートをしたいインスタンスに SCP などでコピー
-
yum localinstall
でインストール
以下より2点のみ抜粋。
起動したインスタンスでyumdownloader
を使って rpm をダウンロード
yum を使用して、パッケージをインストールせずにダウンロードだけ行う
# yum-utils パッケージ未導入であればインストール
$yum install yum-utils
# kernel をダウンロード
$sudo yumdownloader kernel.x86_64
# ローカルディレクトリにダウンロードされる
$ls
kernel-4.9.91-40.57.amzn1.x86_64.rpm
yum localinstall
でインストール
# localinstall コマンドで yum installする
$sudo yum localinstall ./kernel-4.9.91-40.57.amzn1.x86_64.rpm
# kernel だったので reboot
$sudo reboot
# 稼働中の kernel が変わっていることを確認
$uname -r
4.9.91-40.57.amzn1.x86_64
なお、man
を見ると localinstall は指定した rpm をインストールするが依存関係がある場合には解決しようとするようなので、依存する rpm は併せてダウンロードしておき、一緒にインストールしないと依存関係解消の際にネットワーク接続エラーになって問題になると思われる。
$man yum
・・・
localinstall
Is used to install a set of local rpm files. If required the
enabled repositories will be used to resolve dependencies. Note
that the install command will do a local install, if given a
filename. This command is maintained for legacy reasons only.
また、以下にあるようにリポジトリを同じネットワーク内に作ることでyum install
コマンドでインストールが出来るように出来るようです(未検証)