ことさら−古都プログラマーの更級日記

京都でお寺を回りながら御朱印集めをしていたり、LoLをしたり試合を見に行ったりしているエンジニアのブログです。技術的なはなしとか日常的なはなし、カメラやLoLや競馬の話も書きます。右メニューに検索やらカテゴリーやらがあるので、見たい記事だけ見てね!

Warning (el-get): Your Emacs doesn't support HTTPS (TLS). と言われた時の対処 for Mac - HTTPS (TLS) 対応版のEmacsをインストールしたい

いきさつ

el-getを使っていると以下のようなWarningが出ることがある。

Warning (el-get): Your Emacs doesn't support HTTPS (TLS).

まあWarningなので無視しても問題ないっちゃ問題ないのだが、いちいち出てくるのがうざい。EmacsTLSに対応させることで対処したい。

対処

まずはMac版でかつHomebrewに入れた時の対処である。

簡単で、一度Emacsをアンインストールして、HTTPS対応版をインストールするだけでよい。 brew install emacs する時に --with-xxx のようにオプションを渡すことができるので、ここで --with-gnutls を渡してやるだけでよい。

$ brew uninstall emacs
$ brew install emacs --with-gnutls

gnutls関連の依存パッケージも勝手にインストールしてくれるので、Macの場合はHomebrewで入れるのが凄く楽だ。

また、昨日の記事でも書いたように、 --with-xxx 系のオプションには、 --with-cocoaGUI版をインストール)などとさまざまなオプションがあるので、自分がどのようなオプションでEmacsをインストールしたか覚えておいたほうが良い。Ansibleにしてもいいし、gistとかにメモっておいた方がよい。覚えて置かないとPCが変わった時に困ったり、思わぬ落とし穴にはまったりする。

Mac じゃない時は?

Macじゃない場合や、MacでもHomebrewを使っていないなどで、ソースからビルドしたい場合もあるだろう。その場合は ./configure --with-gnutls としたら行けるはずだ*1、ただし、こちらはHomebrewのように依存パッケージの処理は勝手にしてくれない。gnutls関連のライブラリなどがひつようとなる筈なので、これをインストールした上でEmacsをビルドする必要がある。例えば CentOS7なら

$ wget emacs-source-file.tar.giz
$ cd emacs-source-file
$ ./configure
...
configure: error: The following required libraries were not found:
     gnutls
Maybe some development libraries/packages are missing?
If you don't want to link with them give
     --with-gnutls=no
as options to configure

こんなエラーが出るので

$ yum install gnutls-devel
$ ./configure

これでうまくいく*2

How do I install GnuTLS for Emacs 25.1 on Windows? - Emacs Stack Exchange あたりが参考になるかもしれない。

まとめ

  • brew install emacs --with-gnutls で行ける
  • 自分がbrewemacsを入れた時はどのようなオプションで入れたか覚えて置いたほうが良い。

*1:執筆時最新版のEmacs 26ではデフォルトで--with-gnutlsのようだ。あえてgnutlsを入れたくない場合は--with-gnutls=noとする必要がある。

*2:yum install gunutls じゃなくて yum install gnutls-devel であることに注意