29
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オフライン環境のUbuntuでapt install

Last updated at Posted at 2019-05-28

オフライン(ローカル)環境のUbuntuにapt installが必要なパッケージを入れる方法。
今回はUbuntuのdockerコンテナを例に説明する。

……この記事はネットワークにUbuntu接続禁止、という組織向け( ゚д゚)

###DL;DR

  1. ネットワークに接続したubuntuにapt installでパッケージを導入
  2. インストール時に残されたアーカイブをローカル環境のUbuntuにコピー
  3. アーカイブを使用してパッケージをインストール

※今回の手法はUbuntu16.10、18.10で確認済み。

####1. ネットワークに接続したUbuntuを準備
Windowsの場合はWSLで該当するUbuntuを入れて使用する。

####2. ネットワーク接続したUbuntuで必要なパッケージをapt installで入れる
今回の例はDocker ce

$ sudo apt update
$ sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

####3. パッケージのインストールに必要なdebファイルを固める
apt install時に取得したdebファイルは下記フォルダにアーカイブされている。

/var/cache/apt/archives

このフォルダをtarで固める(今回はdebs.tar.gzという名前)。

$ cd /var/cache/apt/archives
$ cd ..
$ sudo tar -zcvf debs.tar.gz archives

・Ubuntuの場合はtarファイルを直でUSBメモリへコピー
・Windowsの場合はアクセス可能なフォルダに移してからUSBメモリへコピー。

#windowsの場合の例。c:\tmpにファイルを移動
$ sudo mkdir /mnt/c/tmp
$ sudo cp debs.tar.gz /mnt/c/tmp/

####4. ローカルのUbuntuにインストール
先ほどのtarファイルをローカルUbuntuにコピーしてインストール

$ cp debs.tar.gz ~/
$ tar -jxvf ~/debs.tar.gz
#パッケージのインストール
$ sudo apt -y install ./archives/*.deb

多分 apt updateも同じ手順で対応できるはず。

参考:docker-composeの場合

apt installのdocker-composeは古いので、下記コマンドで入手したものをコピーする。

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

コピーした先で実行権限を付与

$ sudo chmod +x /usr/local/bin/docker-compose

コマンドが存在しないとエラーが出る場合はエラーのアドレスにリンクを張る。

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

####注意点
apt installでパッケージを多く入れている場合は下記コマンドで事前にパッケージのアーカイブをクリーンアップしておくとコピーする量が少なく済むが、不足パッケージで依存性の問題が発生する可能性がある。

$ sudo apt clean

####参考資料
https://vogel.at.webry.info/201702/article_3.html
https://diary.masasuzu.net/entry/2018/08/09/143934

29
41
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
41

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?