2023年3月29日
概要
use-packageはemacsで利用するサードパーティ製のパッケージをインストールし、読み込み、初期化、設定ができます。
emacsはuse-packageを使わなくても、package.elの
package-list-packages
を使ってmelpaに公開されている好きなパッケージをインストールし、init.el
にrequire("パッケージ名")
を追加して利用しても良いのですが、手動でパッケージをインストールして、設定を記述していては時間が膨大にかかってしまいます。use-packageはオプションでensure: t
があり、これを記述しておくと、パッケージがインストールされていなければ、自動的にインストールしてくれます。公式Githubリポジトリを読むとuse-packageの主な目的はパッケージのロードと設定で、emacsの環境構築ツールとして使う事を目的とはしていませんが、私はどちらかというとansibleみたいな自動環境構築ツールとして使っています。
Straightもuse-packageと同じく、パッケージマネージャーであり、use-packageよりも強力であると掲げていますが、有名なのはuse-packageの方です。Straightを使う1番の理由はgithubに公開されているパッケージをuse-packageで使うためです。
emacsで扱われるパッケージはgithubができる前からあったりして、伝統的にsubversionが使われたりしていました。2010年くらいからチラホラgithubで公開されるパッケージが増えてきて、そこで公開されているパッケージを使いたいニーズが増えました。
use-packageではgithubにあるパッケージを指定できないので、straightを入れて、そちら経由でインストールして使える様にします。
use-packageのセットアップ
package.el
最初に
package.el
の設定を~/.emacs.d/init.el
に加えます。use-packageを使うにしてもpackage.elのmelpaとかは使うので必須です。;; package.elでmelpaパッケージ利用の初期化
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
use-package
use-packageもemacsのサードパティ製のパッケージなので、最初からemacsに入っているわけではありません。ですが、手動で
M-x package-install RET use-package
するのは面倒くさいので、~/.emacs.d/init.el
にuse-packageの存在判定も加えて、use-packageがインストールされていなければ、自動的にインストールして使える様にしましょう。;; use-packageがインストールされていなかったらuse-packageをインストール
(dolist (package '(use-package))
(unless (package-installed-p package)
(package-install package)))
init.el
に上の2つのコードが書けたら、emacsを再起動するだけでuse-packageの環境が整います。Straightのセットアップ
Straightも同様にセットアップします。こちらはGithubのREADMEに自動インストールとセットアップの方法が書いてあるのでそれを流用して
~/.emacs.d/init.el
に追加します。;; Straightを使うための設定
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
保存したら、emacsを再起動します。
Straightはセットアップに時間がかかるので、気長に待ちましょう。
まとめ
以上でuse-packageとStraightを使う環境が整いました。
最後にここで扱ったコードをまとめておきます。
;; package.elでmelpaパッケージ利用の初期化
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
;; use-packageがインストールされていなかったらuse-packageをインストール
(dolist (package '(use-package))
(unless (package-installed-p package)
(package-install package)))
;; Straightを使うための設定
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 6))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
Ted
大学でコンセンサスアルゴリズムを研究。卒業後ベンチャー企業に入社してフルスタックでWebサービスを開発。現在は大手IT企業に転職し、プログラミングを行っている。AIにプログラマーの仕事を奪って欲しいと願っている。