MacのEmacsにauto-installを入れたら、
emacswiki.orgとの接続エラー443を発生する
Emacsにauto-installを入れたら、Emacsが起動時にEmacsWikiに接続しにいくんだけど、443ポートが空いてないみたいなエラーが出て、Emacsが固まるような感じになってしまいました。
↓こんな感じのエラーメッセージがモードエリアに出ます。
Could not create connection to www.emacswiki.org:443
今回の記事はこのエラーの直し方です。
但し、『インターネットに接続している状態』が前提です。
インターネットに接続していない場合は、また別の対応が必要です。
emacsにauto-installを導入する手順&発生する問題とその対応
●↓ターミナル
1.cd ~/.emacs.d/elisp
2.wget http://www.emacswiki.org/emacs/download/auto-install.el
●↓Emacs
3.M-x byte-compile-file RETURN
4.~/.emacs.d/elisp/auto-install.el RETURN
elisp ディレクトリの中に auto-install.elc というファイルができているはず
●↓init.el
5.以下のS式を記述
※auto-install.el の196行目(Installationで検索)の(1)〜(6)を参考
(when (require 'auto-install nil t') (setq auto-install-directory "~/.emacs.d/elisp/") (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup))
●↓Emacs
6.Emacsを再起動
上記のS式の末尾で C-x C-e でもいいけど、Emacs再起動の方が問題が分かり易いでしょう
7.おそらく以下のエラーが出るはず。
※インターネットに接続している状態で確認してください
Could not create connection to www.emacswiki.org:443
●↓ターミナル
8.以下の記事を参考にして対応するんだけど・・・・きっとエラー発生します。
8−1.brew update
これは問題無いはず。
8−2.brew upgrade openssl
これも問題無いはず。
Errorが出ても『Error: openssl 1.0.2f already installed』ならOK。
8−3.sudo mv /usr/bin/openssl /usr/bin/openssl.0.9.8zg
El Capitanの場合、おそらくこれでエラーになるはず。
『Operation not permitted』が発生すると思います。
どうもEl Capitanから採用された機能でRootlessとか言うらしい。
rootユーザーなのに『/usr/bin/』を変更したらアカンらしい。
Windowsもそんな感じでややこしい事になってるけど、ホンマ便利は不便やわ。
で、Rootlessを解除します。
●↓リカバリーモード
8−3−a.Macをシャットダウン
8−3−b.『Command + R』を押しながらMacをリカバリーモード起動
リカバリーモードの起動はちょっと時間かかります。
●↓リカバリーモード/ターミナル
8−3−c.メニュー -> ユーティリティ -> ターミナル
8−3−d.csrutil status のコマンドを打つ
status が enable になっているはず
8−3−e.csrutil disable のコマンドを打つ
Successfully と出ればOK
●↓通常モード
8−3−f.Macを再起動(通常モードでの起動)
●↓通常モード/ターミナル
8−3−g.ターミナルで csrutil status のコマンドを打つ
status が disable になっているはず
8−3−h.『8−3.』のmvコマンド実行
エラーは出ないはず
8−4.brew link openssl –force
『/usr/local/include/』と『/usr/local/lib/』で書き込み権限が無いというエラーが発生するかも。
権限が無くてもsudoを付けて実行してはいけません。
卑怯(cowardly)っていうメッセージが出てきます(笑)
エラーが発生した場合、chmodコマンドで権限を付与してください。
以下は一例。
sudo chmod g+w /usr/local/include/ sudo chmod g+w /usr/local/lib/
8−5.sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
・・・と、ここまでやれば、Emacsを起動してもemacswiki.orgに接続できないというエラーは出ないと思います。
参考サイト
以下の記事を参考にさせて頂きました。
ありがとうございました。
有益な記事をありがとうございます。
Windowsの場合は、これどうしたらいいのでしょう???
kamuycikapさん
WindowsのEmacs + auto-installでも『Could not create connection to http://www.emacswiki.org:443』が発生しているということでしょうか?
Windowsの方のEmacsにはauto-installを入れていないものですから、今はよく分かりません。
ちょっと調べてみますね。
(追記)
・・・・↑というように書きましたが、WindowsのEmacsを見たらauto-install入れていました。
特に443のエラーは出ていません。
kamuycikapさんは443のエラーが出ているのでしょうか?
コメントありがとうございます。
はい。
私のNTEmacsではエラーが出ております。
※LinuxのEmacsでも同じauto-instalの設定を書いているのですが、Windows側のみエラーになります
私がセットアップしたNTEmacsは下記の通りです。
■バージョン
http://cha.la.coocan.jp/doc/NTEmacs.html#sec-5-2
こちらの、「24.5簡易IME対応版」です。
—- ここから
For information about GNU Emacs and the GNU system, type C-h C-a.
Opening TLS connection to `www.emacswiki.org’…
Opening TLS connection with `gnutls-cli –insecure -p 443 http://www.emacswiki.org‘…failed
Opening TLS connection with `gnutls-cli –insecure -p 443 http://www.emacswiki.org –protocols ssl3’…failed
Opening TLS connection with `openssl s_client -connect http://www.emacswiki.org:443 -no_ssl2 -ign_eof’…failed
Opening TLS connection to `www.emacswiki.org’…failed
error in process filter: url-http: Could not create connection to http://www.emacswiki.org:443
error in process filter: Could not create connection to http://www.emacswiki.org:443
Mark set
—— ここまで
ちなみにですが、auto-installの設定はこのようにしております。
元ネタは、「Emacs実践入門 ~思考を直感的にコード化し、開発を加速する」です。
—- init.el抜粋 ここから
;; ===============================================
;; auto-install
;; rubikitchさんの拡張機能自動インストールシステム
;; M-x install-elisp RET
;; ElispのURLを入力するように促されるので、頑張って入力する。
;; 予め、Emacswikiで欲しいelispのURLを調べておく。
;; ※Emacs24からはEmacsLispPackageArchive「ELPA」が標準で搭載されているので、都合の良い方を使う
;; ELPA –> M-x list-package RET
;; ===============================================
(when (require ‘auto-install nil t)
(setq auto-install-directory “~/.emacs.d/elisp/”) ; インストールディレクトリを指定する
(auto-install-update-emacswiki-package-name t) ; EmacsWikiに登録されているelispの名前を取得する
(auto-install-compatibility-setup)) ; install-elispの関数を利用可能にする
;; auto-install — ends here
—- init.el抜粋 ここまで
kamuycikapさん
「24.5簡易IME対応版」を使うと確かに433エラー発生しました。
原因は分かりません。
解決策も分かりませんでした。
※ちなみに、お使いのWindowsは32bit版ですかね?
※Windowsのログインユーザーは管理者権限ありますか?
週末に時間があれば見ておきますけど、解決するかどうかは分かりません。
64bit版が使えるのであればですけど、コチラの方をお使いになってはいかがでしょうか?
https://github.com/chuntaro/NTEmacs64
https://gabekore.org/windows-emacs-beginner
kamuycikapさん
お世話になります。
ここ数日見れていません。
ずっと気になっているんですけどね。
ひとまずはエラー回避できるということで良かったですね。わざわざご連絡ありがとうございます。
ちょっと気にはなりますが、コメントアウトしちゃっていいんですかね?
また暇ができたら見てみたいと思います。
お役に立てずすみません。
今後とも当ブログをよろしくお願い致します。
お世話になります。
結局アレコレ調べたのですが、解決には至りませんでした。
パッケージを手動でダウンロードし、init.elに設定する方法でインストールを実施します。
auto-installの433エラーを回避する方法は、こちらを参考にしました。
http://d.hatena.ne.jp/shammer/20160212/p1
この行をコメントアウトすることでエラーを回避しました。
(auto-install-update-emacswiki-package-name t)
>「24.5簡易IME対応版」を使うと確かに433エラー発生しました。
>原因は分かりません。
>解決策も分かりませんでした。
>※ちなみに、お使いのWindowsは32bit版ですかね?
>※Windowsのログインユーザーは管理者権限ありますか?
なんと・・・そうでしたか。
お手数おかけいたしました。
私が利用しているWindowsは32bit版なのです。
Windowsのログインユーザーおよび管理者権限を持っています。
英語サイトやらなにやら調査はしておりますが、原因がよくわからずおります。
auto-installを利用せずにパッケージを入れればいいだけの話ではあると思うのですが、少し気持ち悪くて気になっております。