LoginSignup
14
11

More than 5 years have passed since last update.

プロキシ環境と非プロキシ環境でEmacsのpackage.el設定を共有する

Last updated at Posted at 2016-08-11

https://masutaka.net/chalow/2015-10-03-1.html
を参考にpackage.elの設定をinit.elに書いておくと、起動時に未インストールのパッケージを自動でインストールしてくれるので、init.elを複数環境で共有するときに便利。
でも、package.elはプロキシ設定をinit.elに書く必要がある。

Github等で管理しているinit.elをプロキシ環境(例えば会社)と非プロキシ環境(例えば自宅)で共通利用したい。

.emacs.d/init.el
;; ロードパスの追加
(setq load-path (append
                 '("~/.emacs.d/private-conf")
                 load-path))

;; proxy設定
;; private-conf/myproxy.elがあるときだけプロキシ設定をロード
;; 第2引数のtをつけると、ファイルが存在しなくてもエラーにならない
(load "myproxy" t)

;; package.el関係
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))

(package-initialize)
(package-refresh-contents)

;; 追加したパッケージ
(package-install 'js2-mode)
(package-install 'helm)
(package-install 'company)
(package-install 'company-tern)

プロキシの設定は別ファイルに置く。
プロキシ環境ではファイルを配置。
非プロキシ環境ではファイルなし。

プロキシの設定方法。
http://yoshimov.com/tips/emacs-package-list-with-proxy/

プロキシ認証情報は*scratch*などで

(base64-encode-string "username:password")

して生成した文字列を、以下のbase64stringに設定する。

.emacs.d/private-conf/myproxy.el
;; proxy
(setq url-proxy-services
      '(("http" . "proxy.example.com:8080")
        ("https" . "proxy.example.com:8080")))
(setq url-http-proxy-basic-auth-storage
      '(("proxy.example.com:8080" ("Proxy" . "base64string"))))
14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11