Ubuntuでパッケージの依存関係を含めローカルにダウンロードする

提供: MonoBook
ナビゲーションに移動 検索に移動

インターネットに接続していない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 *