truc bizarre avec emacs: require

truc bizarre avec emacs: require - Logiciels - Linux et OS Alternatifs

Marsh Posté le 30-03-2003 à 00:38:24    

j'ai un rpoblème bizarre.
 
dans mon .emacs j'ai un require pour un fichier (le mode mtorus pour ce qui connaisse). Il n'y a aucun problème, tout fonctionne bien sous mon compte. par contre, si je lance emacs en root, j'obtiens ce message
 

Debugger entered--Lisp error: (file-error "Cannot open load file" "mtorus" )
  require(mtorus)
  eval-buffer(#<buffer  *load*> nil "~benoit/.emacs" nil t)
  load-with-code-conversion("/home/benoit/.emacs" "~benoit/.emacs" t t)
  load("~benoit/.emacs" t t)
  #[nil " # un bytecode que HFR peut pas afficher
  command-line()
  normal-top-level()


 
pourtant mon root/.emacs est vide. et chose étrange, si j'enlève ce require de mon ~/.emacs, emacs@root n'a plus de problème
 
une diée?

Reply

Marsh Posté le 30-03-2003 à 00:38:24   

Reply

Marsh Posté le 30-03-2003 à 10:50:29    

++Taz a écrit :

j'ai un rpoblème bizarre.
 
dans mon .emacs j'ai un require pour un fichier (le mode mtorus pour ce qui connaisse). Il n'y a aucun problème, tout fonctionne bien sous mon compte. par contre, si je lance emacs en root, j'obtiens ce message
 

Debugger entered--Lisp error: (file-error "Cannot open load file" "mtorus" )
  require(mtorus)
  eval-buffer(#<buffer  *load*> nil "~benoit/.emacs" nil t)
  load-with-code-conversion("/home/benoit/.emacs" "~benoit/.emacs" t t)
  load("~benoit/.emacs" t t)
  #[nil " # un bytecode que HFR peut pas afficher
  command-line()
  normal-top-level()


 
pourtant mon root/.emacs est vide. et chose étrange, si j'enlève ce require de mon ~/.emacs, emacs@root n'a plus de problème
 
une diée?


 
y a peut etre un lien entre /etc/.emacs (ou un truc du genre) et le .emacs du compte benoit ;)

Reply

Marsh Posté le 30-03-2003 à 10:57:37    

non. spa ça

Reply

Marsh Posté le 30-03-2003 à 11:08:01    

ce que je comprens pas, c'est que le /root/.emacs n'a pas d'effet.
 
je crois que je viens de comprende. quand je lance emacs depuis un shell, mais qui n'est pas un login shell (comme ctrlatlF1), unemacs appartenat à root est effectivement lancé, mais il s'exécute en tant que benoit. pourtant les doits sont correct. je fais quoi?

Reply

Marsh Posté le 30-03-2003 à 11:09:31    

++Taz a écrit :

ce que je comprens pas, c'est que le /root/.emacs n'a pas d'effet.
 
je crois que je viens de comprende. quand je lance emacs depuis un shell, mais qui n'est pas un login shell (comme ctrlatlF1), unemacs appartenat à root est effectivement lancé, mais il s'exécute en tant que benoit. pourtant les doits sont correct. je fais quoi?


 
c est kan meme tres chelou ton histoire !! :pt1cable:  
 
et en lancant un autre shell, ca merde tjs ??

Reply

Marsh Posté le 30-03-2003 à 11:13:20    

oui
 
edit: c bien simple. quand je lance emacs en root depuis un shell appartenant à un utilisateur autre, c'est le .emacs de cet utilisteur qui est utilisé


Message édité par Taz le 30-03-2003 à 11:14:37
Reply

Marsh Posté le 30-03-2003 à 11:40:19    

++Taz a écrit :

oui
 
edit: c bien simple. quand je lance emacs en root depuis un shell appartenant à un utilisateur autre, c'est le .emacs de cet utilisteur qui est utilisé


 
je sais !!!!
 
en fait y doit y avoir une histoire de su et pas su -
su (ou su - je sais plus) ne modifie pas les var d env (notemment) pour le root (il garde celle du user ki a fait le su)
 
ca peut venir de la je pense ;)

Reply

Marsh Posté le 30-03-2003 à 12:34:54    

yes!
 
je vois qu'une solution alors
 

dir=$(pwd);
su - -c "cd $dir; exec bash";


 
edit: ou mieux
su -l


Message édité par Taz le 30-03-2003 à 12:39:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed