=begin JA = セットアップ CD (2005 年度情報実験機用) の作成方法 * 森川 靖大 * 2005/08/11 (森川 靖大) 来年度の利用に関して更新 * 2005/08/10 (森川 靖大) 完成 * 2005/08/09 (森川 靖大) 作成 [(())] ############################################################ == 概要 情報実験 (INEX) では, 受講者は授業の前半はセットアップ済みの UNIX 系 OS を用いて実習を行う. 以下ではその初期状態の UNIX 環境を整えるためのセットアップ CD の作成方法を記す. === ポリシー 整える UNIX 環境のポリシーを箇条書きにすると, * OS は UNIX 系 OS を用いる * 歴史的に ((<"Debian GNU/Linux"|URL:http://www.debian.or.jp/>)) を利用している * 理由 * Linux 系 OS で, 授業の目的に沿っていた. * 昔は Debian のインストーラは教育的 (ダサい) だった. (個々のハードウェアの選択などを明示的におこなわなければ ならなかった). * 情報実験の立ち上げの時期, STAFF や TA に Debian 使い (Debian 好き?) が多かった. * できるだけ「生」のシステムに触れるように * ログインはコンソールから * GUI な環境がシステムとは別箇のものであることを知っておいて 欲しいため * なるべくアプリケーションはコマンドラインで * GUI にクリックするものに関しても, 結局は下層でコマンドが 実行されているものである. そのため, ワンクリックで起動する ものはできる限り減らし, アプリケーションの多くはコマンドを 実際に入力して起動してもらう. * Windows の Explorer (KDE なら konquerer) のようなソフトウェアは 消しておく * ブラウザは提供 * Web の情報を取得するため * 日本語環境を提供 * ただし, 明示的に設定しない限りは日本語環境にスイッチしない ようにしておく. * それ以外はセットアップ CD 作成担当者の趣味… (-_-;) なお, セットアップ CD を作成するのは, 個々の計算機の環境が ばらつかないためである. Debian も sarge になり, インストールも 随分と簡単になってきたので, 簡単にドキュメントを作成して, それに沿って VTA の皆さんにインストールを行ってもらっても いいのかもしれない. その代わり, TA が作成された個々の環境を チェックする手間は少々増えると思われる. === KNOPPIX による情報実験機セットアップ CD 2005 年度は 1 CD Linux である (()) [((<日本語版|URL:http://unit.aist.go.jp/itri/knoppix/>))] を用いた. KNOPPIX はそのイメージを展開し, そのファイルを編集後に iso イメージとして再構築することが可能なため, 情報実験用に カスタマイズしたものを bootable CD にすることができる. さらに, その CD の内容を HDD にインストールするためのユーティリティ も揃っているため, 受講生が数ヶ月間使うという面でも向いている. (たった数日ならば bootable CD 自体を用いると良いだろう). また KNOPPIX はベースに Debian を利用しており, ディスクへのインストール を行うとほとんど Debian と同じように動作する (Debian パッケージの インストールやアンインストールも, ピュアな(?) Debian を利用するのと 全く同じように操作可能). これまで Debian を使ってきた経験も 長いのでいろいろ楽と思う. なお欠点 (?) として, KNOPPIX は高密圧縮された約 650MB のデータを 約 2.0 GB に解凍し, PC のメモリ上に OS を展開するため, ある程度 大きなメモリ (無い場合はスワップ領域) を必要とする. そのため 古い PC では起動そのものに非常に時間がかかることも予想されるが, 少なくとも 2005 年度の情報実験機はそれなりに高性能なので, これに関しては問題ないと考える. ==== 2006 年度以降にこれを呼んでいる方へ もしも 2006 年度以降にも KNOPPIX を利用しようと考えている方 がいるのであれば, 2005 年度に作成したイメージや CD を 利用することで, 下記の作業をいくつかショートカットできる. 詳しくは最後尾の((<来年度以降の再利用に関して>))を参照していただきたい. === 参考書籍 下記の作成に関しては以下の書籍を参考にした. この書籍と全く同様の内容に関しては本の該当箇所を指定するに留める. EPnetFaN 書籍としても購入したので, 参照してもらいたい. * Knoppix hacks ― カスタマイズとシステム管理のテクニック * 著者 :Kyle Rankin 著, 須崎 有康 監修, 株式会社クイープ 訳 * 出版社:((<オライリー・ジャパン|URL:http://www.oreilly.co.jp/index.shtml>)) * ISBN :4873112281 * 値段 :2,940円 * URL : * ((<オライリー|URL:http://www.oreilly.co.jp/books/4873112281/>)) * (()) ############################################################ == 準備 === KNOPPIX CD 今回は ((<参考書籍>)) に付属されていた CD (KNOPPIX 3.8 日本語版) を用いた. Web からイメージをダウンロードする際には (()) から 適当なミラーサーバを選び, iso イメージをダウンロードして欲しい. iso イメージを焼く方法については, (()) を参照して欲しい. === リマスタリングのための計算機 KNOPPIX のイメージを展開し, リマスタリング (イメージの再構築) 行うための計算機が必要である. ((<参考書籍>))の「HACK #94」によれば, その計算機は以下の条件を 必要とする. * パーティションに 3GB 以上の空き領域が無ければならない. * 実メモリとスワップの合計で約 1 GB が必要 * 実メモリが 1GB 未満で, パーティション上にスワップファイルを 作成する場合, 空き領域がもう 1 GB 必要となる. 基本的に情報実験機でスワップパーティションかスワップファイルを 作成すれば問題ない. なお, 実メモリとスワップのチェックは free コマンドを用いればよい. $ free スワップの作成に関しては (()) を参考にして欲しい. もちろん ((<参考書籍>)) を参考にするのも 有効である. ############################################################ == 起動してリマスタリング準備 (()) を CD または DVD ドライブに入れてコンピュータ を起動する. 以下のような boot: プロンプトには何も入力せずに Enter を押す. boot: あとは自動的に X まで起動するはずである. === リマスタリングで用いるデバイスに関する注意 以下では, リマスタリングに使用するデバイスを ((* /dev/hda1 *)) とする. デバイスが異なる環境で リマスタリングを行う際には置き換えて読むこと. === ソースファイルシステムの準備 /dev/hda1 に KNOPPIX CD 上のファイルシステム全体を コピーする. なお, デスクトップ上の hda1 アイコンを クリックしてもマウントはされるが, その場合一度 unmount してから以下の作業を開始すること # mount /dev/hda1 /mnt/hda1 # cd /mnt/hda1 # mkdir source # mkdir source/KNOPPIX # cp -Rpv /KNOPPIX/* source/KNOPPIX コピーには, ディスクの回転速度にもよるが, 約 10 分強の時間がかかる. === chroot でのルートディレクトリ変更 chroot とは, ルートディレクトリを一時的に変更するためのコマンドである. これを用いて一時的にコピーしたファイルシステムをシステム本体と みなし, カスタマイズを行う. なお, 以下では chroot でルートを変更して行う作業とそうでないもの (デスクトップ環境のカスタマイズは現在稼動しているシステム上で 行う必要がある). chroot の場合は始めに ((* chroot 下での作業 *)), 現在稼動している システム上での作業の場合には始めに((* 非 chroot な稼動中のシステム上 での作業 *)) と明記するので注意されたし. まず, 起動時に動的に変更されるファイルをコピーし, その後に chroot での移動を行う. 移動後は, /proc を proc ファイルシステム としてマウントする. (これ重要) # cd /mnt/hda1 # cp /etc/dhcpc/resolv.conf source/KNOPPIX/etc/dhcpc/resolv.conf # chroot source/KNOPPIX # mount -t proc /proc proc なお, この際に sbin などへのパスが通っていないことが考えられる. その場合, /etc/profile などを読み込んでおくと良い. # . /etc/profile ==== proc のマウント時の注意 $ mount -t proc /proc proc でマウントした proc は, df で確認しようとしても, そのままでは proc は表示されない. 確認の際は -a オプションをつけること $ df -a Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /proc 0 0 0 - proc 以下のようなメッセージが表示されたら確認してみること. mount: /proc は マウント済か proc が使用中です mount: mtab によると、/proc は proc にマウント済です ==== /dev/null にアクセスできない問題 もう一つは, 以下のようなエラーが出る場合である. bash: /dev/null: 許可がありません. このような場合には, 一旦 /dev/hda1 (もちろんシステムによっては別の デバイスの場合もあるが, ここでは /dev/hda1 を利用していると 仮定する) をアンマウントし, 手動でマウントしなおす. # umount /dev/hda1 # mount /dev/hda1 /mnt/hda1 情報は (()) より ############################################################ == システムの縮小化 ((* chroot 下での作業 *)) [参照: (()) | (())] まずは一度, 簡単にカスタマイズした後, 一度 iso イメージが 無事に作成できるか確かめる. とりあえず不要そうな パッケージを削除した後に((<マスタファイルシステムの作成 (練習)>)) にいってみる. === とりあえず重たそうで要らないパッケージの削除 # dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n 依存するパッケージと併せて 50.8 MB の節約 # apt-get --purge remove libwine 依存するパッケージと併せて 27.5 MB の節約 # apt-get --purge remove gimp-data 併せて 264 MB の節約. 主に games セクション, sound セクションのパッケー ジや devel セクションの内必要なさそうなもの, サーバアプリケーション関 係のパッケージを削除. テキストを編集するためのパッケージや, imagemagick など最低限のグラフィック関係のツールは残してある. あと, KDE のシェル(?) である konqueror は敢えて消してある. (cd 使って欲しいから). # apt-get --purge remove \ ace-of-penguins airsnort alsa-base alsa-utils apache \ apache-common apache-utils audacity aumix-gtk autoconf \ automake1.7 autotools-dev bind9 cdda2wav cddb cdparanoia chromium \ chromium-data cvs dhcp3-common dhcp3-server ed elinks enigma \ enigma-data fb-music-low fetchmail flim fortune-mod fortunes-min \ frozen-bubble frozen-bubble-data gaim gaim-data gif2png giftrans \ gnuchess gocr gpm gqcam gtans gtk-engines-geramik \ gtk-engines-geramik-data gtk-engines-qtpixmap \ gtk2-engines-qtpixmap httptunnel hunt icewm imaze ipchains \ iptables iptraf isdnvboxclient jackd k3b kamera kasteroids kate \ kate-plugins katomic kbattleship kdebase \ kdegraphics-kfile-plugins kdemultimedia-kfile-plugins \ kdenetwork-kfile-plugins kdevelop3 kdevelop3-data \ kdevelop3-plugins kfax kget kghostview kgpgcertmanager kiconedit \ kismet kmahjongg kmail kmailcvt kmix knoppix-terminalserver \ konq-plugins konqueror kooka korganizer kpaint kppp krdc kreversi \ krfb ksnapshot ksokoban kteatime ktuberling kuickshow kvdr kview \ kviewshell kwifimanager lftp libapache-mod-php4 libapache-mod-ssl \ libcdparanoia0 libcvsservice0 libisccc0 libisccfg0 libkdegames1 \ libmodplug0 libtiff-tools libtool libxine1 linneighborhood lisa \ mikmod mobilemesh mpg321 mtr nessus nessusd netris nfs-common \ nfs-kernel-server nis php4 php4-mysql playmidi pppconfig pppoe \ pppstatus pptp-linux print-utils-pfeifle radio rdesktop samba \ samba-common sane semi sfs-client sfs-common smbclient smbfs \ smpeg-xmms sndconfig-knoppix snort snort-rules-default snortsnarf \ sound-recorder sox speex squid squid-common startnessus-knoppix \ sylpheed sylpheed-i18n tcpdump telnetd-ssl thttpd tidy vcdimager \ vcdtools winesetuptk wireless-tools wl xbattle xboard xboing \ xchat xchat-common xfig xgalaga xine-ui xmms xmms-cdread \ xmms-goom xmms-modplug xmms-volnorm xsane xsane-common xskat === 一通りのインストール後にすること ==== 非依存ライブラリの削除 依存されていないライブラリを消すため, 以下のコマンドを 実行. 特にクリティカルなパッケージはないはずだが, 一応 確認した後 Y を押す. 非依存パッケージのリスト表示 (サイズつき) # deborphan -z | sort -n 合計何バイトの節約になるのかチェック. 今回は 19.3 MB の節約 # deborphan | xargs apt-get --purge remove 以下で実行. # deborphan | xargs apt-get -y --purge remove ==== ダウンロードした deb パッケージの削除 # apt-get clean === chroot 脱出 # umount /proc # exit ############################################################ == マスタファイルシステムの作成 (練習) ((<システムの縮小化>))でも述べたが, とりあえず無事に iso イメージが作成可能か調べてみる. # cd /mnt/hda1 # mkdir master # rsync -av --exclude "/KNOPPIX/KNOPPIX" /cdrom/ master/ # mkisofs -R -U -V "Knoppix_INEX_2005_TEST" -P "inex@ep.sci.hokudai.ac.jp" \ -hide-rr-moved -cache-inodes -no-bak -pad \ source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > \ master/KNOPPIX/KNOPPIX 2005 年度の情報実験機 3n+1, 3n+2 ならば, だいたい 40 分をみていれば作成できる. === 壁紙の変更 /usr/share/wallpapers から適当に見繕って, master/KNOPPIX/background.jpg に上書き # cp /usr/share/wallpapers/only_k.jpg master/KNOPPIX/background.jpg === md5sums の作成 # cd master # rm -f KNOPPIX/md5sums # find -type f -not -name md5sums \ -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums KNOPPIX/md5sums が作成されていることを確認し, 親ディレクトリへ戻る. # cd .. === CD イメージの作成 # mkisofs -pad -l -r -J -v -V "KNOPPIX" \ -no-emul-boot -boot-load-size 4 -boot-info-table -b \ boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -hide-rr-moved -o knoppix.iso master/ 2005 年度の情報実験機 3n+1, 3n+2 ならば, ほぼ 5 分で完了. ############################################################ == iso イメージのチェックと CD ライティング === iso イメージがまともかどうかのチェック 再起動し, knoppix の boot プロンプトに以下のように 入力. 想定通りに起動するかチェックする. knoppix bootfrom=/dev/hda1/knoppix.iso === iso イメージを CD に焼く KNOPPIX 本体で CD を焼くことも可能なのかも知れないが, ここでは他の PC にイメージをコピーしてそれをライティングソフトで 焼くことを考える. サイズがそれなりに大きくなるものの, samba でのコピーなら それほど時間がかからないので, samba サーバを起動して, 移動する. 詳しくは((<参考書籍>))の Hack #41 を参照すれば良いが, 以下に簡単に手引を書く. 「K メニュー」→「KNOPPIX」→「Services」→「Start Samba Server」 パスワードを聞かれるので入力する. 最後に読み書きさせるか と問われるが, No を選択する. 後は CD イメージをもらう側の PC で KNOPPIX が起動している PC と同じネットワークセグメントに移動し, マイネットワークで 「検索」で「Knoppix」を探せば見つかるはずである. ユーザ名は knoppix, パスワードは先に入力したものである. ==== CD でのブートを試してみる 他の PC にて CD を入れてブートしてみる. 当然, BIOS の boot priority の 1st を CD にしておくことを 忘れずに. 起動できたら第1段階は OK. 次はそのイメージを HDD にインストール できるかをチェックする. インストールも出来たらほぼ完了. いよいよ本格的なイメージ作成に入る. ############################################################ == システムの本格的カスタマイズ ((* chroot 下での作業 *)) [参照: (()) | (())] (())を先ほどリマスタリングを行った計算機の ドライブにいれ, 電源を投入する. ((<起動してリマスタリング準備>)) を再び行い, リマスタリングの 準備を整える. なお先ほどカスタマイズを行った部分 ( ((<システムの縮小化>)) )に関しては /dev/hda1 の source/KNOPPIX 以下にそのまま反映されているので, それを そのまま利用する. === ソースリストを epftp に /etc/apt/sources.list を以下のものに置き換える. # mv /etc/apt/sources.list /etc/apt/sources.list_org # vi /etc/apt/sources.list deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian sarge main contrib non-free deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-jp sarge-jp main contrib non-free deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-non-US sarge/non-US main contrib non-free deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian sarge-proposed-updates main contrib non-free deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-security sarge/updates main contrib non-free === リストを更新 # apt-get update === アップグレード 以下のアップグレードには大体 30 分ほどかかる. # apt-get upgrade --show-upgraded Reading Package Lists... Building Dependency Tree... The following packages have been kept back: ipppd isdnactivecards isdnutils-base isdnutils-xtools libwvstreams4.0-base libwvstreams4.0-extras lilo mgp mknbi tasksel vdr The following packages will be upgraded: acpi alevt alien anthy anthy-el apache2-utils apmd apt apt-utils aspell-bin aspell-en autofs bacula-client bacula-common bacula-console bacula-fd bb binutils binutils-dev bittorrent bsdutils bzip2 cdbackup colorgcc comerr-dev cpp-3.3 cupsys cupsys-bsd cupsys-client dash dbus-1 debhelper dictionaries-common diffstat doc-base dosfstools dpkg dpkg-dev dselect e2fslibs e2fsprogs efax-gtk ethereal ethereal-common ettercap-common ettercap-gtk fakeroot findutils fluxbox foomatic-bin foomatic-db foomatic-db-engine foomatic-db-gimp-print foomatic-db-hpijs foomatic-filters g++-3.3 gcc-3.3 gcc-3.3-base gcj-3.3 gdb gettext gettext-base gettext-el gij-3.3 gksu glibc-doc gnupg grep-dctrl grub gsfonts gzip hdparm hicolor-icon-theme hostap-utils hostapd hotplug hpijs html2text icewm-common ifupdown ijsgimpprint imagemagick initrd-tools ipsec-tools irb1.8 jfbterm kaddressbook kalarm kandy karm kde-i18n-ja kdeaddons-kfile-plugins kdelibs-bin kdelibs-data kdelibs4 kdelibs4-dev kdepim-kfile-plugins kdepim-kio-plugins kernel-package klogd knode knotes kompare konsolekalendar kontact kpf kpilot kstars kstars-data ksync ktnef lesstif2 libanthy0 libapm1 libapr0 libarts1 libarts1-dev libartsc0 libartsc0-dev libaudiofile-dev libaudiofile0 libblkid1 libbz2-1.0 libbz2-dev libc6 libc6-dev libcomerr2 libcupsimage2 libcupsys2-dev libcupsys2-gnutls10 libcurl3 libdbd-mysql-perl libdm0 libdps1 libexpat1 libexpat1-dev libfreetype6 libfreetype6-dev libgcc1 libgcj-common libgcj4 libgcj4-awt libgcj4-common libgcj4-dev libgcrypt11 libgcrypt11-dev libgdk-pixbuf2 libgimpprint1 libgksu1.2-0 libgksuui1.0-0 libglib2.0-0 libglib2.0-data libglib2.0-dev libgnutls11 libgnutls11-dev libgphoto2-2 libgphoto2-port0 libgpmg1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libice-dev libice6 libieee1284-3 libjpeg-progs libjpeg62 libjpeg62-dev libkcal2a libkdeedu1 libkdenetwork2 libkdepim1 libkleopatra0a libkrb53 libldap2 libltdl3 libmad0 libmad0-dev libmagick6 libmysqlclient12 libopenexr2 libpcre3 libpcre3-dev libqt3-compat-headers libqt3-headers libqt3-mt-dev libqt3c102-mt libreadline-ruby1.8 libruby1.8 libsane libsary-ruby1.8 libsensors3 libsm-dev libsm6 libsmbclient libspeex1 libss2 libstdc++5 libstdc++5-3.3-dev libsuikyo-ruby1.8 libtiff4 libuim0 liburi-perl libusb-0.1-4 libusb-dev libuuid1 libwmf-bin libwmf0.2-7 libx11-6 libx11-dev libxaw7 libxaw7-dev libxext-dev libxext6 libxft-dev libxft1 libxft2 libxi-dev libxi6 libxml2 libxml2-utils libxmu-dev libxmu6 libxmuu-dev libxmuu1 libxp-dev libxp6 libxpm-dev libxpm4 libxrandr-dev libxrandr2 libxslt1.1 libxt-dev libxt6 libxtrap-dev libxtrap6 libxtst-dev libxtst6 libxv-dev libxv1 libzvbi-common libzvbi0 locales login logrotate mc mdadm menu mew mew-bin minicom modconf module-assistant mozilla-firefox mozilla-firefox-locale-de-de mozilla-thunderbird mozilla-thunderbird-locale-de mozilla-thunderbird-offline mutt mysql-client mysql-common mysql-server nasm nedit nmap passwd php4-common pkg-config pm-dev pnm2ppa po-debconf powermgmt-base ppp pppoeconf prime-dict pump python python-tk python2.3 python2.3-tk qt3-dev-tools raidtools2 rcs rsync ruby1.8 sane-utils sharutils snort-common sslwrap stunnel sudo suikyo-elisp suikyo-table symlinks sysklogd telnet-ssl tethereal tftp tftpd-hpa twm uim-common uim-utils uim-xim unzoo usbutils util-linux util-linux-locales vim vim-common vim-gtk vim-scripts vimpart vorbis-tools vpnc wget whois x-dev xbase-clients xdm xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded xfonts-base xfonts-base-transcoded xfonts-scalable xfree86-common xfs xlibmesa-dri xlibmesa-gl xlibmesa-gl-dev xlibmesa-glu xlibmesa-glu-dev xlibs xlibs-data xlibs-dev xlibs-static-dev xlibs-static-pic xnest xserver-common xserver-xfree86 xterm xutils zile zlib1g zlib1g-dev 345 upgraded, 0 newly installed, 0 to remove and 11 not upgraded. Need to get 267MB of archives. After unpacking 12.2MB of additional disk space will be used. Do you want to continue? [Y/n] ==== インストール中の質問 設定ファイル`/etc/vim/vimrc' ==> これはインストールしてから(あなたかスクリプトによって)変更されています。 ==> パッケージ配布元が更新版を提供しています。 どうしますか? 以下の選択肢があります: Y か I : パッケージメンテナのバージョンをインストールする N か O : 現在インストールされている自分のバージョンを残す D : 両バージョンの差異を表示する Z : この処理をバックグラウンドにし、状況を確認する デフォルトでは現在使っている自分のバージョンを残します。 *** vimrc (Y/I/N/O/D/Z) [デフォルト=N] ? Y を選択. ((<一通りのインストール後にすること>)) を行うのを忘れずに. === flash player をインストールする (()) より, (()) をダウンロードする. 展開し, 必要なファイルを mozilla-firefox の plugin ディレクトリに 移動する. 確認したいが, chroot 下での作業なので, 実際の確認は ((<マスタファイルシステムの作成 (本番)>)) の後になる. とりあえず, 非 chroot 下以外の稼動中のシステムでも試してみると良いだろう. $ tar zxvf install_flash_player_7_linux.tar.gz $ cd install_flash_player_7_linux # cp libflashplayer.so flashplayer.xpt \ /mnt/hda1/source/KNOPPIX/usr/lib/mozilla-firefox/plugins/ 以下の URL より情報を入手 http://mland98.rc.kyushu-u.ac.jp/cgi-bin/debian/joyful/joyful.cgi === acroread をインストールする xpdf はフォントが貧弱なので acroread をインストールする. [epnetfan-ml 4891] 参照. /mnt/hda1 以下の /etc/apt/sources.list に以下の一行を追加する. deb ftp://ftp.nerim.net/debian-marillat testing main そして, 以下のように update と install を行う. これで acroread ver 7.0 (英語版) がインストールされる. 英語の PDF のみを見る場合にはこれで十分であろう. # apt-get update # apt-get install acroread ==== 日本語フォントのインストール 日本語の PDF を見るためには日本語のフォントも必要になる. 本来はフォントを Adobe のページからダウンロードして必要な場所に 手動で置く必要があるのだが, それらの作業を一括で行ってくれる deb パッケージがあるのでそれを取得する. ((<"uploader Debian GNU/Linux スレッドテンプレ"|URL:http://debian.fam.cx/index.php?uploader>)) の (()) をダウンロードする. 以下のコマンドで, 取得した deb パッケージをインストールする. # dpkg -i acroread-japanesefont_7.0.0-0_i386.deb フォントのダウンロードに少々時間がかかるかもしれないが, しばらく待っているとダウンロードしたフォントの展開, および適切な場所への移動等行ってくれる. ==== 後かたづけ 最後に /mnt/hda1 以下の /etc/apt/sources.list から以下の一行を削除する. deb ftp://ftp.nerim.net/debian-marillat testing main そして余計な deb のアーカイブを消す. # apt-get clean === いくつかのツールのインストール # apt-get install qiv tree qkc === ssh による外部からのログインを可能にする ssh は元々インストールされているものの, セキュリティの 問題から鍵が生成されておらず, 外部からのログインができない. 以下のコマンドで sshd を起動するよう設定し, 外部からの ssh ログインを可能にする. ちなみに, /usr/sbin への パスが通っていない場合は, 以下のようにパスを通してから実行 # export PATH=$PATH:/usr/sbin:/sbin # dpkg-reconfigure ssh === ntp サーバの設定 /etc/default/ntpdate に以下の記述を加える. こうしておくことで, /etc/init.d/ntpdate start すれば時間合わせができる. NTPSERVERS="time-nw.nist.gov" === ネットワーク設定 /etc/network/interface に以下のように記述. DHCP は CD ブートの時には有効であるが, debian システムとして ハードディスクにインストールした際には無効になる. その際, 以下のコメントアウトを外してネットワーク設定を有効にする. なお, 以下の設定は 2005 年度現在での情報実験機周りの ネットワークの状況に拠っているので環境が変わった場合は 書き換えた方が良い. # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface # automatically added when upgrading auto lo iface lo inet loopback # For INEX VTA!! # # Please sheck "dmesg". And select only non Gigabig Ethernet device. # #auto eth0 #iface eth0 inet static # address 192.168.16.??? # netmask 255.255.255.0 # network 192.168.16.0 # broadcast 192.168.16.255 # gateway 192.168.16.1 #auto eth1 #iface eth1 inet static # address 192.168.16.??? # netmask 255.255.255.0 # network 192.168.16.0 # broadcast 192.168.16.255 # gateway 192.168.16.1 さらに, /etc/resolv.conf が以下のようになっているかチェック. search ep.sci.hokudai.ac.jp nameserver 133.87.45.70 nameserver 133.87.45.66 nameserver 133.87.1.11 === startx の際の dpi の設定 コンソールログイン時に普通にユーザが startx すると, dpi が 100 になってしまう. KDE デフォルトと同じ dpi 75 にするには, /usr/X11R6/lib/X11/xinit/xserverrc を以下のように書き換えると良い. #!/bin/sh exec /usr/bin/X11/X -dpi 75 -nolisten tcp ############################################################ == KDE のデスクトップをシンプルに ((* 非 chroot な稼動中のシステム上での作業 *)) [参照: (()) | (())] ((<ポリシー>)) よりできるだけシンプルなデスクトップにすべく, KDE のデスクトップをカスタマイズする. もちろん他のウィンドウマネージャを編集する手もあったが, 作業コストの問題からこの方法を選んだ. なお, この作業は chroot 以下ではなく, 稼動中のシステム上で行うので, chroot しているのであれば別のウィンドウを立ち上げてその中で作業 するか, もしくは(())すること. === /etc/skel/Desktop を綺麗に デフォルトだと, ユーザーを作成した際に, /etc/skel 以下から 様々なファイルがコピーされる. 不要な以下を削除する. $ cd /home/knoppix/Desktop $ rm Trash/.directory Trash/* $ rm sample_japanese/.dictory sample_japanese/* $ rmdir Trash sample_japanese $ rm * .directory $ cd .. === KDE のデスクトップ設定の整理と保存 デスクトップのアイコンや下部の「パネル」の掃除を行う. ==== ゴミ箱の場所の設定を変更 ゴミ箱は毎回 X の起動時に$HOME/Desktop に作成されてしまうので, KDE の設定ファイルを変更して, 作成場所を変更し, 隠してしまう. $ vi /home/knoppix/.kde/share/config/kdeglobals 以下の部分を [Paths] Trash=$HOME/Desktop/Trash/ 以下のように変更する. [Paths] Trash=$HOME/.Trash ==== KDE の「パネル」をシンプルに KDE デスクトップ下部のパネルの内, コンソール (konsole) 以外を すべて削除する. 削除する方法はボタン上で右クリックし, 「…ボタンを削除」を選択する. コンソールボタンは, 右クリックして「プロパティ」を選択し, 「アプリケーション」で「コマンド」の部分の konsole を 消して, kterm を入れる. そこで「OK」を押すのだが, アイコンがダサくなってしまう. 再度プロパティを選択し, 「一般」でアイコン本体をクリックし, 先の konsole の アイコンに戻す. このままでは終了できないので, 先ほどまでボタンがあったところで 右クリックし, 「追加」→「アプレット」→「ロック/ログアウト アプレット」 を選択し, ログアウト用のボタンを作成しておく. 更にログアウトボタンを右クリックして「セッション管理の設定」を 選択し, 「シャットダウンオプションの提供」のチェックを外し, 「ログイン時」は「空のセッションで開始」にして, 「デフォルトのシャットダウンオプション」を「現在のセッションの終了」 にする. ちなみに, 一番左の 「K メニュー」は kmenuedit コマンドで, 「KNOPPIX」の「KNOPPIX の設定の保存」は saveconfig で 可能であるので, 利用したい場合はそれらのコマンドで代替する. 各アイコンの位置だが, 「ロック/ログアウト アプレット」は一番左, その次に「kterm」, 4 つのウインドウの上の配置については 右側の言語設定のすぐ左に持ってくる. 現在開いているウィンドウ一覧は「kterm」のすぐ右に持ってくる. ==== 右クリックの動作の変更 デスクトップ上で右クリックにいろいろ余計な(?)動作が存在するので, 可能なことを少なくする. まず kmenuedit コマンドを実行し, 最低限必要なアイコンを作成する. (ほとんど趣味) * 「システム」→「XShell」→「Kanji Terminal」を選択し, 右のアイコンをクリックして konsole のアイコンに入れ換える. * 「設定」を開き, 右クリックして「新規項目」を選択, 「項目名」は, 「デスクトップの設定」とする. アイコンは 一つ上の「設定」と同じにする. コマンドは以下の一行 (改行して表示してあるが, 一行で入力すること kcmshell [kdeinit] kcmshell --caption デスクトップ kde-background kde-desktopbehavior kde-desktop kde-screensaver kde-display この 2 つの設定が終了したら, 「ファイル」→「保存」する. 次に, 実際に右クリックの動作を変更する. デスクトップ上で 右クリックし「デスクトップの設定」を選択する. 「動作」を選択して 「マウスボタンの動作」で「右ボタン」を「カスタムメニュー1」にする. そして右の編集ボタンをクリックし, 既にある「コンソール」を削除して 「新規」で, 上記で作成した Kanji Terminal と 「デスクトップの設定」を 選択する. ==== KDE 上の壁紙の変更 始めは cdrom や /UNIONFS 以下の壁紙を利用していたりするので, 新たに CD イメージを作成した際, 壁紙が有効にならない可能性がある. そのため, /usr/share/wallpapers 以下の壁紙を選択しておく. このディレクトリならば, CD イメージ化した後にも反映される. 右クリックして「デスクトップの設定」を選択し, 「背景」の「画像」で 右側のフォルダの形をしたボタンを選択して, 今回は以下の画像を 選択する. /usr/share/wallpapers/only_k.jpg 最後に「OK」を選択して完了. === mozilla-filefox の個人設定 ==== 初期画面を INEX に $ mozilla-firefox Mozilla を一度起動し, デフォルトページを inex にする. /home/knoppix/.mozilla/firefox/3d4ef4xp.default/prefs.js に 初期ページの設定が書き込まれるはずである. ==== pdf を acroread で開く xpdf は日本語表示が弱いので, インストールした acroread で 開くようにしておく. ただし, まだ source/KNOPPIX 以下にインストールした だけであり, デスクトップ /KNOPPIX 以下にはまだインストールされていないはずなので, 以下のような手段をとる. * まず firefox を起動し, 何らかの pdf ファイルを開こうとする. * アプリケーションを聞かれるので, おそらく存在するであろう /usr/bin/gv を選択する. * gv と firefox を閉じる. そして /home/knoppix/.mozilla/firefox/3d4ef4xp.default に移動し, そこの mimeTypes.rdf を以下のように編集する. vi /home/knoppix/.mozilla/firefox/3d4ef4xp.default 編集前 編集後 ==== 後かたづけ 最後に, 一度 firefox を起動し, 「編集」→「設定」 →「プライバシー」→「すべてをクリア」で情報を クリアしておくこと. === デスクトップ環境設定ファイル knoppix.sh と configs.tbz の保存 ==== 「最近の...」系の削除 最近のファイル, みたいなのを削除する rm /home/knoppix/.kde/share/apps/RecentDocuments/* rm /home/knoppix/.bash_history rm /home/knoppix/.ssh/known_hosts rm /home/knoppix/.viminfo rm /home/knoppix/.emacs.el ==== 設定の保存 saveconfig コマンドで設定を保存する. $ saveconfig 選択するのは以下の 2 つである. 他のものはちゃんと選択から外すこと. * p:個人的な設定 (デスクトップ, プログラムなど) * d:Desktop に含まれるすべてのファイル 保存先は /mnt/hda1 にする. ############################################################ == 言語関係の設定ファイルの編集 ((* 非 chroot な稼動中のシステム上での作業 *)) [参照: (()) | (())] デフォルトの ~/.bashrc や ~/.bash_profile はいろいろ親切設定なので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する. === ~/.bash_profile $ cd /home/knoppix $ mv .bash_profile .bash_profile_knx_org $ vi .bash_profile # ~/.bash_profile: executed by bash(1) for login shells. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/login.defs #umask 022 # include .bashrc if it exists if [ -f ~/.bashrc ]; then . ~/.bashrc fi === ~/.bashrc $ cd /home/knoppix $ mv .bashrc .bashrc_knx_org $ vi .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything: [ -z "$PS1" ] && return XIM=kinput2 ############################################################ == source/KNOPPIX/etc/skel 以下へのコピー ((* 非 chroot な稼動中のシステム上での作業 *)) [参照: (()) | (())] === /mnt/hda1/source/KNOPPIX/etc/skel/ への上書き $HOME/.kde, $HOME/.mozilla など設定ファイルを /mnt/hda1/source/KNOPPIX/etc/skel/ へ 上書きする. # rsync --exclude cache-Knoppix --exclude socket-Knoppix \ --exclude tmp-Knoppix \ --delete -av /home/knoppix/.kde/ /mnt/hda1/source/KNOPPIX/etc/skel/.kde/ # rsync --delete -av /home/knoppix/Desktop/ /mnt/hda1/source/KNOPPIX/etc/skel/Desktop/ # rsync --delete -av /home/knoppix/.local/ /mnt/hda1/source/KNOPPIX/etc/skel/.local/ # rsync --delete -av /home/knoppix/.mozilla/ /mnt/hda1/source/KNOPPIX/etc/skel/.mozilla # cp /home/knoppix/.bashrc /mnt/hda1/source/KNOPPIX/etc/skel/ # cp /home/knoppix/.bash_profile /mnt/hda1/source/KNOPPIX/etc/skel/ ############################################################ == STAFF, TA ユーザを作成する ((* chroot 下での作業 *)) [参照: (()) | (())] /mnt/hda1/source/KNOPPIX/etc/skel/ が整理されたので, STAFF と TA のユーザを作成する. 氏名などの情報は epwww から持ってくる. パスワードは適当につけて, 本人たちのみに通知する. # adduser shosuke # adduser keikei # adduser odakker # adduser morikawa # adduser totera # adduser kk ############################################################ == 設定がインストール時に無効になるシステム設定への対処 ((* 非 chroot な稼動中のシステム上での作業 *)) [参照: (()) | (())] 以下のものは, 設定を行なっても iso イメージ → CD → ハードディスクへの インストールとなる過程で無効になってしまうものである. そのため, パッチとその置き換えスクリプトを用意することでさっくりと 更新する. 作成したパッチと置き換えスクリプトは以下に置いてある. * (()) 置場は /mnt/hda1/source/KNOPPIX/usr/local/KNOPPIX-INEX-PATCH に置く. 以下のをあなたの専攻メールサーバアカウント に変更して, ダウンロードする. # scp -r \ @www.ep.sci.hokudai.ac.jp:~inex/y2005/urakata/setupCD/KNOPPIX-INEX-PATCH \ /mnt/hda1/source/KNOPPIX/usr/local/ なおパッチの元ファイルと変更した後のファイルは * (()) に置いてあるので, 変更を行う場合はそちらを参照のこと. 以下に変更の具体的な内容を記すが, これらを知らなくても問題は無いので お時間が無い場合は((<マスタファイルシステムの作成 (本番)>)) へ行って欲しい. === KDE の初回ウィザードを表示させないために KDE の初回設定ウィザードが起動されるかどうかは, ~/.kde/share/config/kpersonalizerc による, この中の FirstLogin を false にすることで, ウィザードは起動しなくなる. $ vi ~/.kde/share/config/kpersonalizerc === コンソールログインにする 再び /mnt/hda1/source/KNOPPIX に chroot したターミナルに 戻る. /etc/inittab の initdefault を 3 にする. 具体的には以下を # The default runlevel. id:5:initdefault: このようにする. # The default runlevel. id:3:initdefault: その際, /etc/motd も以下のように編集しておく Welcome to INEX!! This machine is set up for your practices. On this occasion, please learn a lot of knowledge and technologies for the computer and the network by all means. More power to you!! *** NOTE *** If you want to use GUI applications, please input "startx" and Enter. But by default, your Japanese environment is not set up. If you want read and write Japanese, please input "export LC_ALL=ja_JP.eucJP". ************ === 言語関係の設定ファイルの編集 ==== /etc/profile デフォルトはいろいろ設定しすぎなので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する. # cd /etc # mv profile profile_knx_org # vi profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:" [ "$UID" = "0" ] && PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH" if [ "$BASH" ]; then PS1='\u@\h:\w\$ ' else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi export PATH PS1 umask 022 ==== /etc/environment 勝手に言語環境を設定されるので, 全部コメントアウト # vi /etc/environment #LANG="ja_JP.eucJP" #LANGUAGE="ja" #LC_MESSAGES="" === sudoers の設定 (())で作成したユーザを sudoers に加えておく. # visudo shosuke ALL=(ALL) ALL keikei ALL=(ALL) ALL odakker ALL=(ALL) ALL morikawa ALL=(ALL) ALL totera ALL=(ALL) ALL kk ALL=(ALL) ALL ############################################################ == マスタファイルシステムの作成 (本番) ((* 非 chroot な稼動中のシステム上での作業 *)) [参照: (()) | (())] ここまで終わったら, いよいよ本番のマスタファイルシステムを 作成する. (()) で抜け出し, ((<マスタファイルシステムの作成>)) を参考にシステムを再構築する. この際, 古い /mnt/hda1/KNOPPIX/KNOPPIX と knoppix.iso は一度消す. 具体的には以下の通り. # umount /proc # exit $ cd /mnt/hda1 # rm master/KNOPPIX/KNOPPIX # rm knoppix.iso # mkisofs -R -U -V "Knoppix_INEX_2005_ver1" -P "inex@ep.sci.hokudai.ac.jp" \ -hide-rr-moved -cache-inodes -no-bak -pad \ source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > \ master/KNOPPIX/KNOPPIX 必要であれば ((<壁紙の変更>)) を行なう. === デスクトップ設定の保存 ((<デスクトップ環境設定ファイル knoppix.sh と configs.tbz の保存>)) で/mnt/hda1 以下に作成した knoppix.sh と configs.tbz を master/KNOPPIX 以下にコピーする # cd /mnt/hda1 # cp knoppix.sh configs.tbz master/KNOPPIX/ 続いて (()), (()) と進む. 具体的には以下の通り. # cd master # rm -f KNOPPIX/md5sums # find -type f -not -name md5sums \ -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums # cd .. # mkisofs -pad -l -r -J -v -V "KNOPPIX" \ -no-emul-boot -boot-load-size 4 -boot-info-table -b \ boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -hide-rr-moved -o knoppix.iso master/ 最後に (()) した後, (())して (())する. 気に入らない部分がある場合は 再度カスタマイズを行い, イメージ及び CD を作成する. ############################################################ == ディスクへのインストール CD ブートによる起動が確認されたら, 次はディスクへの インストールを行ってみる. ((<インストール手順|URL:bootCD_install.html>))があるので, そちらを 参考にしてインストールを行う. === 確認事項 上記ページの「最終確認」にあわせ, 以下のことも確認してくこと. (以下は 2005 年度にセットアップ CD の作成を担当したものの 趣味による) * openoffice の動作と日本語入力 * firefox 上で flash が動作するか * acroread でちゃんと PDF が読めるか * firefox 上で pdf をダウンロードする際, 対応する アプリケーションとして acroread が選択されるか. * X の起動時に -dpi が 75 に設定されているか. 以下のコマンドを入力して -dpi よりも後ろの数字が 75 になっている ことを確認. $ ps aux | grep /usr/bin/X11/X ############################################################ == 来年度以降の再利用に関して 2006 年度以降, KNOPPIX をセットアップ CD として利用するならば, 2005 年度に作成した CD もしくはその iso イメージをそのまま 利用可能である. 基本的には ((<ポリシー>)) に従うとして, 以下で必ず必要になる作業と, 年度ごとに変更を必要とするような部分のみを 記す. 基本的には上記の作業へのリンクである. * ((<準備>)) * (()), ((<リマスタリングのための計算機>)) * ただし, 今回利用する (()) は 2005 年度に 作成したものを使用する. * ((<起動してリマスタリング準備>)) * ((<システムの本格的カスタマイズ>)) * かなり省略が可能だが, 以下の作業はきっと必要 * ((<ソースリストを epftp に>)) * もしも debian の apt のソース先が変わっている場合は必要. * ((<リストを更新>)), ((<アップグレード>)) * これはソースリストの変更に関わらず必要 * ((<ネットワーク設定>)) * (()) * 過去の STAFF, TA のアカウントを一度削除し, 年度の STAFF, TA のアカウントを作成する. 削除には (({userdel -r})) コマンドを利用すると楽だろう. * ((<設定がインストール時に無効になるシステム設定への対処>)) * (()) のみは必要となる. patch コマンドを 利用しているので経験がないと少々難解かもしれない. インストール後に設定を行うようにしても良いかもしれない. * ((<マスタファイルシステムの作成 (本番)>)) * これで完成 (…するはず.) では, 頑張ってくだされ〜. (こんな奇特なことする人もう居ないか…?) =end JA