Slackware14.1アップグレード

Slackware14.1

VirtualBoxを導入して以来、ディストリビューションのアップグレードをサボるようになったのは、失敗してもいつでもカバーできるという安心感からからか。でもいつでもできるというのと、しないというのは雲泥の差(というのは分かっているんだけど)。現存する最古のディストリビューションSlackwareが、ここのところ1年に1回が恒例になりつつあるメジャーなアップグレードをしてSlackware14.1になったのは昨年の11月。以前のSlackware14.0だったから、メジャーではなくマイナーだったので4ヶ月ほど放置プレー。今回は、先週にアップグレードされたPorteus3.0をベースに、Porteus-ja-plusとしてOSC浜名湖で配布するライブDVDを開発するので、重い腰をあげてアップグレード。ディストロのシーラーカンスだけあって、最新のCD/DVDから起動してアップグレードをクリックなんて簡単ではなく、あくまで手作業。
簡単な手順は、Slackware14.1のインストールDVDに収録されているUPGRADE.TXTで説明されていて、以下のとおりやればうまくいくはず。ここで、/rootとあるのはSlackware14.1のインストールCD/DVDをマウントしたところ、つまり/mnt/cdromにマウントしたら、/rootは/mnt/cdromのこと。

  1. シングルユーザモードに移行
  2.     telinit 1
    
  3. glibcシェアライブラリをアップグレード
  4.     upgradepkg /root/slackware/a/glibc-solibs-*.t?z
    
  5. パッケージユーティリティと関連ツールをアップグレード
  6.     upgradepkg /root/slackware/a/pkgtools-*.tgz
        upgradepkg /root/slackware/a/tar-*.tgz
        upgradepkg /root/slackware/a/xz-*.tgz
        upgradepkg /root/slackware/a/findutils-*.txz
    
  7. 新しいパッケージを含めてすべてをアップグレード
  8.     upgradepkg --install-new /root/slackware/*/*.t?z
    
    次のシェルスクリプトをupgradepkg.shとして作成して、/root/で実行すると楽
        #!/bin/sh
        for dir in a ap d e f k kde l n t tcl x xap xfce y ; do
          ( cd $dir ; upgradepkg --install-new *.t?z )
        done
    
  9. /var/log/packagesを次のコマンドで確認して不要なパッケージをremovepkgで削除
  10.     ls -lt | less
    
    removepkgで次のパッケージは確実に削除
        removepkg Terminal aumix kdegames kdemultimedia ksecrets mysql \
          printer-applet quanta rexima scim-bridge xxgdb
    
  11. /etcにある設定ファイルを次のシェルスクリプトをupgradfg.shとして作成して実行
  12.      #!/bin/sh
         cd /etc
         find . -name "*.new" | while read configfile ; do
           if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
             -a ! "$configfile" = "./rc.d/rc.local.new" \
             -a ! "$configfile" = "./group.new" \
             -a ! "$configfile" = "./passwd.new" \
             -a ! "$configfile" = "./shadow.new" ]; then
             cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
               $(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
             mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
           fi
         done
    
    あわせて以下のファイルも確認
        /usr/lib*/man.conf.new
        /usr/share/vim/vimrc.new
    
  13. slackware/kdeiに日本語ローカルファイルがあるので、これをアップグレード
  14.     upgradepkg --install-new *-ja-*t?z
    
  15. 重要! プラットフォームに合わせてinitrdを生成
  16. 64 bitまたは32 bitシングルプロセッサの場合
        /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 3.10.17 | bash
    
    32 bitマルチプロセッサ(SMP)の場合
        /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 3.10.17-smp | bash
    
    ブートローダLILOのときに更新
        lilo
    
  17. マルチユーザモードに戻す
        telinit 3
    
  18. 再起動

これだけなんだけど、日本語環境が書き換えられているので/etc/profile.dにあるlang.sh.bakを元に戻す

    cd /etc/profile.d
    mv lang.sh lang.sh.new
    mv lang.sh.bak lang.sh

日本語キーボードのキーアサインが英語キーボードのままならば、次のコマンドを実行

    setxkbmap -model jp106 -layout jp

あとはお好みで設定を変更 (^^ゞ 僕は梅フォントで表示をさらに見やすくして、いよいよPorteus-ja-plusの開発に!!(今週末に間に合うのか...)
気になったのは、KDEのオフィーススィートのCalligra Suiteの最新版2.7.4が収録されているんだけど、/kdeiにはその日本語ローカルファイルがない。Slackware14.0のときもそうだったので、とらえず古い日本語ローカルファイルの2.4.3版を使って、一部は英語のままで目をつぶっている。Webで探してみても、2.5.4という版はあるみたいだけど最新版はない。Gnome-Officeで開発されているプレゼンツールEaseも、当初から日本語ローカルファイルがない。LibreOfficeは、頑張って日本語チームが翻訳しているから充実しているけど、他のオフィスってLibreOfficeがあるから需要ないのかな。オルタネーティブを大切にしてきた文化が、ここにきて変わってきたように感じるのは気のせいだろうか。