Help us understand the problem. What is going on with this article?

Emacs25.1でauto-installを使ってるとemacswikiに接続できない時の解決例(brew link --force使わない版)

More than 3 years have passed since last update.

問題

Emacs25.1のソースを公式サイトから取ってきてビルドしたら,作成したEmacs.appをfinderで開くと,auto-installを使おうとした際に

Could not create connection to www.emacswiki.org:443

というエラーが出てEmacsが操作できなくなった.

この問題は色々な人が直面している(いた?)ようで色々なサイトに対処法が書かれていた.

一番大切なのが,opensslのバージョンを上げることらしい.

自分はbrewを使っているのでbrew install opensslをしたのだが,

大抵のサイトの解決例にあるbrew link --force opensslのコマンドがbrewのバージョンが上がって使えなくなっているようでよく紹介されている方法を用いることが出来なかった.

模索(失敗例)

brewでinstallされたopensslがどこにあるのかを探して(/opt/local/bin に1.0.2dのopensslがあった)それをPATHに追加した.(実際にbrewでinstallされたopensslは/usr/local/Cellar/に入っている)

PATH='/opt/local/bin:$PATH'

こうするとshell上からEmacs.app/Contents/MacOS/Emacsを起動した時は正常に動作した,のだがFinder上でEmacs.appを開いた場合はうまくいかなかった.

そこでFinder上で開く時にもPATHの環境変数を与えてやればいいのかと考え,launchctlを用いてPATHを渡すためにEmacsEnvironment.plistファイルを作成した.

EmacsEnvironment.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>setenv.PATH</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/launchctl</string>
        <string>setenv</string>
        <string>PATH</string>
        <string>/opt/local/bin:/usr/local/opt/findutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
</dict>
</plist>

その後,launchctl load /Library/LaunchAgents/EmacsEnviroments.plist
で設定をして無事Finder上でも環境変数PATHが渡せるようになったはずなのだが…エラーが消えなかった.
他にもbrew link --force opensslを実行した時に「ライブラリとインクルードパス指定して上手くやって」みたいなことを言ってるので実際にmake時に指定したりもしたのだが効果なし.

成功例

もともとのopensslは/usr/bin下にあるものだったので,そのopensslを新しいopenssl(今回は/opt/local/bin/openssl)のシンボリックリンクにした.

sudo mv /usr/bin/openssl /usr/bin/_openssl #念のため前のも取っておいた
sudo ln -s /opt/local/bin/openssl /usr/bin/openssl

こうしたらFinder上でも上手く動いた(どうしてこの場合だけ上手く動くのか誰か教えて下さい)

終わりに

普通にサイト上から取ってきたイメージはこんな現象なかったのだけど,バグfixとかあったのかな?(なにも分かってない顔)
とりあえずこの方法だとbrew link使えなくて辛い人でもなんとかなるはず
なんでもいいからopensslのバージョン上げればOKなんだけど,それだったら古いopensslがあってもPATHの順番などを前に出せばなんとかなると思うんだけどそれで上手くいかなかった理由がよく分からない.

結局自分もよく分かってないけどとりあえず動く例は正義だと思ったので載せた.

参考にしたリンク

Emacsのauto-installで接続エラー443発生
Macでの環境変数(environment variables)の設定方法

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away