macOS Emacsのauto-install.elで、M-x install-elisp-form-emacswiki
を実行したところ、下記のエラーが発生。
error in process filter: Could not create connection to www.emacswiki.org:443
調べてみると、どうやらmacOSに標準で入っているopensslのバージョンが古いのが原因のよう。それで、Homebrewからopensslをインストールしてみたが、少しハマったので備忘録として残す。
あと、auto-installパッケージのEmacsへのインストールと設定についても記録を残す。
auto-install.elのインストール
下記のようにELPAパッケージからインストールできる。
M-x package-install<RET>
auto-install
auto-installの設定
~/.emacs.d/init.el
に下記を追加。
;;; auto-installの設定
(add-to-list 'load-path "~/.emacs.d/elisp/")
(require 'auto-install)
;;インストールディレクトリを設定する 初期値は ~/.emacs.d/auto-install/
(setq auto-install-directory "~/.emacs.d/elisp/")
;; 起動時にEmacsWikiのページ名を補完候補に加える
;;(auto-install-update-emacswiki-package-name t)
;; ediff関連のバッファを1つのフレームにまとめる
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
;; install-elisp の関数を利用可能にする
(auto-install-compatibility-setup)
auto-installの実行でエラー
M-x install-elisp-form-emacswiki
の実行で443エラーが発生。調べてみると、macOSに入っているopenssl
のバージョンが古い?ために発生しているよう。
それで、どのプログラムが実行されているか確認。
$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016
$ which openssl
/usr/bin/openssl
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:...
/usr/bin/openssl
が実行されている様子。
opensslをインストール
そこで、Homebrewからopenssl
をインストール。
brew install openssl
brewのopensslが優先的に呼ばれるようにする
which openssl
で確認すると、まだ標準の/usr/bin/openssl
が呼ばれている。
brewでインストールしたものは、通常/usr/local/bin
からリンクされて呼び出されるが、ls -l /usr/local/bin
で確認するとopensslのリンクがない。
$PATHには/usr/local/bin
が先に書かれているので、そこにあれば優先的に呼び出されるはず。
下記コマンドを実行してリンクを作成しようとしたが、エラーが発生。
$ brew link openssl --force
仕方無いので、下記コマンドで手動でシンボルリンクを作成した。
$ cd /usr/local/bin
$ ln -s ../Cellar/openssl/1.0.2j/bin/openssl openssl
ここで、一度ターミナルを終了して再起動。(キャッシュされているのか?一度終了しないと認識できなかった)
下記コマンドで確認。
$ which openssl
/usr/local/bin/openssl
$ openssl version
OpenSSL 1.0.2j 26 Sep 2016
これで、EmacsからM-x install-elisp-form-emacswiki
を実行すると今度はOKとなった。
補足
本などの説明ではauto-installからインストールするように書かれているが、最近はELPAに主要なパッケージが登録されているようなので、基本はM-x package-install
で事足りる。
コメント