Установка CEDET 1.0pre6 от имени пользователя с сохранением установленного пакета deb CEDET 1.0pre4 - PullRequest
1 голос
/ 27 августа 2009

На моем рабочем компьютере (Ubuntu 8.10) установлена ​​CEDET версии 1.0pre4, и я пытаюсь установить новейшую версию CEDET (1.0pre6) в моем локальном каталоге (конечная цель - обновить ECB до последней версии).

К сожалению, установка по умолчанию в debian / ubuntu инициализирует общесистемные пакеты для CEDET и ECB перед вызовом моего файла .emacs и файлов 1.0pre6, которые я затем пытаюсь загрузить с ошибками выброса, пытаясь использовать символы, не определенные в 1.0pre4 , (См. эту ветку списка рассылки о том, что кто-то еще сообщил о такой же проблеме.)

Сначала я попытался вручную перезагрузить пакеты, которые CEDET предоставляет в моем .emacs, но один из них не может быть перезагружен дважды.

Я сейчас пробую команду unload-feature. Когда я пытаюсь выгрузить CEDET, я получаю сообщение об ошибке:

 Lisp error: (error "Loaded libraries (\"/etc/emacs/site-start.d/55ecb.el\") depend on /usr/share/emacs22/site-lisp/cedet-common/cedet.elc")

Но нет функции ecb для выгрузки. Существует функция ecb-autoloads, которая предоставляется /etc/emacs/site-start.d/55ecb.el, но библиотека, похоже, также зависит от нее.

Я полагаю, что я могу каким-то образом заставить Emacs выгрузить системный ECB, или я могу каким-то образом добавить большую часть контента из системной конфигурации в начало моего файла .emacs, отбросив загрузку ECB и CEDET.

Последнее звучит грязно, безобразно и нестабильно. Я бы предпочел сделать первое, если бы знал как. Или, может быть, у кого-то есть лучшее решение этой проблемы?

Ответы [ 2 ]

2 голосов
/ 28 августа 2009

Не зная, как установлен ваш Emacs, сложно найти решение. Первое, что я бы попробовал, это отключить загрузку файла сайта

emacs --no-site-file

чтобы посмотреть, загружен ли он оттуда. Он также может быть загружен в библиотеку default, но поскольку он загружен до вашего .emacs, а default загружается впоследствии, это, вероятно, не является виновником.

Если ваши администраторы сбросили Emacs с уже загруженным CEDET, вам не повезло, и вам, безусловно, придется бросить свой собственный.

При этом загрузка, сборка и установка Emacs так же просты, как и любое другое программное обеспечение. Если я помню, это были шаги: gtar xfz emacs-23.1.tar.gz; cd emacs-23.1; ./configure; gmake; gmake install.


В ответ на комментарий (что вы хотите загрузить остальную часть site-start), я бы попробовал следующее:

  1. Поговорите с тем, кто бы ни администрировал вашу систему, чтобы заставить их исправить запуск сайта (имя библиотеки хранится в переменной site-run-file), чтобы не загружать эти вещи, а вместо этого помещать такие вещи в default (который загружается после пользователя .emacs)
  2. В ожидании разрешения # 1 (если оно когда-либо произойдет), вызовите Emacs следующим образом:

    emacs -q --no-site-file -l hack.el

где hack.el содержит что-то вроде

;;; some changes to load-path to put your stuff in front of the load-path`
(if site-run-file
    (load site-run-file t t))
;;; now load your .emacs

Чтобы найти site-run-file, используйте M-x find-library и имя, сохраненное в site-run-file.

Если ваши администраторы - пользователи vi и ничего не знают о Emacs (как, например, у меня на прежней работе), вы можете либо обучить их и надеяться на лучшее, либо начать заниматься своими делами.

1 голос
/ 04 июля 2013

Я знаю, что это довольно старый вопрос, но недавно я столкнулся с этой проблемой в Ubuntu 13.10 при попытке установить CEDET 1.1.

Ранее я установил пакет ecb, поставляемый с /etc/emacs/site-start.d/50ecb.el и вызвавший загрузку версии CEDET, поставляемой в комплекте с Emacs23, перед обработкой моего файла .emacs.

Итак, все, что мне нужно было сделать, чтобы это исправить, это удалить пакет ecb из моей системы следующим образом:

sudo apt-get purge ecb

и теперь моя локальная версия CEDET теперь может быть загружена вместо этого, следуя инструкциям, содержащимся в файле INSTALL CEDET.

...