J'utilise emacs 24.4. J'ai ajouté un grand nombre de packages installés via la directive Mx list-packages sur environ un an d'utilisation. J'aimerais exporter ma liste de packages installés pour une utilisation ailleurs. La copie de mon .emacs me donne quelques erreurs au démarrage, ce qui jogge ma mémoire pour installer certaines choses. Je soupçonne que je pourrais copier le .emacs.d, mais cela semble peut-être une mauvaise idée.
Existe-t-il une procédure ou une directive que je peux émettre pour sauvegarder la liste des packages installés dans un fichier qui peut être utilisé pour les obtenir facilement sur des machines étrangères?
.emacs.d
répertoire (ou de préférence le placer sous contrôle de version) est généralement une bonne idée. (Il est également judicieux de renommer~/.emacs
à~/.emacs.d/init.el
si vous décidez de le faire.)Réponses:
Le répertoire
~/.emacs.d/elpa
contient tous les packages installés aveclist-packages
. Vous pouvez copier ce répertoire.Je voudrais probablement aussi exécuter quelque chose comme
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
signifie ne pas demander,t
signifie forcer la recompilation) pour tout recompiler en octets car je pense qu'il y a une certaine incompatibilité des fichiers compilés en octets entre les versions d'Emacs.la source
J'ai jeté un œil au
package.el
fichier et j'ai trouvé la variablepackage-alist
. Cela semble être une liste de tous les packages installés, y compris les packages requis par les packages que vous avez installés.Si tout ce que vous voulez est une liste des noms de packages installés, le code suivant écrit les noms des packages de cette liste dans le
*Messages*
tampon.Je ne suis pas un programmeur Lisp, donc je suis sûr que quelqu'un peut écrire une bien meilleure version de ce code.
J'ai également commencé à utiliser le code use-package avec l'
:ensure t
option afin d'installer tous mes packages sur un nouveau PC.la source
Une façon de faire pourrait être d'installer le package s'il n'est pas déjà installé, vous devez mettre à jour votre fichier init et ajouter ces lignes:
Modifiez la
my-packages
variable et ajoutez / supprimez le package que vous souhaitez installer.M-x describe-variable package-activated-list
vous donnera la liste de votre package actuellement installé.Après cela, la seule chose à partager est votre fichier init. J'espère que cela aidera.
la source