el-getを導入した際にハマっちゃったことを晒します
パッケージ管理にel-getを導入しようとした際にハマったお話です。結論からいうと、マニュアルやREADMEはちゃんと読めということです。
これまでemacsのパッケージ管理にはemacs標準のpackage.elを使用していました。いつかel-getを試してみようと思って放置していたのですが、思うところがあったので、いよいよ重い腰を上げてel-getを導入しました。
el-get自体はGitHub上にあります。
導入は簡単で、以下のコードをinit.elなどの初期化ファイルに記述するだけです。
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp)))
(add-to-list 'el-get-recipe-path "~/.emacs.d/el-get-user/recipes")
(el-get 'sync)
package.elやel-get、その他のパッケージ管理のメリット/デメリットについては、丁寧にまとめているページが簡単に見つかるのでそちらをあたってみてください。
これでemacsを再起動すると、起動時に必要なファイルをGitHubから取得してel-getの導入が完了します。これだけです。
どこでハマったの?という感じですね。
el-getなどのパッケージ管理システムを導入しようとする動機として、職場と家などの様々な環境ごとに設定を共通にしたいというものがあります。少なくとも僕の動機はそれが一番でした。
なので、この後、さまざまなページで紹介されているように、
(el-get-bundle jbeans-theme)
(load-theme 'jbeans t)
のように、必要なパッケージを記述していったわけです。
これでこれからのパッケージ管理が楽にできる!と喜び勇んでemacsを再起動すると、
error: El-get can not find a recipe for package "jbeans-theme"
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the ‘--debug-init’ option to view a complete error backtrace.
とうまく導入できません。
ここで結構な時間悩んでしまったのですが、本家にちゃんと説明がありました。
Placing el-get-bundle macro calls instead of (el-get 'sync) in your init file to explicitly specify which packages should be installed.
僕の用途のようにel-get-bundleを用いて導入したいパッケージを初期化ファイルに記述したい場合には、(el-get 'sync)を削除する必要があります。
はじめからちゃんとREADMEを最後まで読んでいれば悩まなくて済んだんですが、そんなこといったところで後の祭りですね。
同じことでハマる人にとって少しでも役に立つことを願い、失敗談として晒します。
受験に向けてのブランチ
娘の通う中学校で、学校と保護者との間の懇談会がありました。私の娘は進学を控えた中学3年生なので、主に進学についての相談や話し合いました。
いろいろな事情により、娘の進路を学校に任せておくわけにもいきませんので、今すぐにでも、娘が満足できる進学ができるように対応する必要性を感じています。
そこで、まずは娘を取り巻く現状をブランチで整理してみたいと思いました。