2009-05-21 5 views
4

Я обновил emacs на удаленном терминале до 23-моментального снимка. Поскольку у меня не было прав root, я сделал «make install» с префиксом, установленным в папку в моем домашнем каталоге. Теперь, когда я запускаю emacs, он выдает сообщение об ошибке «Не могу открыть файл нагрузки: encoded-kb», он также не может запустить dired или загрузить cc-mode. Я попытался запустить его с '-no-site-file', '-Q', '-q', все они имеют ту же проблему. Мои .emacs пусты. Какие-либо предложения?Emacs не может загрузить свои загружаемые файлы

Благодарим за помощь.

С уважением, Nishith

Update: Это сообщения, которые я получаю, когда я пытаюсь не запускать '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:[email protected]:/sources/emacs co emacs 

Update2: Спасибо Чарли и Трея за ваши ответы. Я думаю, что я пропущу «make install» и придерживаюсь использования src/emacs. Cheers.

+0

Можете ли вы показать немного больше сообщений, которые вы получаете при запуске Emacs? –

ответ

1

AFAIK, make install необходим в случае, если вы хотите установить пакет по всей системе. Префикс определяет только префиксный путь этой общесистемной установки, но по-прежнему требует правильной иерархии каталогов (bin /,/lib,/share и т. Д.). Если вы просто хотите использовать CVS Emacs, вы можете запустить его сразу после процедуры make. Например, исходный код Emacs находится по адресу ~/src/emacs/, и я могу просто ввести ~/src/emacs/src/emacs для запуска Emacs.

2

«encoded-kb.el» находится в стандартном коде интернационализации в каталогах EMACS lisp, поэтому что-то не получает правильный путь. Ваш путь загрузки где-то где-то. В make-файле есть крючки, чтобы вы могли явно указать путь загрузки, чтобы исправить это.

Попробуйте сбросить свою загрузочную траекторию после запуска, скажем (pp load-path) и посмотреть, на что он действительно смотрит. Для того, чтобы оценить, что тип

(pp load-path)^j 

в вашем *scratch* буфере. Этот буфер должен быть в режиме lisp-взаимодействия. ^j (Control-j, aka C-j) говорит, чтобы оценить его. и pp будет довольно печатать список.

+0

Как использовать pp load = path? – Nishith

+0

При этом я получаю сообщение об ошибке 'Не удается открыть файл загрузки: debug' – Nishith

3

Для меня эта ошибка исчезла, когда я вместо того, чтобы изменить переменную prefix в Makefiles, сделал:

./configure --prefix=/my_special_path/usr/local 
+0

+1 Это то, что вы должны были сделать, если хотите неглобальную установку. –

1

Я столкнулся с этой же проблемой, делая сборку из Emacs 23.1 на AIX. В моем случае я хотел установить emacs в моем каталоге, так как я был единственным разработчиком, использующим emacs. Проблема может быть решена путем изменения путей в файле src/epaths.in до запуска configure. Configure использует этот файл для создания epaths.h. Параметр --prefix = не изменяет пути в файле epaths.in. Использование -prefix = и модификация файла epaths.in исправили мои проблемы.

2

В моем случае мой MacOSX просто указывал на старую версию Emacs, я не знаю почему. Поэтому, когда я открываю его на графическом интерфейсе, все было в порядке, но когда я попытался открыть его на терминале, я получил эту ошибку.Итак, я сначала найти, где ярлык указывал и исправили /usr/bin/emacs этот путь:

$ emacs --version 
GNU Emacs 22.1.1 
Copyright (C) 2007 Free Software Foundation, Inc. 
GNU Emacs comes with ABSOLUTELY NO WARRANTY. 
You may redistribute copies of Emacs 
under the terms of the GNU General Public License. 
For more information about these matters, see the file named COPYING. 
$ whereis emacs 
/usr/bin/emacs 
$ sudo rm /usr/bin/emacs 
$ sudo ln -s /usr/local/Cellar/emacs/HEAD/bin/emacs /usr/bin/emacs 
$ emacs --version 
GNU Emacs 24.4.50.1 
Copyright (C) 2014 Free Software Foundation, Inc. 
GNU Emacs comes with ABSOLUTELY NO WARRANTY. 
You may redistribute copies of Emacs 
under the terms of the GNU General Public License. 
For more information about these matters, see the file named COPYING. 
+0

Работал для меня. Благодарю. – avichalp

1

Я столкнулся с этой же проблемой, делая сборку из Emacs 25.0.92 на Windows 7.

D:\emacs\bin>emacs 
Warning: arch-dependent data dir 'd:/emacs/libexec/emacs/24.5/x86_64-w64-mingw32/': Invalid argument 
Warning: arch-independent data dir 'd:/emacs/share/emacs/24.5/etc/': Invalid argument 
Warning: Lisp directory 'd:/emacs/share/emacs/24.5/site-lisp': Invalid argument 
Warning: Lisp directory 'D:/emacs/share/emacs/24.5/lisp': Invalid argument 

И я нашел проблему. Существует ключ системного реестра: HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs, который определяет путь загрузки EMACSLOADPATH.

Я просто удалю раздел реестра, чтобы решить эту проблему.