[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:11118] Re: Emacs lisp load-path (Re: 「一歩進んだ」本 / one step-forward book ^^;;)
[作業結果のまとめ]
ちょっと進みました。
$ ls -la /var/lib/emacsen-common/installed-flavors
-rw-r--r-- 1 root root 0 Dec 16 00:05 /var/lib/emacsen-common/installed-flavors
ってのが問題のようです。何故こうなったのかは現在は判っていません。
まだまだ、調べないとだめですが。思いつく所は
Emacs20とXEmacs20を一時期両方インストールしていたのだが、Emacs20
をまず、リムーブしており、Mewを入れる前にパージしました。
これが、関係してくるのかも知れません。
[作業したこと]
CD-ROMをマウント。(mount /dev/hdc /cdrom)
mewを探す。(find /cdrom -name "*mew*")
/cdrom/debian/hamm/hamm/binary-i386/mail/mew_1.93b33-1.deb
にあることが判る。
コントロールファイルを取り出す。
(dpkg-deb -e /cdrom/debian/hamm/hamm/binary-i386/mail/mew_1.93b33-1.deb)
実行した結果、./DEBIANが作成された。内容は下記。
$ ls -la
total 14
drwxr-xr-x 2 root root 1024 May 14 1998 .
drwxr-sr-x 10 yab yab 1024 Dec 19 17:53 ..
-rw-r--r-- 1 root root 954 May 14 1998 control
-rw-r--r-- 1 root root 7526 May 14 1998 md5sums
-rwxr-xr-x 1 root root 372 May 14 1998 postinst
-rwxr-xr-x 1 root root 65 May 14 1998 postrm
-rwxr-xr-x 1 root root 65 May 14 1998 prerm
dpkg -i ほにゃらら.deb する時には、多分postinstが実行するのではないか
と あたりを付けて、シェルスクリプトであるpostinstの内容をみる。
postinstがやっていることは、
1.シェルは、実行したコマンドがエラー状態で終了した場合に即座に、終了する
ように設定する。(#!/bin/sh -e)
2. emacsのパッケージインストールスクリプトを引数 mewを与えて起動する。
(/usr/lib/emacsen-common/emacs-package-install mew)
3. 英語/日本語のInfoファイルを作成する。
気になるのは、2.なので調べてみる。
$ ls -la /usr/lib/emacsen-common/
total 13
drwxr-xr-x 3 root root 1024 Dec 8 12:51 .
drwxr-xr-x 59 root root 7168 Dec 14 23:42 ..
-rwxr-xr-x 1 root root 1537 May 16 1998 emacs-install
-rwxr-xr-x 1 root root 1257 May 16 1998 emacs-package-install
lrwxrwxrwx 1 root root 21 Dec 8 12:51 emacs-package-remove -> emacs-package-install
lrwxrwxrwx 1 root root 13 Dec 8 12:51 emacs-remove -> emacs-install
drwxr-xr-x 4 root root 1024 Dec 8 12:50 packages
emacs-package-installは、emacs-package-removeにリンクしているので自分自身
の名前をみて動作を違えているのだろうと予測できる。
この中で
open FLAVORS, "<${var_dir}/installed-flavors" or
die "emacs-package-$action: Couldn't open ${var_dir}/installed-flavors";
my @installed_flavors = <FLAVORS>;
close FLAVORS;
chomp @installed_flavors;
という部分がある。わたしの環境を調べたところ。
$ ls -la /var/lib/emacsen-common/installed-flavors
-rw-r--r-- 1 root root 0 Dec 16 00:05 /var/lib/emacsen-common/installed-flavors
と、なっていた。このため
my $script = $lib_dir . "/packages/$action/$pkg"が作るパス
つまり、$script=/usr/lib/emacsen-common/packages/install/mew
を実行する以下の
my $script = $lib_dir . "/packages/$action/$pkg";
execute($script, 'emacs', @installed_flavors) if -e $script;
my $flavor;
foreach $flavor (@installed_flavors) {
execute($script, $flavor, @installed_flavors) if -e $script;
引数@installed_flavorsがNULLの状態で実行されてしまった。
よって、うまくインストールできてない。
====+====+====+====+====+====+====+====+====+====+====+====+====+====+
yabuki yukiharu (矢吹幸治)
Email: yabuki@xxxxxxxxxxxxxxx
GAA00412@xxxxxxxxxxx
Key fingerprint = 27 96 DD BA FC FF BE 19 E5 60 2F 43 73 85 74 84
====+====+====+====+====+====+====+====+====+====+====+====+====+====+