おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

DVDからDebianパッケージをインストールする方法

DVDイメージからDebianパッケージをインストールする方法

実は、今外国に住んでいます。インターネット環境が日本と違って悪いのです。こちらに来る前から分かっていたことなので、日本にいる間にDebianのインストールDVDイメージ(全部で3枚分)をダウンロードして外付けハードディスクに入れてきました。DVDイメージは、isoファイルと呼ばれることもあります。DVDのデータそのものをファイルにしたものです。日本にいるときはインターネット環境が整っているので、aptにのdebianのレポジトリを登録しておけば、DVDは要らないのですが、インターネット環境が悪い場合は、debianのレポジトリを登録する代わりにDVDを登録することによって、apt-getでパッケージをインストールすることができます。日本では(おそらく)必要ない方法ですが、こちらの国では有効な方法です。

基本的な方法・・・DVDに焼いてDVDドライブを用いる

DVDに焼き、DVDドライブを使うが簡単な方法です。端末を起動します。rootになって、apt-cdrom addとタイプします。
$ su -
パスワード:  (rootのパスワードを入力する)
# apt-cdrom add
すると、登録したいDVDを入れて、Enterを押すように指示されるので、指示に従います。このとき、3枚のDVDのうち1枚目はインストール時に登録済みかもしれません(普通はそうです)。インストール後に新しいバージョンのDVDを手に入れた場合は、登録済みではない、ということになります。その場合は1枚目も登録が必要です。また、古いDVDが登録されている場合は、それを削除すべきです。それには、「ソフトウェア」というアプリケーションを立ち上げ、メニューから「ソフトウェア ソース」を選びます。すると、「Software & Updates」というダイアログが現れます。「Other Software」のタブをクリックすると、登録されているDVDの一覧が表示されるので、その中の削除したいDVDのソースを選択して「削除」ボタンをクリックします。削除がすんだら、元に戻って、1枚目を登録しましょう。1枚目が終わったら、2枚目、3枚目も登録します。
なお、今回apt-cdromを使っていますが、DVDを入れてから「Software & Updates」の「Add Volumn...」ボタンを押しても大丈夫だと思います。その方が分かりやすいかもしれません。

= 応用編・・・isoファイルを使う方法 ==
私が使っているX207Nは、小さいノートでDVDドライブは付いていません。外付けDVDドライブをつければ上記の方法でaptに登録できますが、外付けを持ち歩くのは不便ですし、DVDもかさばります。その点外付ハードディスクを使えば手軽で便利です。その場合、isoイメージを/media/cdromにマウントする方法を使います。これであたかもDVDドライブとDVDを使っているかのように扱えます。このマウントはloopデバイスという仕組みを使うのですが、詳しくはインターネットをググってみてください。端末からrootになり、mountコマンドを使います。例えば、DVD1.isoというイメージをマウントするには次のようにします。
$ su -
パスワード:  (rootのパスワードを入力する)
# umount "/media/cdrom"
# mount -o loop -t iso9660 DVD1.iso "/media/cdrom"
umountコマンドは、/media/cdromに何も繋がっていない状態であれば、必要ありません。ところで、mountコマンドは引数が長いのでタイプするのが面倒です。シェルスクリプトを作っておく価値はあります。私の場合、isoファイルが、次のような名前になっていました。
debian-9.1.0-amd64-DVD-1.iso
debian-9.1.0-amd64-DVD-2.iso
debian-9.1.0-amd64-DVD-3.iso
名前の違いは数字の1,2,3のところだけですので、シェルスクリプトにその数字を引数に与えてマウントするようにします。
dvdname=debian-9.1.0-amd64-DVD-$1.iso
echo "Try to mount $dvdname ..."
umount "/media/cdrom"
mount -o loop -t iso9660 $dvdname "/media/cdrom"
このシェルスクリプトにmcd.shと名前をつけて、isoファイルと同じフォルダに入れておきます。端末からrootになって、次のようにタイプすると1番めのDVDがマウントされます。
# bash mcd.sh 1
2番目、3番めのDVDをマウントするときは、引数を2または3にします。

このスクリプトと、apt-cdromを組み合わせてDVDの登録ができます。端末を2つ立ち上げます。端末Aはどのディレクトリあっても良く、rootになっておきます。端末Bはワーキングディレクトリをこのisoファイルとシェルスクリプトmcd.shのあるディレクトリに置き、rootになっておきます。端末Aで次のようにタイプします。
端末A # apt-cdrom add
すると新たに登録したいDVDを入れるよう指示がでます。ここで、端末Bを使って1番めのisoファイルをマウントします
端末B # bash mcd.sh 1
端末Aに戻りEnterキーを押して続きを促します。すると、DVDの内容を読み取って、レポジトリに登録してくれます。以上の作業を、2番め、3番目のDVDに対しても行います。このレポジトリ登録は一度行うだけで良く、その後はパッケージのインストールの作業(下記)だけを行えば大丈夫です。

パッケージのインストール例

aptを使ってパッケージをインストールします。例えば、jheadパッケージをインストールするとします。このパッケージはDVD3にありますが、そのパッケージのインストールに必要な他のパッケージが、DVD1にある場合(通常はおそらくそうです)、そちらからインストールしなければなりません。apt-getコマンドはその情報を自動的に認識して、どのタイミングでどのDVDをマウントすべきか指示してくれます。

端末Aと端末Bを立ち上げ、両方ともrootになります。端末Bはワーキングディレクトリをisoファイルとmcd.shスクリプトのあるディレクトリに置きます。まず、端末Aでパッケージのインストールを指示します。
端末A # apt-get install jhead
すると、DVD1をマウントするよう指示が出ますので、端末BでDVD1をマウントします。
端末B # bash mcd.sh 1
端末Aに戻り、Enterキーを押してインストールを続けます。この段階では、jheadそのものはまだインストールされず、jheadに必要な下位のパッケージがインストールされます。つづけて、DVD3をマウントするように指示が出ますので、端末BでDVD3をマウントします。
端末B # bash mcd.sh 3
端末Aに戻り、Enterキーを押してインストールを行います。この段階でjheadがインストールされます。インストールが終了すると、apt-getは終わって、端末Aはコマンド待ち状態になします。そこで、端末Bに戻り、不要になったDVD3をアンマウントしておきます。
端末B # umount /media/cdrom

このようにして、isoイメージにあるパッケージはインストールすることができます。