По какой-то причине (см. Ниже) я хотел установить package-user-dir
(ELPA) в каталог site-lisp.
Должна быть возможность вывести каталог site-lisp из стандартного exec-directory
переменная:
(setq site-lisp-directory (concat exec-directory "../site-lisp")
По крайней мере с предварительно скомпилированными версиями Emacs из GNU это работает (каталог уже существует).В конце концов создайте каталог:
(unless (file-accessible-directory-p site-lisp-directory)
(make-directory site-lisp-directory))
Моя мотивация заключалась в том, что package-user-dir
по умолчанию - %USERPROFILE%/.emacs.d/elpa/
, что выглядит довольно странно.Пакеты должны быть установлены в масштабе всей системы для всех пользователей.Также ~/.emacs.d
содержит настройки сервера, списки автосохранения и резервные копии.Что нужно делать с пакетами, когда в Emacs есть выделенный каталог site-lisp, который можно спросить.
Однако настоящей «проблемой» была предварительно скомпилированная Emacs 24.3 для Windows.Он не требует установки и, следовательно, может быть запущен переносно, как с палки.ИМХО ELPA должен затем использовать свой каталог site-lisp, чтобы пакеты также устанавливались переносимо.