6

リモート端末の emacs を 23-snapshot にアップグレードしました。そこには root 権限がなかったので、'prefix' をホーム ディレクトリのフォルダーに設定して 'make install' を実行しました。emacs を起動すると、「ロード ファイルを開けません: エンコードされた kb」というエラーが表示され、また、dired を実行したり、cc モードをロードしたりできません。「--no-site-file」、「-Q」、「-q」で開始しようとしましたが、すべて同じ問題があります。私の .emacs は空です。助言がありますか?

ご協力いただきありがとうございます。

よろしく、ニシット

更新: これらは、「emacs」を引数なしで実行しようとしたときに表示されるメッセージです。

Warning: arch-dependent data dir (/usr/local/libexec/emacs/23.0.93/x86_64-unknown-linux-gnu/) does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/site-lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/site-lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/leim' does not exist.

その64ビットシステム。Emacs のソース コードは、次を使用して cvs から取得されました。

cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/emacs co emacs

update2: Charlie と Trey の回答に感謝します。「make install」は飛ばして、しばらくは src/emacs を使い続けることにします。乾杯。

4

7 に答える 7

4

私にとって、このエラーprefixは、Makefile の変数を変更する代わりに次のことを行ったときに消えました。

./configure --prefix=/my_special_path/usr/local
于 2009-08-28T20:09:39.293 に答える
2

私の知る限り、make installシステム全体にパッケージをインストールする場合に必要です。Prefix はシステム全体のインストールのプレフィックス パスを定義するだけですが、適切なディレクトリ階層 (bin/、/lib、/share など) が必要です。make単純に CVS Emacs を使用したい場合は、手順の直後に実行できます。たとえば、私の Emacs のソース コードは にあり~/src/emacs/、入力するだけ~/src/emacs/src/emacsで Emacs を実行できます。

于 2009-05-21T05:04:07.917 に答える
2

「encoded-kb.el」は EMACS Lisp ディレクトリの標準国際化コードにあるため、何かが正しいパスを取得していません。あなたのロードパスはどこかにホースで接続されています。makefile にはフックがあり、これを修正するために load-path を明示的に設定できます。

起動後にロードパスをダンプしてみて、(pp load-path)実際に何が表示されているかを確認してください。それを評価するには、次のように入力します

(pp load-path)^j

あなたの*scratch*バッファに。そのバッファは、lisp-interaction モードでなければなりません。(^jControl-j、別名Cj)はそれを評価するように言います。そして、ppリストをきれいに印刷します。

于 2009-05-21T04:59:53.830 に答える
1

AIX で emacs 23.1 をビルドしているときに、同じ問題に遭遇しました。私の場合、emacs を使用している開発者は私だけだったので、自分のディレクトリに emacs をインストールしたかったのです。この問題は、configure を実行する前に src/epaths.in ファイル内のパスを変更することで解決できます。Configure はこのファイルを使用して epaths.h を作成します。--prefix= パラメーターは、epaths.in ファイル内のパスを変更しません。--prefix= を使用して epaths.in ファイルを変更すると、問題が修正されました。

于 2010-01-21T17:27:28.027 に答える