Table of Contents
1 debパッケージを用意する
こちらのスクリプトを利用して、ubuntu-desktopのdebパッケージと依存パッケージをダウンロードします。
$ sudo apt install -y apt-rdepends$ mkdir deb$ cd deb$ ../download-deb-package.sh ubuntu-desktop$ cd ..
2 GPGキーを用意する
gpgを作成する場合に以下のメッセージが出る場合があります。マウス操作等でランダム値へのノイズを発生させてやることで解消されますが、SSH経由の場合はマウス操作できません。
Not enough random bytes available. Please do some other work to give
そこでrng-toolsでランダム値を更新します。
$ sudo apt install -y rng-tools$ sudo rngd -r /dev/urandom
gpgをbatch処理で作成する為の設定ファイルを作成します。
$ cat <<EOF > gpg.txtKey-Type: RSASubkey-Type: RSAName-Real: hiroom2Expire-Date: 0%pubring public.key%secring signing.key%commitEOF
GPGキーをbatch処理で作成してインポートします。
$ gpg –batch –gen-key gpg.txt$ gpg –import public.key signing.key
3 リポジトリを作成する
リポジトリを作成するrepreproをインストールします。
$ sudo apt install -y reprepro
リポジトリ作成で利用するsubkeyの値を取得します。
$ dir=`pwd`$ subkey=`gpg –list-keys –keyring ${dir}/public.key –no-default-keyring | grep sub | awk ‘{ print $2 }’ | awk -F’/’ ‘{ print $2 }’`
repoというディレクトリを作成し、repreproの設定ファイルを作成します。
$ mkdir repo$ cd repo$ mkdir conf$ cat <<EOF > conf/distributionsCodename: xenialArchitectures: amd64Components: mainSignWith: ${subkey}EOF
repreproでリポジトリを追加します。
$ reprepro includedeb xenial ~/deb/*.deb
GPGキーの公開鍵をrepoディレクトリに格納します。
$ cp ../public.key .
4 リポジトリの追加
apt-add-repositoryでリポジトリを追加します。
$ sudo apt-add-repository “deb file:/home/hiroom2/repo xenial main”
apt-add-repositoryで/etc/apt/sources.listは以下のように変更されます。
$ diff -uprN /etc/apt/sources.list{.org,}— /etc/apt/sources.list.org 2016-08-13 07:43:32.618218136 +0900+++ /etc/apt/sources.list 2016-08-13 07:49:19.777011499 +0900@@ -48,4 +48,6 @@ deb-src deb http://security.ubuntu.com/ubuntu xenial-security universe deb-src http://security.ubuntu.com/ubuntu xenial-security universe deb http://security.ubuntu.com/ubuntu xenial-security multiverse+deb file:/home/hiroom2/repo xenial main+# deb-src file:/home/hiroom2/repo xenial main deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
apt-keyでGPGキーを追加します。
$ sudo apt-key add /home/hiroom2/repo/public.key
これ以降はネットワークが動作しない状態でもDVDからパッケージをインストールできます。
$ sudo apt update -y$ sudo apt install -y ubuntu-desktop
5 HTTPで公開する
apache2でリポジトリを公開します。
$ sudo apt install -y apache2$ sudo cp -a repo /var/www/html/
クライアント側でapt-add-repositoryでリポジトリを追加します。
$ sudo apt-add-repository “deb xenial main”
クライアント側のapt-keyでGPGキーを追加します。
$ wget -O – | sudo apt-key add –
これ以降はクライアント側でHTTPサーバからパッケージをインストールできます。
$ sudo apt update -y$ sudo apt install -y ubuntu-desktop