UbuntuでリポジトリDVDを作ろう

以下はUbuntuの英語フォーラムTutorial of the Weekの部分翻訳です。原文「How to make your own Ubuntu Repository DVDs」はユーザーBobSongsによって執筆されています。英語フォーラムにおける投稿はCreative Commons Attribution 3.0です。この文章自体はCreative Commons Attribution Share Alike 3.0とします。最新のLTSリリースであるHardy Heron以前の情報は省かせて頂きました。また以下の項目は訳しておりません。

  • セットアップDVDのみの場合
  • よくある質問
  • 過去のリリースのリポジトリ
  • 参照資料
  • ミッション・ビジョン・バリュー

原文をご覧ください。最後に、手元にKubuntu, Xubuntuがないため一部日本語版表記と異なるかもしれません。

このチュートリアルの目的

インターネット接続が遅い人やそもそも接続できない環境にいる人にとって、手元にリポジトリがあるととても役立ちます。このチュートリアルを使えばUbuntuのリポジトリが収録されたDVDを作成して、他の人に貸したり、保存したりすることができます。

必要な知識

他のチュートリアル同様の知識があれば読めるように努力はしますが、このチュートリアルの性質上コピーアンドペーストだけではなく少し頭を使う必要があります。

ハードディスク容量

Ubuntuが提供するすべてのdebファイルを格納し、四枚のDVDのISOイメージを作成した上でシステムを動かすためには大体40GBの空き領域が必要です。ハードディスクが1TBの時代には大したことではないかもしれませんが、もしあなたのハードディスクが60GBよりも小さいのであれば困ったことになるかもしれません。各リリース毎の容量(及びサポート終了時期)は:

  • 28.85GB – Hardy Heron (LTS、2011/4)
  • 26.72GB – Interpid Ibex (2010/4)
  • 24.47GB – Jaunty Jackalope (2010/10)

目次

  1. 必要なツールのインストール
  2. debcopyファイルの抜き出し
  3. ダウンロード
  4. DVDサイズへの分割
  5. ISOイメージの作成
  6. イメージファイルをDVDに焼き付け
  7. 動作設定
  8. ローカルリポジトリの更新
  9. Aptのローカル設定

1. 必要なツールのインストール

まず端末を起動します(アプリケーション・アクセサリ・端末)。このチュートリアルが終わるまでこのGNOME端末のウィンドウは閉じないでください。 次のコードをコピーしてターミナルに張り付けてください。

sudo apt-get install debmirror liblockfile-simple-perl liblog-agent-perl ruby mkisofs dpkg-dev libdigest-sha1-perl libruby libzlib-ruby

貼り付けたらエンターを押してください(端末上での貼り付けはCtrl + Shift – Vを同時に押すか、右クリックで貼り付けを選択してもできます)。 次にdebpartialをインストールします。debpartialは今のところレポジトリに含まれていますがHardy Heron以降、リリースの一部だと考えられていません。必要なソフトウェアはここからダウンロードできます。 デスクトップに保存してダブルクリックしてください。表示に従い、パスワードを入力し、インストールを完了しましょう。

2. debcopyファイルを抜き出し

[dapperについては原文を参照] debcopyファイルはdebpartialの中に含まれています。これを取り出しておきましょう。次のコマンドを端末に張り付けてください。

cp /usr/share/doc/debpartial/examples/debcopy.gz ~

gunzip ~/debcopy.gz

3. ダウンロード

次のコマンドを使ってHardy Heronのリポジトリをダウンロードします。

debmirror --nosource -m --passive --host=archive.ubuntu.com --root=ubuntu/ --method=ftp --progress --dist=hardy,hardy-security,hardy-updates,hardy-backports, --section=main,restricted,universe,multiverse --arch=i386 ~/UbuntuRepos --ignore-release-gpg

コマンドの全体像はこうなっています。

debmirror \
    --nosource -m --passive \
    --host=archive.ubuntu.com \
    --root=ubuntu/ --method=ftp --progress \
    --dist=hardy,hardy-security,hardy-updates,hardy-backports, \
    --section=main,restricted,universe,multiverse \
    --arch=i386 ~/UbuntuRepos \
    --ignore-release-gpg

青く表示されている部分について:

  • 詳細な説明はこちら
  • ダウンロードには丸一日かかるかもしれません。ファイルを個別にダウンロードするのは時間がかかります。

もしダウンロードが止まってしまったら、端末上で上矢印キーを押してください。するとコマンドが再び現れます。エンターを押せば、止まったところからダウンロードをやり直します。 接続が不安定な場合は以下の引数をコマンドに追加してください。-tに続く数字は再試行を行うまでの秒数を表します。

--timeout=seconds -t 120

120は120秒つまり2分を意味します。これを4分にするなら次のようになります。

--timeout=seconds -t 240

4. DVDサイズへの分割

debpartial --nosource --dirprefix=ubuntu --section=main,restricted,universe,multiverse --dist=hardy,hardy-security,hardy-updates,hardy-backports --size=DVD ~/UbuntuRepos ~/UbuntuDVDs
  1. ダウンロード時にHardy以外のリポジトリを選んだ場合はhardyを選んだリリースに合わせて変えてください(例:interpid, jaunty)。
  2. DVDの代わりにCDに焼く場合には–size=DVDを–size=CD74(650MBのCD-Rの場合)か–size=CD80(700MBのCD-Rの場合)に変更してください。

必要なDVDの枚数を確認するため次のコマンドを端末に張り付けてエンターを押してください。

ls -l ~/UbuntuDVDs

最後に表示されたフォルダーがubuntu3であれば4枚のDVD、ubuntu4であれば5枚のDVD、ubuntu31であれば32枚のCDが必要だということが分かります。 必要なディスクの枚数を確認したところで次のようなコマンドをすべてのディスクについて実行してください。それぞれのコマンドで違うのは最後の番号だけです。Hardy Heronを例にしています。 1枚目:

ruby debcopy -l ~/UbuntuRepos ~/UbuntuDVDs/ubuntu0

2枚目:

ruby debcopy -l ~/UbuntuRepos ~/UbuntuDVDs/ubuntu1

3枚目:

ruby debcopy -l ~/UbuntuRepos ~/UbuntuDVDs/ubuntu2

4枚目:

ruby debcopy -l ~/UbuntuRepos ~/UbuntuDVDs/ubuntu3

5枚目:

ruby debcopy -l ~/UbuntuRepos ~/UbuntuDVDs/ubuntu4

5. ISOイメージの作成

ここでの指示はDVDが5枚であることを前提にしています。あなたの選んだリポジトリが5枚DVDの必要ないものであれば、何も作成されません。 1枚目

mkisofs -f -J -r -V "Ubuntu 8.04 1/5" -o ubuntu-8.04-$(date -I)-complete-i386-dvd1.iso ~/UbuntuDVDs/ubuntu0

2枚目

mkisofs -f -J -r -V "Ubuntu 8.04 2/5" -o ubuntu-8.04-$(date -I)-complete-i386-dvd2.iso ~/UbuntuDVDs/ubuntu1

3枚目

mkisofs -f -J -r -V "Ubuntu 8.04 3/5" -o ubuntu-8.04-$(date -I)-complete-i386-dvd3.iso ~/UbuntuDVDs/ubuntu2

4枚目

mkisofs -f -J -r -V "Ubuntu 8.04 4/5" -o ubuntu-8.04-$(date -I)-complete-i386-dvd4.iso ~/UbuntuDVDs/ubuntu3

5枚目

mkisofs -f -J -r -V "Ubuntu 8.04 5/5" -o ubuntu-8.04-$(date -I)-complete-i386-dvd5.iso ~/UbuntuDVDs/ubuntu4
  • 異なるリポジトリを使っている場合にはコマンドの編集が必要です。バージョン番号である8.04をinterpidであれば8.10、jauntyであれば9.04に変更してください。またi386の部分もamd64、powerpc、sparcなど適切なものに取り替えてください。
  • CDイメージを作成している場合は-dvd1.isoを-cd1.iso、-dvd2.isoを-cd2.isoなどというようにすべてのディスクについて変更してください。

6. イメージファイルをDVDに焼き付け

Ubuntuの場合:

  1. 空のCD-Rを入れてください。ポップアップウィンドウは消してください。
  2. ファイルブラウザで作成したISOイメージを閲覧します。
  3. イメージファイルを右クリックしてCD/DVDの作成を選択します。
  4. 書込速度を選びます。最も遅い速度を選ぶのをお勧めします。
  5. 焼き付け作業を開始します。全てのISOイメージを焼き終わるまで繰り返してください。

Kubuntuの場合:

  1. ファイルブラウザでISOイメージファイルを探します。
  2. 右クリックからK3bでCDに書き込むを選びましょう。
  3. K3bは自動的にmd5sumを確認します。
  4. 空のCD-Rを入れて焼き付けを始めます。

Xubuntuの場合:

  1. xfburn(アプリケーション、アクセサリ、xfburn)を起動します。
  2. ツールバーかメニューのアクションからCDイメージを書き込むを選択します。
  3. ダイアログでISOイメージを選択します。
  4. イメージを書き込むを選択します。

以上に関する情報源

7. 動作設定

Synapticパッケージ・マネージャ(システム、システム管理、Synapticパッケージ・マネージャ)を起動します。パスワードを入力して、メニューの設定からリポジトリを選びます。サードパーティーのソフトウェアというタブをクリックします。CD-ROMを追加ボタンをクリックして、表示されるダイアログに従ってください。全てのディスクが入力されるまで続けます。[端末を使う方法については原文参照]

8. ローカルリポジトリの更新

ここまでで~/UbuntuReposフォルダに何GBものdebファイルが整列していることでしょう。これらをどうやって更新できるのでしょうか。 端末(アプリケーション、アクセサリ、端末)を開いて、ダウンロードの部分のコマンドを再び実行してください。今度は増分しかダウンロードされないため25時間ではなく10分程度で済みます。これを毎日実行していればISOを作成する度にダウンロードする必要はなくなります。 もし新しいDVDが必要な場合にはホームフォルダにある最初に作ったisoファイルを削除してISOイメージの作成、DVDの作成、Synapticのリポジトリ設定をやり直してください。

9. aptのローカル設定

この項目についてはCreating a Trusted Local Repository from which Software Updates can be installedがより詳しい説明となっています。 ダウンロードしたファイルをローカルなリポジトリとして利用することは可能です。アップデートや新しいパッケージのインストールにも使えます。しかしリポジトリが最新でなければ、セキュリティアップデートの適用が遅れてしまいます。 これを頭に入れた上で次のコマンドを端末で実行します。

cd ~/UbuntuRepos && dpkg-scanpackages . /dev/null > Packages && gzip Packages && cd ~

aptがローカルなリポジトリに何が含まれているかを知るために必要なファイルが作成されます。その後にsources.listに以下の行を挿入してください。

deb file:/home/[USER NAME HERE]/UbuntuRepos/ hardy main multiverse restricted universe

deb file:/home/[USER NAME HERE]/UbuntuRepos/ hardy-security main multiverse restricted universe

必要なくなったインターネット上のリポジトリを示す行の前に#マークを加えてください。