最近のLinuxパソコンはコマンドラインの操作などまるでいらない。あまりの簡単さに「もうLinuxにはフロンティアはない」と悲しむマニアすらいるほどだが、一般にはもちろんその方がいいだろう。
が、Windowsでipconfigやhostsを知っていれば少し便利になるように、Linuxにも「これ知っていれば少し便利」というコマンドがいくつかある。Debian系の update-* もそうだ。そんなわけでいくつか紹介する。
ランレベルという発想がある。つまり「ネットワークなしでユーザはひとり」とか「ネットワークありのマルチユーザ」とか、いわゆる動作モードという奴をレベルで現したものだ。Windowsにも「セーフモード」という奴があるが、これと発想は同じようなものだ。HDDに深刻な問題が起きたりすると、Windowsでセーフモードで起動するように、Linuxでもシングルユーザモード(ランレベル1)で起動したりする。
こういう時「このレベルならこのプログラムを起動する」というのを制御するのがこのupdate-rc.dだ。RedHatなどではchkconfigというコマンドを使うが、用法こそ違うが考え方は同じと思っていい。
apache2を例にとろう。
apache2はDebianでは、以下のように起動する。
$ sudo update-rc.d -f apache2 remove Removing any system startup links for /etc/init.d/apache2 ... /etc/rc0.d/K09apache2 /etc/rc1.d/K09apache2 /etc/rc2.d/S91apache2 /etc/rc3.d/S91apache2 /etc/rc4.d/S91apache2 /etc/rc5.d/S91apache2 /etc/rc6.d/K09apache2 $ sudo update-rc.d -f apache2 defaults Adding system startup for /etc/init.d/apache2 ... /etc/rc0.d/K20apache2 -> ../init.d/apache2 /etc/rc1.d/K20apache2 -> ../init.d/apache2 /etc/rc6.d/K20apache2 -> ../init.d/apache2 /etc/rc2.d/S20apache2 -> ../init.d/apache2 /etc/rc3.d/S20apache2 -> ../init.d/apache2 /etc/rc4.d/S20apache2 -> ../init.d/apache2 /etc/rc5.d/S20apache2 -> ../init.d/apache2
一度removeして再設定している。なぜか 上書きはエラーになる ので要注意。
インストールしてあるけど起動したくない、という時は以下のようにする。
$ sudo update-rc.d -f apache2 remove Removing any system startup links for /etc/init.d/apache2 ... /etc/rc0.d/K20apache2 /etc/rc1.d/K20apache2 /etc/rc2.d/S20apache2 /etc/rc3.d/S20apache2 /etc/rc4.d/S20apache2 /etc/rc5.d/S20apache2 /etc/rc6.d/K20apache2 $ sudo update-rc.d -f apache2 stop 20 0 1 2 3 4 5 6 . Adding system startup for /etc/init.d/apache2 ... /etc/rc0.d/K20apache2 -> ../init.d/apache2 /etc/rc1.d/K20apache2 -> ../init.d/apache2 /etc/rc2.d/K20apache2 -> ../init.d/apache2 /etc/rc3.d/K20apache2 -> ../init.d/apache2 /etc/rc4.d/K20apache2 -> ../init.d/apache2 /etc/rc5.d/K20apache2 -> ../init.d/apache2 /etc/rc6.d/K20apache2 -> ../init.d/apache2
ひとつ注意。
ブート時に起動させないためなら、removeだけでも起動しなくなる。
だがその方法は早計である。なぜなら、一回でもaptitudeやapt-getでupgradeすると「あれ、起動設定がないじゃん」と賢いインストーラが気を利かせて作ってくれるからだ。だから「これは起動しなくていいんだ」と明示的に教えなくてはならない。
なお、プログラムによっては/etc/defaultで起動設定を止める事もできる。たとえばSMTP認証ライブラリは、/etc/default/saslauthdに以下を指定すれば止められる。
START=yes
だがこの方法はすべてに通用するわけではない。upadte-rc.d で止めるべきだ。
/etc/alternatives配下の設定をいじる。よく頼まれるのは以下だった。
$ update-alternatives --config editor
これで標準エディタを変更する。これにより、crontab -e時に起動するエディタを変更する事もできる。
同じように、www-browser でコンソールブラウザを変更したり、javaでSunのJavaを使うかgcjを使うかを選択できたりもする。いろいろ試してほしい。
なお以下は112版の例。適当なDebianではこれくらいupdate-*が入っている事もある。サーバではあまり使わないものも少なくないが、見てみると使えそうなものもある。
# update- (ここでTABを押す) update-alternatives update-fonts-dir update-mime update-anthy-dics update-fonts-scale update-mime-database update-app-install update-gconf-defaults update-modules update-binfmts update-gdkpixbuf-loaders update-notifier update-boinc-applinks update-grub update-openoffice-dicts update-ca-certificates update-gtk-immodules update-pangox-aliases update-catalog update-icon-caches update-passwd update-default-aspell update-inetd update-pciids update-default-ispell update-initramfs update-perl-sax-parsers update-default-wordlist update-ispell-dictionary update-python-modules update-desktop-database update-java-alternatives update-rc.d update-dictcommon-aspell update-language update-texmf update-fmtutil update-locale update-updmap update-fontlang update-manager update-usbids update-fonts-alias update-menus update-xmlcatalog