package-user-dir
何らかの理由で (以下を参照) 、(ELPA) を site-lisp-directoryに設定したかったのです。
exec-directory
標準変数から site-lisp-directory を推測できるはずです:
(setq site-lisp-directory (concat exec-directory "../site-lisp")
少なくとも、GNU からコンパイル済みの Emacs バージョンではこれが機能します (ディレクトリは既に存在します)。最終的にディレクトリを作成します。
(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-directory を持っている場合、そこに何をするパッケージがあるのかを尋ねることができます。
しかし、本当の「問題」は、プリコンパイルされた Windows 用のEmacs 24.3でした。インストールが不要なため、スティックからのようにポータブルに実行できます。私見 ELPA はその site-lisp-directory を使用する必要があるため、パッケージも移植可能にインストールされます。