Emacs relocalisable

Existe-t-il un moyen de créer des emacs sur Linux afin de ne pas intégrer le path d'access dans lequel il a été embedded dans le binary et de le déplacer de manière inoffensive vers un path différent?

C'est-à-dire que si vous construisez avec --prefix=/a/b/c alors déplacez tout vers /d/e/f il ne fonctionnera pas, car cela dépend du path fixe /a/b/c . Je vois la string /a/b/c à l'intérieur du binary lui-même.

Windows emacs peut être installé dans n'importe quel directory et il fonctionne à partir de là, donc je pense que vous pouvez dire à Linux emacs de fonctionner de la même façon, depuis «où que vous soyez assis maintenant».

Nous n'avons pas d'options comme un nom fixe symlink jusqu'à l'arborescence de directorys pointant vers le path de la variable en dessous.

Emacs peut être déplacé la plupart du time sans danger, même si vous ne prenez pas de précautions lors de la compilation. Si les paths codés en dur ne fonctionnent pas, Emacs search les directorys près de l'exécutable.

Emacs essaie de déterminer où se trouve l'exécutable qui l'a invoqué. Il stocke ces informations dans le invocation-directory variables. Disons que c'est /path/to/bin/emacs ; Emacs search les files de données dont il a besoin dans les directorys codés en dur et revient aux directorys dans /path/to .

Vous devez structurer vos directorys de la même manière que la source d'Emacs, plus ou less, avec les directorys toplevel bin , etc , leim , lib-src , lisp , site-lisp . En particulier, au less avec Emacs 23.2, le directory lib-src doit exister (même s'il est vide).

Il y a quelques directorys qu'Emacs ne trouve pas de cette façon. Définissez l'environnement EMACSDATA=/path/to/etc Vous devrez peut-être également configurer INFOPATH .