[ トップページ / メモ書きリスト ]

VMWare ゲスト OS の Debian を Sarge へアップグレード


  1. 概要
  2. アップデートのマニュアル
  3. バックアップ
  4. スナップショットの保存
  5. ログ取り
  6. /etc/apt/sources.list をクリーンに
  7. dselect によるアップグレード
  8. インストール時の質問
  9. エラー発生源の解除
  10. 再起動
  11. X のインストール
  12. スナップショットの保存
  13. Emacs の設定
  14. apt の sources.list の復帰
  15. ruby 関連のインストール
  16. dennou-ruby 周りのパッケージのインストール & アップデート
  17. tex 関連のパッケージの再インストール
  18. w3m 関連のインストール
  19. 備考

概要

以下は、VMWare のゲスト OS としての Debian GNU/Linux woody を sarge にアップデートした際のメモ書きである。 VMWare のバージョンは 4 である。

アップデートのマニュアル

以下のサイトに「Debian リファレンス」がある。

この中の、「第 5 章 - stable, testing, 又は unstable ディストリビュー ションへのアップグレード」を見る。

なお、Sarge からアップデートを行うには、aptitude というツールを 用いることも可能である。詳しくは 備考 aptitude を用いたアップデート を参照してほしい。

バックアップ

不測の事態に備え、システムファイルのバックアップを取っておくことを 進める。それにより、万が一アップグレードに見事失敗しても、復帰する ことが可能である。

スナップショットの保存

スナップショットをとる。これにより、にっちもさっちもいかなくなったり、 「あの時ああしておけば…」的な場合に元に戻せる。(ただし、VMWare Ver 4 ではスナップショットは1つしかとれないので注意されたし)

ログ取り

script コマンドを使ってログを取っておく。これで以降のメッセージは 全て ~/update-to-sarge.typescript に保存される。

$ script -a ~/upgrade-to-sarge.typescript

/etc/apt/sources.list をクリーンに

まず stable 用のリポジトリのクリーンなリストを取得する。 その際、元々のソースリストのバックアップを取るのを忘れずに。

# cd /etc/apt
# cp -f sources.list sources.list.org_2005-03-20
# :>sources.list
# apt-setup noprobe

apt-setup では、どこからインストールを行うか聞いてくるが、 「http」を選択する。サーバは最寄のものでよい。

testing にアップグレードしたい場合、この新しいリストに testing ソース を追加する。

# cd /etc/apt
# grep -e "^deb " sources.list >srcs
# :>sources.list
# cp -f srcs sources.list
# sed -e "s/stable/testing/" srcs >>sources.list
# apt-get update
# apt-get install apt apt-utils

なお、apt-get update の際、以下のようなメッセージが表示される場合があ る。

E: Dynamic MMap ran out of room
E: Error occured while processing planner (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/dennou-k.gaia.h.kyoto-u.ac.jp_library_Linux_debian_dists_testing_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

この場合には、以下のコマンドを実行し、キャッシュの容量を増やし、 再度 update をトライすること。

# echo "APT::Cache-Limit 12582912;" >> /etc/apt/apt.conf

なお、この設定で元々の設定は失われてしまう。

dselect によるアップグレード

システムに -dev パッケージなどを含む多くのパッケージが存在する場合、 dselect を使用した次のような手段を用いたきめの細かいパッケージ制御が 望ましい。

まず、アップグレード前には常にこれを実行する。

# dselect update

追加パッケージを選択する。

# dselect select

dselectを起動した時、現在の全パッケージが選択される。 Depend, Suggest, そして Recommends に基づく 追加パッケージがある場合、dselect が入力を促すかもしない。 パッケージを追加したくない場合は、ただ Q を 押せば、 dselect は再び終了する。

そして、以下のコマンドを実行すると、いよいよ本番である。

# dselect install

なお、この際、以下のパッケージが削除されてしまう。ものによっては また後でインストールする必要が出てくるだろう。

cjk-latex drb dvi2ps-fontdata-bsr dvilib2 dvipsk-ja galeon
galeon-common gave gconf2 gdk-imlib-dev gphys jbibtex-base
jbibtex-bin jdvi2kps jtex-base jtex-bin libgconf2-4 libgimp1.2-dev
libgimpprint-dev libgtk-common libgtk1.2-dev libgtk2.0-0
libgtk2.0-common libmutexm-ruby libpango-common libpango1.0-0
libpango1.0-common libxaw6-dev numru-units ptex-base ptex-bin
ptex-jtex racc racc-runtime ruby-dev tcsh-i18n tetex-bin tetex-dev
tetex-extra w3m-ssl wmakerconf xbase-clients xdvik-ja xf86setup
xgdvi xlib6g-dev xlibs-dev xpdf-reader

インストール時の質問

Configuring Flex

スキャナは使わないので 「No」

ca-certificates configuration

共通 CA 認証用 PEM ファイルを信用するということで「yes」

Configuring Canna

一応動かすので、まずは「Yes」

Do you want to connect to the Canna server from remote host?

という問いには「No」

Configuring IM

IM は利用しないので、

Use imget with maildir?

に対して「No」

Configuring Libusb-0.1-4

以下の忠告を受ける。

libusb not functional

It appears that your kernel is not compiled with USB support. As a
result, libusb will not be functional on your system.

update-passwd

It is highly recommended that you allow update-passwd to make these
changes (a backup file of modified files is made with the extension
.org so you can always restore the current settings).

May I update your system? [Y/n]

と問われるので、「Y」を選択。

エラー発生

いくつかのパッケージインストール後、以下のようなメッセージが表示される。

以下のパッケージの処理中にエラーが発生しました:
 /var/cache/apt/archives/flex_2.5.31-31_i386.deb
 /var/cache/apt/archives/vflib2-dev_2.25.1-18_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
展開中にエラーが発生しました。インストールされたパッケージを
設定します。これにより、エラーが複数出るか、依存関係の欠如に
よるエラーが出るかもしれません。これには問題はなく、上記のメッセージ
が重要です。これを修正して [I]nstall を再度実行してください
enter を押すと続行します。

いずれにせよ、一時停止なので Enter を押す。 後に エラー発生源の解除 で解決する。

libgtk1.2-common

設定ファイル`/etc/gtk/gtkrc.zh_CN'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** gtkrc.zh_CN (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

esound-common

設定ファイル`/etc/esound/esd.conf'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** esd.conf (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

update-modules

WARNING: you already have an /etc/modules.conf file which has not
been generated by update-modules. Debian now uses a new system which
uses multiple files in the /etc/modutils directory. See the manpage
for update-modules for more information on this setup.

Please check all changes you made in /etc/modules.conf and either
apply them to the provided files in /etc/modutils or add your own
files there. Then run update-modules.

Press [ENTER] to continue

という忠告を良く聞く。

xfs-xtt

設定ファイル`/etc/X11/fs-xtt/config'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** config (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」を押すと以下のように表示される。

 
--- /etc/X11/fs-xtt/config      2002-06-25 06:23:53.000000000 +0900
+++ /etc/X11/fs-xtt/config.dpkg-new     2004-02-20 01:40:25.000000000 +0900
@@ -5,8 +5,8 @@
 client-limit = 10
 # when a font server reaches its limit, start up a new one
 clone-self = on
-# log messages to /var/log/xfs-xtt/xfs-xtt.log (if syslog is not used)
-error-file = /var/log/xfs-xtt/xfs-xtt.log
+# log messages to /var/log/fontservers/xfs-xtt.log (if syslog is not used)
+error-file = /var/log/fontservers/xfs-xtt.log
 # log errors using syslog
 use-syslog = on
 # turn off TCP port listening (Unix domain connections are still permitted)
@@ -19,8 +19,7 @@
             /usr/lib/X11/fonts/100dpi/:unscaled,
             /usr/lib/X11/fonts/75dpi/:unscaled,
             /usr/lib/X11/fonts/Type1/,
-            /usr/lib/X11/fonts/Speedo/,
-            /usr/X11R6/lib/X11/fonts/TrueType/
+            /usr/lib/X11/fonts/Speedo/
 # in decipoints
 default-point-size = 120
 # x1,y1,x2,y2,...

エラーの出力先が変わるので、「y」を押しておく。ただし、

/usr/X11R6/lib/X11/fonts/TrueType

が消えていることに注意。後で対応すべきかもしれない。

groff-base

設定ファイル`/etc/groff/man.local'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** man.local (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

tcsh

設定ファイル`/etc/csh.cshrc'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** csh.cshrc (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

ただし、PATH の設定とメールに関する環境変数が消滅するので 必要ならば、後で以下の4行を追加すること。

setenv PATH /usr/local/bin:/usr/bin:/bin:/var/qmail/bin
setenv MAIL $HOME/Mailbox
setenv MAILDROP $HOME/Mailbox
setenv MAILDIR $HOME/Maildir/

ntpdate

設定ファイル`/etc/init.d/ntpdate'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** ntpdate (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックしたところ、書式が大きく変わっているので、「y」

ただし、指定先の ntp サーバが強制的に

pool.ntp.org

に変更される。元の

ntp.nc.u-tokyo.ac.jp

に戻すには、後で /etc/init.d/ntpdate の "NTPSERVERS" に上記のサーバを 代入すること。

また、以下のようにも問い合わせられる。

設定ファイル`/etc/default/ntpdate'
 ==> あなたかスクリプトによって設定ファイルが作成されています。
 ==> パッケージメンテナが提供するパッケージにもこのファイルが存在します。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** ntpdate (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックしたところ、書式が大きく変わっているので、「y」

ただし、指定先の ntp サーバが強制的に

pool.ntp.org

に変更される。元の

ntp.nc.u-tokyo.ac.jp

に戻すには、後で /etc/default/ntpdate の "NTPSERVERS" に上記のサーバを 代入すること。

w3m

設定ファイル`/etc/w3m/config'
 ==> あなたかスクリプトによって設定ファイルが作成されています。
 ==> パッケージメンテナが提供するパッケージにもこのファイルが存在します。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** config (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

Tgif

設定ファイル`/etc/X11/app-defaults/Tgif'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** Tgif (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

続けて以下のように問い合わせられる。

設定ファイル`/etc/X11/ja_JP.eucJP/app-defaults/Tgif'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** Tgif (Y/I/N/O/D/Z) [デフォルト=N] ?

これも上記同様、「D」でチェックして問題なさそうなので、「y」

さらに、

設定ファイル`/etc/X11/ru/app-defaults/Tgif'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** Tgif (Y/I/N/O/D/Z) [デフォルト=N] ?

これも上記同様、「D」でチェックして問題なさそうなので、「y」

xlockmore

設定ファイル`/etc/X11/Xresources/xlockmore'
 ==> あなたかスクリプトによって設定ファイルが作成されています。
 ==> パッケージメンテナが提供するパッケージにもこのファイルが存在します。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** xlockmore (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

canna

設定ファイル`/etc/canna/dics.dir.d/00canna.dics.dir'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** 00canna.dics.dir (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックしたところ、自分で加えた設定をただ削除するだけの 変更だったので「N」

netbase

設定ファイル`/etc/services'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** services (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

nfs-kernel-server

設定ファイル`/etc/exports'
 ==> あなたかスクリプトによって設定ファイルが作成されています。
 ==> パッケージメンテナが提供するパッケージにもこのファイルが存在します。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** exports (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックしたところ、自分で加えた設定をただ削除するだけの 変更だったので「N」

bind

設定ファイル`/etc/bind/named.conf'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** named.conf (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックしたところ、自分で加えた設定をただ削除するだけの 変更だったので「N」

mew

設定ファイル`/etc/emacs/site-start.d/50mew.el'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** 50mew.el (Y/I/N/O/D/Z) [デフォルト=N] ?

「D」でチェックして問題なさそうなので、「y」

エラー終了

エラー発生 によりエラーが発生しているので、最後には

インストールスクリプト エラー終了ステータス 100 を返しました。
<Enter> を押すと続行します。

と表示される。

しかし、一応それでインストール完了である。

エラー発生源の解除

先に エラー発生 でエラーが発生した、

/var/cache/apt/archives/flex_2.5.31-31_i386.deb
/var/cache/apt/archives/vflib2-dev_2.25.1-18_i386.deb

を削除することでエラーの回避を試みるが、remove が効かず、

# apt-get -f install

しろというので、その通りにする。そして flex パッケージを削除する。

# apt-get remove flex

再度、以下のコマンドを試す。

# dselect install

これで、何もインストールされなくなれば OK 。

一応完了である。

再起動

再起動が可能かどうか、必要なサービスがあがるかどうかをチェックするため、 再起動を行う。

再起動の前に ログ取り でセットしたscript を解除し、 reboot する。

X のインストール

再起動してみると、startx などのコマンドが無くなり、外部から AstecX 端末 などでログインができなくなってしまった。さてはと調べると X のパッケージの 重要部分が無くなっていた。そのため、少々怖いが X をインストールする。

putty か TeraTerm で接続

AstecX の端末はサーバ側の kterm や krxvt を用いようとするが、 現時点ではそれらを利用できないので、putty か TeraTerm でログインする。

スナップショットの保存

スナップショットをとる。これにより、にっちもさっちもいかなくなったり、 「あの時ああしておけば…」的な場合に元に戻せる。(ただし、VMWare Ver 4 ではスナップショットは1つしかとれないので注意されたし)

ただし、これにより woody のときに取ったスナップショットは 消えてしまうので注意。

X インストールのログ取り

再び、ログ取りのために script コマンドを利用する。

$ script -a ~/upgrade-to-sarge.typescript.instX

パッケージインストール

# apt-get install x-window-system-core

すると、以下のようにメッセージが出る。

パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  debconf debconf-i18n debconf-utils dialog fontconfig libfontconfig1
  libice6 liblocale-gettext-perl libncursesw5 libnewt0.51 libsm6
  libtext-iconv-perl libx11-6 libxcursor1 libxext6 libxft1 libxft2
  libxi6 libxmu6 libxmuu1 libxp6 libxpm4 libxrandr2 libxrender1 libxt6
  libxtrap6 libxtst6 slang1a-utf8 ucf whiptail xbase-clients
  xfree86-common xlibmesa-dri xlibmesa-gl xlibmesa-glu xlibs
  xlibs-data
提案パッケージ:
  debconf-doc libterm-readline-gnu-perl libgnome2-perl libqt-perl
  libnet-ldap-perl libgnome-perl twm x-window-manager xlibs-dev xterm
  x-terminal-emulator libglide3
以下のパッケージは「削除」されます:
  libglu1-mesa mesag3
以下のパッケージが新たにインストールされます:
  debconf-i18n fontconfig libfontconfig1 libice6
  liblocale-gettext-perl libncursesw5 libnewt0.51 libsm6
  libtext-iconv-perl libx11-6 libxcursor1 libxext6 libxft1 libxft2
  libxi6 libxmu6 libxmuu1 libxp6 libxpm4 libxrandr2 libxrender1 libxt6
  libxtrap6 libxtst6 slang1a-utf8 ucf x-window-system-core
  xbase-clients xlibmesa-dri xlibmesa-gl xlibmesa-glu xlibs-data
以下のパッケージはアップグレードされます:
  debconf debconf-utils dialog whiptail xfree86-common xlibs
アップグレード: 6 個、新規インストール: 32 個、削除: 2 個、保留: 66 個。
14.4MB のアーカイブを取得する必要があります。
展開後に追加で 35.7MB のディスク容量が消費されます。
続行しますか? [Y/n]

いろいろ入るが「y」で入れる。

インストール時の質問

Configuring Fontconfig

The Freetype font library is able to render fonts with different
methods. Depending on your hardware and the fonts you generally use,
some will give better results.

The autohinter module is the default; it gives correct results on
most configurations. The bytecode interpreter renders fonts very
sharply, and is often a better choice if you are using a cathode-ray
screen. On the other hand, the subpixel rendering method is
optimized for high-quality rendering on most liquid crystal
displays.

With what method should texts be rendered?

         Subpixel rendering (LCD screens)
         Bytecode interpreter (CRT screens)
         Autohinter

LCD なので、「Subpixel rendering (LCD screens)」を選択。

以上でインストール完了。

確認

AstecX の端末でログインし、krxvt や kterm が飛んで来ることを 確かめる。

最後に X インストールのログ取り でセットした script を解除する。

Emacs の設定

emacs21-x パッケージのインストール

デフォルトでは、X をサポートしていない emacs21-nox パッケージがインス トールされている。それを、X をサポートしている emacs21 パッケージに入 れかえる。この 2 つは競合するので、emacs21 パッケージをインストールす るだけで良い。さらに emacs21-el パッケージもインストールする。

# apt-get install emacs21 emacs21-el

Emacs21 用の ~/.emacs 作成

今まで emacs20 用に用いたものを emacs21 "でも" 利用できるように以下の 点を修正する。

大体は加えたの以下の行である。

(defvar run-unix
  (or (equal system-type 'gnu/linux)
      (equal system-type 'usg-unix-v)))
(defvar run-w32
  (and (null run-unix)
       (or (equal system-type 'windows-nt)
           (equal system-type 'ms-dos))))
(defvar run-emacs20
  (and (equal emacs-major-version 20)
       (null (featurep 'xemacs))))
(defvar run-emacs21
  (and (equal emacs-major-version 21)
       (null (featurep 'xemacs))))
(defvar run-meadow (featurep 'meadow))
(defvar run-meadow1 (and run-meadow run-emacs20))
(defvar run-meadow2 (and run-meadow run-emacs21))
(defvar run-xemacs (featurep 'xemacs))
(defvar run-xemacs-no-mule
  (and run-xemacs (not (featurep 'mule))))

;; ツールバーを表示しない (emacs21 以降)
(when run-emacs21 (tool-bar-mode 0))

; カーソルの点滅を止める (emacs21 以降)
(when run-emacs21 (blink-cursor-mode 0))

Emacs21 用の X リソースファイルの編集

Emacs21 では fringe (画面両側で改行マークを表示する場所) があり、 どうやら sarge のバージョンでは fringe は消せないようなので、 X のリソースファイル (AstecX 用のものなので、~/.Xresources にではない) に以下の記述を加える。

! fringe (Emacs21 では画面の両側に付く、改行マークが入る部分) の設定
Emacs*fringe.attributeForeground: black
Emacs*fringe.attributeBackground: Gray50

apt の sources.list の復帰

/etc/apt/sources.list をクリーンに においてクリーンにした sources.list を元に戻す。バックアップしておいた sources.list.org_2005-03-20 から、削除された部分などを 新しいものとマージする。

そんで

$ script ~/upgrade-to-sarge.typescript.aptupgrade.txt

した後に

# apt-get update
# apt-get upgrade

する。すると、以下のようなメッセージが出るが、削除されるものは 無さそうなので、「Y」でインストールする。

以下のパッケージは保留されます:
  a2ps base-config console-common console-tools dcl-c debianutils
  dvi2ps-fontdata-a2n dvi2ps-fontdata-n2a e2fsprogs e2ps fileutils
  gimp1.2 gnome-applets gnome-core gnome-media gnome-panel gnome-panel-data
  gnome-session gnuplot gs gtm imagemagick latex2html libcupsys2
  libgtop1 libldap2 libmagick5 libmng1 libnspr4 libnss3 liborbit2
  libpaperg libsasl7 mozilla-browser mozilla-psm psutils rcalc
  ruby-dcl samba samba-common sane sendmail shellutils smbclient
  smbfs sysvinit tasksel textutils wmbattery xpdf-utils xsane
以下のパッケージはアップグレードされます:
  bind bind-doc debhelper dialog doc-linux-text fttools gnome-icon-theme
  gsfonts-wadalab-common gsfonts-wadalab-gothic gsfonts-wadalab-mincho
  gt4f90io-ffc4 im knews lesstif1 libbonoboui2-common libft-perl
  libgnomeui-common libident libidn11 libmimelib1 lilo login makedev
  man-db mgp numru-misc passwd perl perl-base perl-doc perl-modules
  ruby-narray ruby-narray-dev ruby-narray-miss
  ruby-netcdf screen sdic-edict sdic-gene95 ssh tetex-base util-linux
  util-linux-locales wmaker wmakerconf-data x-ttcidfont-conf xserver-common
  xserver-xfree86 xutils
アップグレード: 48 個、新規インストール: 0 個、削除: 0 個、保留: 51 個。
69.2MB のアーカイブを取得する必要があります。
展開後に追加で 31.7MB のディスク容量が消費されます。
続行しますか? [Y/n] 

インストール時の質問

man-db を設定しています

以下のようなメッセージが出るが、mandb を今すぐ構築するので「はい」を選 択。

man-db のこのバージョンは、いまこのマシンに存在しているマニュアルペー
ジの記述のデータベースと互換性がないので、データベースを再構築する必要
があります。ど れだけのマニュアルページをインストールしたかに依存して、
この構築には多少の時 間がかかります。構築はバックグラウンドで行うので、
ほかのパッケージのインスト ール過程が遅くなるかもしれません。

いまデータベースを構築しなければ、次回に /etc/cron.weekly/mandb が起動
したと きに構築されます。「man」ユーザで「mandb -c」を実行することでも
構築できます。それまでの間、「whatis」コマンドと「apropos」コマンドは
正しく動作しません。

今回のように、バージョンアップに伴って互換性がなくなることは、まれにし
か起こらないはずです。

mandb は、いまデータベースを構築すべきですか?

              <はい>                        <いいえ>

ssh を設定しています

以下のメッセージを読む。

鍵の環境オプションは無効に設定されました

本バージョンの OpenSSH は、公開鍵の環境オプションをデフォルトで無効に
設定しています。LD_PRELOAD などの攻撃を避けるためです。もし 
authorized_keys ファイル でこのオプションを使用している場合、このオプ
ションを除去しない限りはその鍵は 利用できないことに注意してください。

このオプションを再び有効にするには、アップグレード終了後に、
sshd_config(5) マニュアルページの警告事項を読んで、 
/etc/ssh/sshd_config ファイルに「 PermitUserEnvironment yes」と設定し
てください。

                            <了解>

lilo を設定しています

以下のメッセージを読む。

Deprecated parameters in LILO configuration

Deprecated files have been found on your system. You must update the
'install=' parameter in your LILO configuration file (/etc/lilo.conf)
in order to properly upgrade the package.

The new 'install=' options are:

 new: install=bmp
 old: install=/boot/boot-bmp.b


 new: install=text
 old: install=/boot/boot-text.b


 new: install=menu
 old: install=/boot/boot-menu.b or boot.b

                           <了解>

さらに、以下の質問に対して「はい」と答える。

It was detected that it's necessary to run /sbin/lilo in order to
update the new LILO configuration.

WARNING: This procedure will write data in your MBR and may overwrite
some things in that place. If you skip this step, you must run
/sbin/lilo before reboot your computer or your system may not boot
again.

Do you want to run /sbin/lilo now?

                  <はい>                        <いいえ>

tetex-base_2.0.2c-6_all.deb のバグ?

インストールの途中、以下のようなメッセージが出てしまった。 どうやら tetex-base_2.0.2c-6_all.deb に問題があるらしい。

tetex-base を展開し、置換しています...
dpkg: /var/cache/apt/archives/tetex-base_2.0.2c-6_all.deb の読み込みエラーです(--unpack):
 `/usr/share/texmf/tex/latex/graphics/dvipdfm.def'を上書きしようとしています。これはパッケージ dvipdfm にも含まれています。。
dpkg-deb: サブプロセス paste がシグナル (パイプが切断されました) によって強制終了しました。

他のサーバから tetex-base_2.0.2c-6_all.deb をもってきても同様な エラーが生じたため、アップデートを断念。

しょうがないので、以下のようにして、一時的にアップデートをホールド

# echo tetex-base hold | dpkg --set-selections

その後、再度コマンドを入力してインストールを続行。

# apt-get upgrade

man-db

設定ファイル`/etc/manpath.config'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** manpath.config (Y/I/N/O/D/Z) [デフォルト=N] ? 

書式が新しくなるので「Y」だが、以下の2行が消えてしまうので、 アップデート終了後に再度書き込むこと。

MANDATORY_MANPATH                      /var/qmail/man
MANPATH_MAP    /var/qmail/bin          /var/qmail/man
MANDB_MAP      /var/qmail/man          /var/qmail/man/

wmaker

設定ファイル`/etc/X11/WindowMaker/appearance.menu' 
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。    
   どうしますか? 以下の選択肢があります:           
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する         
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** appearance.menu (Y/I/N/O/D/Z) [デフォルト=N] ? 

もう使ってないし、ほとんど変わってないので「y」

再起動

/etc/manpath.config に

MANDATORY_MANPATH                      /var/qmail/man
MANPATH_MAP    /var/qmail/bin          /var/qmail/man
MANDB_MAP      /var/qmail/man          /var/qmail/man/

を書き加える。

lilo が更新されたので再起動する。

ruby 関連のインストール

dselect によるアップグレード において、ruby-dev パッケージが 削除されてしまったので、代替およびパッケージの追加を行う。

# apt-get install ruby1.8-dev ruby-elisp ruby-manual ruby1.8-examples

# apt-get install rdtool rdtool-elisp

# apt-get install rdoc

dennou-ruby 周りのパッケージのインストール & アップデート

dselect によるアップグレード において、gphys パッケージが 無くなったり、まだ woody 版だったりするパッケージがあるので、 それをアップデートする。

おそらく、gave あたりをインストールすれば芋づる式にパッケージが 取得できるはずなので、gave パッケージをインストールする。

# apt-get install gave

以下のようにメッセージが出るが、削除されるものも無いので 「Y」を押す。

以下の特別パッケージがインストールされます:
  gphys libatk1-ruby libgdk-pixbuf2-ruby libglib2-ruby libgtk2-ruby
  libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libpango1-ruby libpango1.0-0
  libpango1.0-common libracc-runtime-ruby numru-units
提案パッケージ:
  ruby-ssl2 ruby-fftw3 ttf-thryomanes ttf-baekmuk ttf-arphic-gbsn00lp
  ttf-arphic-bsmi00lp ttf-arphic-gkai00mp ttf-arphic-bkai00mp
以下のパッケージが新たにインストールされます:
  gave gphys libatk1-ruby libgdk-pixbuf2-ruby libglib2-ruby libgtk2-ruby
  libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libpango1-ruby libpango1.0-0
  libpango1.0-common libracc-runtime-ruby numru-units
アップグレード: 0 個、新規インストール: 14 個、削除: 0 個、保留: 52 個。
7134kB のアーカイブを取得する必要があります。
展開後に追加で 21.5MB のディスク容量が消費されます。

gave の動作確認

$ gave

とコマンドして実行できれば良い。

エラー1

まず実行してみると、以下のエラーが表示される。

/usr/lib/ruby/1.8/numru/gphys/varraynetcdf.rb:6:in `require': No such file to load -- numru/netcdf (LoadError)
      from /usr/lib/ruby/1.8/numru/gphys/varraynetcdf.rb:6

どうやら /usr/lib/ruby/1.8/numru/gphys/varraynetcdf.rb において numru/netcdf.rb というファイルを読み込もうとしてエラーを起こしている らしい。

下記の ruby の LoadError を解決するには? より、調べてみると /usr/lib/site_ruby/1.8/numru/ 以下に netcdf.rb があることがわかったので、 以下のコマンドでパスを追加した。

$ export RUBYLIB=$RUBYLIB:/usr/lib/site_ruby/1.8

エラー2

次に、以下のエラーが表示される。

/usr/lib/site_ruby/1.8/numru/netcdf.rb:2:in `require': No such file to load -- numru/netcdfraw (LoadError)
      from /usr/lib/site_ruby/1.8/numru/netcdf.rb:2

どうやら先ほど読み込んだ /usr/lib/site_ruby/1.8/numru/netcdf.rb において numru/netcdfraw.rb というファイルを読み込もうとしてエラーを起こしている らしい。

下記の ruby の LoadError を解決するには? より、調べてみると /usr/lib/site_ruby/1.8/i386-linux 以下に netcdfraw.so があることが わかったので、以下のコマンドでパスを追加した。

$ export RUBYLIB=$RUBYLIB:/usr/lib/site_ruby/1.8/i386-linux

エラー3

その次は、以下のエラーが表示される。

/usr/lib/ruby/1.8/numru/gave/draw_dcl.rb:2:in `require': No such file to load -- numru/dcl (LoadError)
      from /usr/lib/ruby/1.8/numru/gave/draw_dcl.rb:2

どうやら /usr/lib/ruby/1.8/numru/gave/draw_dcl.rb において numru/dcl.rb というファイルを読み込もうとしてエラーを起こしている らしい。

下記の ruby の LoadError を解決するには? より、調べてみると ruby-dcl パッケージのバージョンが古く、/usr/lib/ruby/1.8/numru/dcl.rb が存在していないことがわかったので、以下のコマンドで ruby-dcl を アップデートした

# apt-get install ruby-dcl

ruby の LoadError を解決するには?

調べ方

調べ方にはいろいろあるが、今回は以下のようにして調べた。

パスの追加

パスを付け加えるのには環境変数 $RUBYLIB にパスを追加すれば よい。

$ export RUBYLIB=$RUBYLIB:<新しいパス>

常にパスを通す場合には ~/.bashrc に記述すること。

さらなる関連パッケージの追加

日本語が表示できる gave のためには ruby-gettext をインストールする。

# apt-get install ruby-gettext

ruby-vtk 使うために、ruby-vtk パッケージもインストールする。

# apt-get install ruby-vtk

tex 関連のパッケージの再インストール

ptex-bin 等々のインストール

dselect によるアップグレード において、tex 関連のパッケージの 多くが削除されてしまったので、復帰する。

# apt-get install ptex-bin dvipsk-ja jbibtex-bin xpdf-reader

パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了    
以下の特別パッケージがインストールされます:
  jbibtex-base lesstif2 libpaper1 libwww0 ptex-base tetex-base
  tetex-bin tetex-extra
  xpdf-common
提案パッケージ:
  jmpost mendexk chktex lacheck rubber
推奨パッケージ:
  tetex-doc
以下のパッケージは「削除」されます:
  dvipdfm
以下のパッケージが新たにインストールされます:
  dvipsk-ja jbibtex-base jbibtex-bin lesstif2 libpaper1 libwww0 ptex-base
  ptex-bin tetex-bin tetex-extra xpdf-reader
以下のパッケージはアップグレードされます:
  tetex-base xpdf-common
アップグレード: 2 個、新規インストール: 11 個、削除: 1 個、保留: 91 個。
32.9MB のアーカイブを取得する必要があります。
展開後に追加で 83.6MB のディスク容量が消費されます。
続行しますか? [Y/n]

インストール中の質問

システムのデフォルトとする紙サイズはどれですか?

「A4」にする。

tetex-bin を設定しています

以下のメッセージを読んでおく。

/etc/texmf/texmf.d/ にあるファイルは名前を変更しなければなりません。

texmf.cnf は以前、/etc/texmf/texmf.d/ にあるすべてのファイルから
update-texmf によって生成されていました。現在、update-texmf は拡張子
'.cnf' を持つファイルのみを読み込むようになっています。

もし /etc/texmf/texmf.d/ に独自のファイルを持っているのであれば、
'.cnf' をその名前に追加して (たとえば、22mymacro を 22mymacro.cnf
とします)、update-texmf を実行する必要があります。

                                 <了解>

次の質問には、まず「show the differences between the versions」 で違いをチェックし、致命的に違わなければ「install the package maintainer's version」を選択。

A new version of configuration file /etc/texmf/dvipdfm/config is
available, but your version has been locally modified.

What would you like to do about config?

        install the package maintainer's version
        keep your currently-installed version
        show the differences between the versions
        start a new shell to examine the situation

次の質問も、上記と同様。

A new version of configuration file /etc/texmf/texmf.cnf is available,
but yourversion has been locally modified.

What would you like to do about texmf.cnf?

            install the package maintainer's version
            keep your currently-installed version
            show the differences between the versions
            start a new shell to examine the situation

                         <了解>

jtex-base jtex-bin のインストール

nruby.sty (ルビ振り用スタイルファイル) などは、jtex-base に含まれる ので jtex-bin と合わせてインストールする。

# apt-get install jtex-bin jtex-base

ただし、インストールだけでは nruby.sty のある /usr/share/texmf/jtex/latex/misc/ にパスが張られないので、 以下では手動でパスを張る方法を記す。

tex のパスに関する参考資料
パスのチェック

スタイルファイルなどへ TeX のパスが通っているのか確認するには、 kpsewhich コマンドを用いる。

$ kpsewhich nruby.sty

このコマンドでパスが返ってくれば、そのファイルへパスが通っている ことになるが、何も返らなければパスが通っていないことになる。

どこにパスが通っているのかを確認

パスのリストは、 /etc/texmf/texmf.cnf に記述してある。 ただし、このファイルは /etc/texmf/texmf.d 以下の *.cnf ファイルから、 update-texmf コマンドで生成されるもの なので、直接編集しないこと。内部の書法に関しては、 tex のパスに関する参考資料 の1つ目の文献を参照のこと。

なお、調べた結果、 /usr/share/texmf/jtex/latex/misc/ へのパスは通っているように見えた。

データベース ls-R

tex のパスに関する参考資料 の1つ目の文献を参照のこと。

これに関しても、データベース /usr/share/texmf/ls-R には nruby.sty は記述されていた。

なお、 ls-R ファイルは上記の参考文献に記されるコマンドでも アップデートされるが、Debian ならば mktexlsr(1) によって 更新することも可能である。

なお、見る限り、ls-R に nruby.sty の記述は存在した。 (ファイル自体も読み込まれれているように見えた)。

あれやこれやとデータベースをいじってみても、やはり解決せず…。

強引に解決

どうやら、 /usr/share/texmf/tex 以下にはパスが通るようなので、 その下から /usr/share/texmf/jtex にシンボリックリンクを張る。

# cd /usr/share/texmf/tex
# ln -s ../jtex jlatex
# mktexlsr

こうすると、jtex 以下のものにもパスが通り、利用可能になった。

dvi ビューアをインストール

# apt-get install xdvik-ja

一応これだけで、フォントは微妙なれど、以下のコマンドで日本語が 含まれた DVI ファイルを見ることができる。

実際のコマンドは、以下の通りである。

$ xdvi-ja sample.dvi

なお、woody 版のバージョン 22.15-k j1.04 と sarge のバージョン 22.84.8 j1.21 では、操作方法がかなり変わっている。

$ man xdvi-ja

の KEYSTROKES の部分で操作法を覚えよう。

ps を見るために

印刷用に dvi => ps 用のツールをインストールするが、その前に ps のビューア をインストールしておく。

# apt-get install gs-ja gv

gv コマンドで PostScript ファイルや EPS ファイルを見ることが可能だが、 そのままだと日本語を見ることができない場合がある、その際には、gv を 起動し、メニューから State → Ghostscript Options を選び、 Interpreter の項目の gs を gs-ja に変更する。

dvi から ps への変換ツールのインストール

ptex-bin 等々のインストール でインストールした dvipsk-ja パッケージがあれば問題ないはずである。 なお、注意として、 dvi2ps-fontdata-a2n dvi2ps-fontdata-a2n パッケージをインストールすると、変換が行えなくなるので注意すること。 その他、必要なフォントはインストールすること

# apt-get install dvipsk-ja dvi2ps-fontdata-bsr dvi2ps-fontdata-ja \
  dvi2ps-fontdata-rrs dvi2ps-fontdata-rsp dvi2ps-fontdata-tbank \
  dvi2ps-fontdata-three

インストールが終わったら、

$ dvips sample.dvi

として、sample.ps が生成されることを確認すること。

dvi から pdf への変換ツール

dvi から pdf への変換ツールとしては dvipdfm があり、これは tetex-bin パッケージに含まれているが、sarge では dvipdfm-cjk および dvipdfm-cjk-cmap パッケージをインストールし、dvipdfmx コマンドで変換する。 他にも、いくつかフォントパッケージをインストールする。

# apt-get install dvipdfmx dvipdfm-cjk dvipdfm-cjk-cmap \
          cmap-adobe-cns1 cmap-adobe-gb1 \
          cmap-adobe-japan1 cmap-adobe-japan2

フォントのインストール中に、「めったに利用しないフォントも多くあるため、 『標準』を選択すればそれらのフォントはインストールしない」という選択 があるので、「標準」を選択する。

これらをインストールしても、おそらく dvi を pdf に変換する際、 以下のようにエラーが生じるはずである。

$ dvipdfmx pedlosky_2005-03-30.dvi

pedlosky_2005-03-30.dvi -> pedlosky_2005-03-30.pdf
[1
** ERROR ** Could not find encoding file "H".

Output file removed.

その場合、dvipdfmx の Readme にもあるように、設定ファイル /etc/texmf/texmf.d/50dvipdfmx.cnf を編集する必要がある。 以下のようにする。

CMAPINPUTS=.;/usr/share/fonts/cmap/adobe-japan1//;/usr/share/fonts/cmap/adobe-japan2//;/usr/share/fonts/cmap/adobe-gb1//;/usr/share/fonts/cmap/gs-cjk-resource//

その後、texmf を更新する。

# update-texmf

最後に変換できるかチェックすること。

フォントを綺麗に

先の設定で、基本的に tex の編集・印刷・PDF 化は問題ないが、 できれば xdvi などで見る際にもフォントが綺麗だと嬉しい。 よって、その設定も行う。

Debian sarge の多書体化に関する参考ページ

<URL:http://www.issendo.jp/html/tools/tips_soft.html>

4) の mulfnt.sh を用いた手法を試した。 基本的にここに載っている方法の通りにすればほとんど問題ないが、 作業自体を以下にいくつか載せておく。

フォントリストの作成

mulfnt.txt をダウンロードし、リストを更新する。 実際には以下のように記述した。

#
# mulfnt.txt: list for multifontization; to be used by 'mulfnt.sh'
#
# Alias : VFlib_Name : TeX_Name : PostScript_Name : Path_to_Font
#
# CAUTION: following fields must correspond each other
# (mulfnt.txt):VFlib_Name      <=> (/etc/defoma/hints/*.hints):X-Family
# (mulfnt.txt):PostScript_Name <=> (/etc/defoma/hints/*.hints):FontName
#
# last modified 30 Dec 2004

########################################################################
# list of all registered font entry
#
allfonts:
	microsoftgothic
	microsoftmincho
	kochigothic
	kochimincho
end:

########################################################################
# font defines
#
#entryname:
#	#1 フォント名(日本語)
#	#2 foundry
#	#3 weight
#	#4 encoding
#	#5 abbreviation
#	#6 VFlib name
#	#7 TeX name
#	#8 postscript name
#	#9 fullpath to font
#end:

microsoftgothic:
	MSゴシック
	Microsoft
	medium
	Unicode
	mgo
	gothic
	msgo
	MicrosoftGothic
#	/usr/share/fonts/truetype/microsoft/msgothic.ttf
	/usr/share/fonts/truetype/msgothic.ttc
end:

microsoftmincho:
	MS明朝
	Microsoft
	medium
	Unicode
	mmin
	mincho
	msmin
	MicrosoftMincho
#	/usr/share/fonts/truetype/microsoft/msmincho.ttf
	/usr/share/fonts/truetype/msmincho.ttc
end:

kochigothic:
	東風ゴシック
	Kochi
	medium
	Unicode
	kgo
	gothic
	kcgo
	KochiGothic-Regular
	/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
end:

kochimincho:
	東風明朝
	Kochi
	medium
	Unicode
	kmin
	mincho
	kcmin
	KochiMincho-Regular
	/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
end:

# end of mulfnt.txt
#
# vim: ts=8:

スクリプトの準備

上記のフォントリストの作成で作成した mulfnt.txt と同じディレクトリに mulfnt.shxtlist.shを ダウンロードする。

フォントの準備

上記の設定ファイルに記された場所にちゃんとフォントがあることを確認。

dvips のための多書体化

ptex-jisfonts パッケージをインストールする。

# jisftconfig add

スクリプトの準備 の mulfnt.sh から得られた文字列を、新たに 作成する /etc/texmf/dvipsj/myfonts.map というファイルに書き込む。

# mulfnt.sh -dvips ALL > /etc/texmf/dvipsj/myfonts.map

そして、既存の /etc/texmf/dvipsj/config.ps'p +psfonts.map' の行のすぐ下 'p +myfonts.map' を追加する。

編集前と後の差分・および編集部分の結果を示しておく。

$ diff -u /etc/texmf/dvipsj/config.ps.org /etc/texmf/dvipsj/config.ps

--- config.ps   2002-04-12 16:21:41.000000000 +0900
+++ /etc/texmf/dvipsj/config.ps 2005-04-17 20:44:38.000000000 +0900
@@ -7,6 +7,10 @@
 % to determine this number. (It will be the only thing printed.)
 m 3500000

+% Execution of external programs is disabled by default. Set
+% to z0 if you want backticks in \special commands enabled.
+z1
+
 % How to print, maybe with lp instead lpr, etc. If commented-out, output
 % will go into a file by default.
 % o |lpr
@@ -39,13 +43,16 @@
 j

 % Configuration of postscript type 1 fonts:
-p psfonts.map
+p +psfonts.map

 % This shows how to add your own map file.
 % Remove the comment and adjust the name:
-% p +myfonts.map
+p +myfonts.map
 p +psfonts.cmz
 p +psfonts.amz
+%-- ptex-jisfonts begin
+p +jis.map
+%-- ptex-jisfonts end

 @ A4size 210mm 297mm
 @+ %%PaperSize: A4


$ cat -n /etc/texmf/dvipsj/config.ps | head -60 | tail -20

41  % this is if you encounter bugs.  (Please report them to
42  % @email{tex-k@@mail.tug.org} if you do.)
43  j
44  
45  % Configuration of postscript type 1 fonts:
46  p +psfonts.map
47  
48  % This shows how to add your own map file.
49  % Remove the comment and adjust the name:
50  p +myfonts.map
51  p +psfonts.cmz
52  p +psfonts.amz
53  %-- ptex-jisfonts begin
54  p +jis.map
55  %-- ptex-jisfonts end
56  
57  @ A4size 210mm 297mm
58  @+ %%PaperSize: A4
59  
60  @ letterSize 8.5in 11in

確認は、dvips による ps ファイルの作成と、ビューア gs/gv による チェックで行う。ただし、場合によっては gv で表示できるフォント自体が 多書体化されていない場合がある。まずは以下の gv の多書体化 を参照せよ。

gv の多書体化

設定ファイルの復帰

どうやら、gv は vfontcap に依存しているらしく、以下の方法が 有効であった。(少々強引だが)。

本来、フォントの設定を行う /etc/vfontcap /etc/vfont/00vflib2 に記述してあるものを update-vfontcap コマンドでアップデートするものであるが、もはやここらへんの設定は 謎めいていて良く分からないので、保存してあった vfontcap を そのまま利用してしまう。

もちろん、中に書いてあるフォントに関しては昔設定を行ったものなので、 その際の設定を引き継いでいる必要がある。

# cd /etc
# mv vfontcap vfontcap_org
# cp ~/Documents/myconf/vfontcap ./
ktest によるチェック

vfontcap がちゃんと呼ばれているかどうかは ktest コマンドで 調べることができる。

$ ktest -f goth
$ ktest -f min

などとすると、vfontcap に記述されるフォントが呼び出される。 「b」で前のページ、「スペース」で次のページに移動し、「q」で終了する。 詳しくは以下のコマンドで参照のこと。

$ ktest --help

最後に、上記の dvips のための多書体化 で作成した ps ファイル を gv で見てみて、チェックして欲しい。

divpdfmx の多書体化

スクリプトの準備 の mulfnt.sh の -dvipdfmx ALL オプションから 得られる出力を /etc/texmf/dvipdfm/cid-x.map の最後に追加する。 これで dvipdfmx が多書体化される。dvipdfmx で作成される pdfファイルを xpdf や acroread で確認する。

# mulfnt.sh -dvipdfmx ALL > tmp.dvipdfmx
# vi /etc/texmf/dvipdfm/cid-x.map

(tmp.dvipdfmx を挿入する)

xdviの多書体化

スクリプトの準備 の mulfnt.sh の -xdvi ALL オプションから 得られる出力を新規に作成する /etc/texmf/vfontmap.d/30ptex-myfonts.map に書き込む。

# mulfnt.sh -xdvi ALL > /etc/texmf/vfontmap.d/30ptex-myfonts.map
# update-vfontmap
ms フォントだけを使うためには

上記の設定では、kochi フォントではなく ms フォントのみを利用する方法を記す。 以下の手順は Debian sarge の多書体化に関する参考ページ には 載っていない。

xdvi は vfontmap を用いており、/etc/texmf/vfontmap.d/ 以下にある *.map ファイルのリストに依存する。実際には、 update-vfontmap コマンドでそれらのファイルをまとめ、 /var/lib/texmf/vfontmap を作成する。

よって、もしも目的のフォントで表示されない場合、 これら/etc/texmf/vfontmap.d/ 以下の *.map の中から 該当するフォント (例えば、kochi-minchokochi-gothic )を探す。 そして、対応するファイルの該当部分のフォントををパスごと ms 系のフォント に置き換える。

最後に update-vfontmap コマンドで /var/lib/texmf/vfontmap を更新する。これでフォントの変更は完了である。

# update-vfontmap

w3m 関連のインストール

dselect によるアップグレード において、https へのアクセスを 可能にする w3m-ssl がなくなってしまうが、sarge の w3m はデフォルトで ssl アクセスを可能にしているので必要ない。

備考

aptitude を用いたアップデート

アップデートのマニュアル (Sarge 以降で行うには)

以下のサイトに「Debian GNU/Linux 3.1 (`sarge') リリースノート (Intel x86 用)」がある。

((<URL:  http://www.debian.org/releases/sarge/i386/release-notes/  >))

この中の、「以前のリリースからアップグレードする」を見る。

今回はこのドキュメントにあるように、apt-get upgrade を用いるのでは なく、aptitude というツールを用いる。 *1

パッケージの状態のチェック

以下のコマンドでパッケージの状態をチェックし、アップグレード可能な状態 になっているかどうか調べる。 以降のコマンドを用いると、不完全インストー ル (Half-Installed) 状態や 設定に失敗 (Failed-Config) 状態など、 エラー 状態にあるパッケージが表示される。

# dpkg --audit

/etc/apt/sources.list の編集

/etc/apt/sources.list の woody を "stable" に変更する。

※ aptitude を用いる場合、"sarge" と記述してはいけない。

また、"woody" というようなコードネームで記述してもいけない。

スナップショットの保存

スナップショットをとる。これにより、にっちもさっちもいかなくなったり、 「あの時ああしておけば…」的な場合に元に戻せる。(ただし、VMWare Ver 4 ではスナップショットは1つしかとれないので注意されたし)

ログ取り

アップデートのマニュアル にある通り、script コマンドを使って ログを取る。

$ script -a ~/upgrade-to-sarge.typescript

*1 ただし、この方法は、少なくとも 2005/03/18 現在、woody から sarge に アップデートするには役に立たなかった…。


Last Updated: 2005/04/19, Since: 2005/03/20 mailto: morikawa_email