Ubuntuでパッケージの依存関係を含めローカルにダウンロードする
ナビゲーションに移動
検索に移動
「インターネットに接続していないUbuntuサーバー」にパッケージを追加したい事態になった。なかなか面倒だったのでメモしておく。
インターネットに繋がったUbuntuでダウンロードする[編集 | ソースを編集]
まずパッケージの依存関係を調査してくれるツールをインストールする。
sudo apt install apt-rdepends
apt-rdependsを実行してみる。
apt-rdepends cifs-utils
apt-rdependsの実行結果をみるとインデントされている行は依存関係なので、grepで行頭にスペースのある行のは除外する。これで対象パッケージと依存パッケージの一覧が生成できる。
apt-rdepends cifs-utils | grep -v '^ '
ただし上記の一覧には「debconf」と「debconf-2.0」が混在しており、aptでパッケージ群をダウンロードしようとすると「どちからに統一しろ」というエラーがでるので、sedで「debconf」に置換して一本化する。
apt-rdepends cifs-utils | grep -v '^ ' | sed 's/debconf-2.0/debconf/g'
パッケージ群を格納するディレクトリを作り移動する。
mkdir cifs-utils cd cifs-utils
apt download に前述のパッケージ一覧を食わせることでダウンロードできる。
apt download $( apt-rdepends cifs-utils | grep -v '^ ' | sed 's/debconf-2.0/debconf/g' )
インターネットに繋がってないUbuntuでインストールする[編集 | ソースを編集]
あとはこのディレクトリごとUSBメモリなりに格納してインターネットに繋がっていないPCやサーバーに移動させ、dpkgコマンドでインストールする。
# USBメモリをぶっ刺す cd cifs-utils sudo dpkg -i *