本記事ではEmacsのパッケージの管理(ダウンロードとインストール)に、標準パッケージであるpackage.elのQuickstart機能を使う方法を紹介します。この方法ではEmacsの初期化ファイル (~/.emacs.d/init.el) にuse-package等はおろかコストの高いpackage-*関数が現れません。
文書としてはpackage.elの「Quickstart」のコメントにあるほか、Infoの「(emacs) Package Installation」にもあります。
利点
GNU GuixではGuix HomeによりEmacsパッケージのインストールを行えます。複数プラットフォームでEmacsの構成を共有するには、このようにしたほうが都合がよいこともあります。
事前にautoloadが計算されているため起動が早いかもしれません。
設定例
early-init.elに以下を設定します。これでpackage.elが無効になります。
(setq package-enable-at-startup nil)
パッケージのautoloadを読み込むファイルを生成します。以下のようなファイルを作成してください。
;;; installer.el --- Install packages and generate quickstart file -*- lexical-binding: t; -*-
;; Copyright (C) 2026 gemmaro
;;
;; Copying and distribution of this file, with or without modification,
;; are permitted in any medium without royalty provided the copyright
;; notice and this notice are preserved. This file is offered as-is,
;; without any warranty.
;;; Commentary:
;; Emacsのパッケージをダウンロード、インストールし、package.elの
;; Quickstartファイルを生成します。このファイルはEmacsのバッチにより実
;; 行してください。
;;; Code:
;; `package-vc-install'には`package-install'のような`DONT-SELECT'の引
;; 数がありません。そのため、custom変数の更新は甘受しますが、身代りを
;; 用意しておきます。
(setq custom-file (make-temp-file "installer"))
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
(dolist (pkg '(ddskk
flymake-perlcritic
auth-source-xoauth2-plugin
;; [...]
))
(unless (package-installed-p pkg)
(package-install pkg 'dont-update-package-selected-packages)))
(package-vc-install "https://codeberg.org/gemmaro/cwmrc-mode")
(package-quickstart-refresh)
;; This is not a package.
;;; installer.el ends here.
ここでは……
- Melpaをパッケージアーカイブとして追加し、
- いくつかアーカイブからパッケージをダウンロードし、
- 追加でアーカイブにないものをVCSからからダウンロードしています。
……お好みで変えてください。
作成したら、以下のスクリプトを実行します。今後、上記の
emacs --batch --load Emacs/installer.el
これにより、~/.emacs.d/elpaにパッケージがダウンロード、インストールされるとともに、~/package-quickstart.elが生成されます。
~/.emacs.d/init.elではこの生成されたファイルを読み込むだけです。
(load-file package-quickstart-file)
おまけ
package-quickstart-fileの場所はcustomにより変更できます。
auth-source-xoauth2-pluginについてはこちらで紹介しています:
最近、OpenBSDでよく使われているウィンドウマネージャであるcwmの設定ファイル用のcwmrc-modeを作りました:
使用許諾
Copyright (C) 2026 gemmaro
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without any warranty.