2009-08-27 11 views
1

Mon ordinateur de travail (Ubuntu 8.10) a installé la version 1.0pre4 de CEDET et j'essaye d'installer la dernière version de CEDET (1.0pre6) dans ma section locale répertoire (l'objectif ultime, l'amélioration de la BCE à la nouvelle version). Malheureusement, l'installation debian/ubuntu par défaut initialise les paquets système pour CEDET et ECB avant l'appel de mon fichier .emacs, et les fichiers 1.0pre6 essayent alors de charger les erreurs de jet en essayant d'utiliser des symboles non définis en 1.0. pre4. (Voir this mailing list thread à propos de quelqu'un d'autre signalant le même problème.)Installation de CEDET 1.0pre6 en tant qu'utilisateur tout en conservant le paquet CEDET 1.0pre4 deb installé

J'ai d'abord essayé manuellement de recharger les paquets fournis par CEDET dans mes .emacs, mais l'un d'eux ne peut pas être rechargé deux fois.

J'essaie maintenant la commande unload-feature. Lorsque je tente de décharger CEDET, je reçois l'erreur:

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

Mais il n'y a pas de fonction ecb pour décharger. Il existe une fonctionnalité ecb-autoloads, qui semble être fournie par /etc/emacs/site-start.d/55ecb.el, mais la bibliothèque semble également en dépendre. Je pense que je peux soit faire en sorte qu'Emacs décharge le système ECB à l'échelle du système, soit ajouter la majeure partie du contenu de la configuration à l'échelle du système au début de mon fichier .emacs, en abandonnant le chargement ECB et CEDET . Cette dernière semble désordonnée, laide et instable. Je préférerais faire la première, si je savais comment. Ou peut-être quelqu'un a une meilleure solution à ce problème?

+0

Ceci est probablement si évident que vous l'avez déjà essayé mais ne pouvez-vous pas simplement demander à vos administrateurs de désinstaller les paquets CEDET sur votre système? –

+0

Oui, c'est évident, mais j'ai pensé qu'il devrait y avoir un moyen de contourner le problème. Mais nous avons depuis mis à jour les ordinateurs et le sysadmin a oublié de réinstaller cedet, donc je ne lui ai pas rappelé. (J'étais le seul à l'utiliser quand même.) – AFoglia

Répondre

2

Ne sachant pas comment votre Emacs est installé, il est difficile d'identifier une solution. La première chose que je vais essayer est de désactiver le chargement de la site file

emacs --no-site-file 

pour voir si elle est chargée à partir de là. Il peut également être chargé dans la bibliothèque default, mais puisqu'il est chargé avant votre .emacs, et default est chargé par la suite, ce n'est probablement pas le coupable.

Si vos admins dumped Emacs avec CEDET déjà chargé, vous n'avez pas de chance, et vous devrez certainement rouler les vôtres. Cela dit, le téléchargement, la construction et l'installation d'Emacs sont aussi faciles que n'importe quel autre logiciel. Si je me souviens, ce sont les étapes: gtar xfz emacs-23.1.tar.gz; cd emacs-23.1; ./configure; gmake; gmake install.


En réponse au commentaire (que vous voulez charger encore le reste de site-start), je vais essayer les éléments suivants:

  1. Parlez à qui administre votre système pour les amener à fixer le site -start (le nom de la bibliothèque est stockée dans la variable site-run-file) pour ne pas charger ce genre de choses, mais au lieu de mettre ce genre de choses dans default (qui est chargé après.emacs de l'utilisateur)
  2. en attendant # 1 pour résoudre (si jamais elle ne), invoquez Emacs comme si

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

où hack.el contient quelque chose comme

;;; 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 

Pour trouver le site-run-file, utilisez M-x find-library et le nom enregistré au site-run-file. Si vos admins sont des utilisateurs vi et ne connaissent rien à Emacs (comme le mien était à mon ancien poste), vous pouvez soit les éduquer et espérer le meilleur, ou punt et commencer à rouler les vôtres.

+0

J'ai déjà essayé ça avant de poster. Cela arrête le chargement des paquets ECB et CEDET à l'échelle du système, mais désactive également le chargement de tous les autres paquets emacs à l'échelle du système, ce qui signifie que je devrai les ajouter manuellement, et tous les autres paquets ajoutés à l'avenir. mon fichier .emacs. Je préférerais trouver un moyen de remplacer le chemin de chargement emacs avant de charger les paquets. En regardant les options, je devrais théoriquement pouvoir utiliser --no-site-file, définir mon chemin de chargement, puis appeler site-start.el. Mais dans Ubuntu/Debian ce fichier est vide, donc je ne sais pas où et comment il est appelé. – AFoglia

1

Je sais que c'est une question plutôt ancienne mais j'ai récemment rencontré ce problème avec Ubuntu 13.10 en essayant d'installer CEDET 1.1.

J'avais précédemment installé le paquet ecb, qui était fourni avec /etc/emacs/site-start.d/50ecb.el et provoquait le chargement de la version de CEDET fournie avec Emacs23 avant de traiter mon fichier .emacs.

Alors, tout ce que je devais faire pour résoudre ce problème est de purger le paquet bce de mon système comme suit:

sudo apt-get purge ecb 

et maintenant ma version locale de CEDET pourrait être chargée à la place en suivant les instructions est venu dans le fichier INSTALL de CEDET.