日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

el-get トラブルシューティング

昨日 Emacs LiveClojure 関連の設定の大部分をお任せできるんじゃないかとちょっと試したが、こっちはこっちで自分の設定のマージのさせ方が分からず諦めて el-get で四苦八苦した結果、やはり職場の制限されたネットワーク環境上で色々発生していそうなのが何となく見えてきたのでここでまとめようと思う。

el-get を使いたいがために git を利用しているだけなので git の細かい使い方は相変わらず分からない。

とは言えこの記事でこれから書く情報は以下のサイトを見れば emacs 以外はほぼ網羅してたりする。
いつか見た惑星: プロキシ環境下でgitを使う

ここでは自分が実際試したものをこちらに再掲する。

proxy 環境下での設定

git と emacs それぞれに以下設定をする。

git

proxy 設定

下記コマンド実行。

> git config --global http.proxy http://proxy.hogedomain.com:8080
> git config --global https.proxy http://proxy.hogedomain.com:8080
git プロトコル変換設定

proxy が使えるプロトコルは大抵 http か https のみで、そうなると el-get でインストール時に git プロトコルのみのパッケージだと動作しない事があるので、その場合は https に変換する設定が git で可能。方法は以下のコマンド実行する。

> git config --global url."https://".insteadOf git://
git 設定確認

下記コマンド実行して、設定した項目が存在してれば OK。

> git config --list

emacs proxy 設定

~/.emacs.d/init.el に以下を記述

(setq url-proxy-services
      '(("http" . "proxy.host.com:8080")
        ("https" . "proxy.host.com:8080"))

インストール用 elisp コードが動かない

dimitri/el-get · GitHub

上記の公式に乗っているコードを *scratch* バッファで評価したら良いよとあるが、動かない場合は github にある el-get-install.elの内容を *scratch* にコピペして M-x eval-buffer すると動く場合がある。

レシピがない

これも proxy の制限なのか分からないが自分の環境下では el-get インストール完了しても recipe フォルダには emacs-wiki のもの以外は一切入っていなかった。

入れたいパッケージの数にもよるかもしれないが、github の recipe フォルダにあるファイルを el-get-recipe-path に設定されているパスに保存してやれば普通に認識する。依存しているパッケージはレシピファイルの中身を見れば分かるのでやや面倒だがそのレシピファイルも一緒に保存する。

一部パッケージでインストールが失敗する

自分は auto-complete の依存パッケージである popup インストール時に発生。原因は git プロトコルは通らない proxy ネットワーク環境下だったため。上記の git プロトコル変換設定実施で対処可能。

以上で、自分の環境下でもようやく el-get を使って cider を入れられるようになった。
インストールさえ無事完了すれば後の設定は英語だけど公式を見て設定すれば問題ない。