atomのpackage管理をproxy越えで行う方法を示す。
atomは1.01、Windows 7である。

atomのpackage管理について

atomのpackageはapm(atom package manager)で管理される。
proxyの背後からapmを使うには、ちょっと面倒な作業が必要だ。

apmはそれ自体で独立しているCUIプログラムである。atomの中の機能ではない。
だから、proxyの設定をしようとしたら、atomの設定を変更するのではなく、apmの設定を変更しないといけない。
つまり、atomのシャレオツなインタフェース経由ではなく、apmをコマンド操作したり、テキストファイルを修正することが必要だ。

なお、apmも実はwrapperなのだが、proxyの設定に限れば無視して構わない。

apmはどこにある?

apmは以下の場所にインストールされている。

<インストールディレクトリ>\Atom\resources\app\apm\bin\apm.cmd

拡張子が.cmdで、中身を見ると、実体は同ディレクトリにあるnode.exeであることが分かるが、ここでは関係ない。

コマンド操作をするならパスを通さないといけないところだが、面倒くさい。
どうせ滅多に使わないので、<インストールディレクトリ>\Atom\resources\app\apm\bin\ で作業をする。

apm helpで使い方の説明が表示される。

C:\Atom\resources\app\apm\bin>apm help

apm - Atom Package Manager powered by https://atom.io

Usage: apm <command />

where <command /> is one of:
    clean, config, dedupe, deinstall, delete, dev, develop, docs, erase,
    featured, home, init, install, link, linked, links, list, ln, lns, login,
    ls, open, outdated, publish, rebuild, rebuild-module-cache, remove, rm,
    search, show, star, starred, stars, test, uninstall, unlink, unpublish,
    unstar, update, upgrade, view.

Run `apm help <command />` to see the more details about a specific command.

Options:
  --color        Enable colored output [boolean] [default: true]
  -v, --version  Print the apm version
  -h, --help     Print this usage message

  Prefix an option with `no-` to set it to false such as --no-color to disable
  colored output.
C:\Atom\resources\app\apm\bin>

apmの設定方法は二通り

apmの設定方法には二つの方法がある。
一つは、apmをコマンド操作する方法
もう一つは、設定ファイルを直接書き換える方法

一つ目の、コマンド操作での設定方法だが、結局のところ言われた通りに設定ファイルの書き換えをしている「だけ」なので、実施的な違いはない。
もう少し踏み込んでいうと、仮にコマンド操作で設定をしても、設定値の妥当性はいっさい、してくれない。
仮に間違った設定値を指定しても、言われた通りに設定ファイルに加えるだけなので注意。

【参考】apm設定ファイルのひな形作成

apmの設定は、ユーザごとのテキストファイル.apmrcで変更する。
ところが、インストール直後には、(ユーザごとの).apmrcは存在しない。
自分で作っても良いのだが、以下のようにするとひな形が作られる。

C:\Atom\resources\app\apm\bin>apm config edit

上記コマンドを実行すると、メモ帳が開き、.apmrcの内容が表示される。

何もしないで閉じてもよいし、後述するように、後で同じファイルを開くので、今ここで書き換えてしまってもよい。
書き換える場合は開きっぱなしにしておく。

なお、ひな形を作ったとしても、コマンド経由で書き換えた場合、コメント行はバッサリ削られてしまうようだ。

;;;;
; npm userconfig file
; this is a simple ini-formatted file
; lines that start with semi-colons are comments.
; read `npm help config` for help on the various options
;;;;

;;;;
; all options with default values
;;;;
; access=null
; always-auth=false
; bin-links=true
(略)

apm設定ファイル.apmrcの保存場所

前章の手順に沿うと、以下の場所に.apmrcが生成される。
いわゆるホームディレクトリである。

C:\Users\<ユーザ名>\.atom\.apmrc

なお、以下にも同じようなファイルがある。
が、これはデフォルト設定(global config)なので触ってはいけない。

C:\Users\<ユーザ名>\.atom\.apm\.apmrc

apm設定ファイルでproxy設定する場合

設定ファイルを直接書き換える場合には、上記のファイルを開き、以下の行を書き込むだけ。

proxy=http://<ID>:<password>@<address>:<port>
https-proxy=http://<ID>:<password>@<address>:<port>

httpsの接続で問題の出る場合には、以下も追加する。

strict-ssl = false

コマンドで設定する場合

apmを実行できる状態で、以下のようにコマンドを叩く

C:\Atom\resources\app\apm\bin>apm config set https-proxy="http://<ID>:<password>@<address>:<port>"
C:\Atom\resources\app\apm\bin>apm config set proxy="http://<ID>:<password>@<address>:<port>"

apm config listで設定内容を確認できる。

C:\Atom\resources\app\apm\bin>apm config list
(略)
; userconfig C:\Users\avedakedavra\.atom\.apmrc
https-proxy = "http://<ID>:<password>@<address>:<port>"
proxy = "http://<ID>:<password>@<address>:<port>"

もし設定変数を間違えてしまった場合には、以下のようにすれば削除できる。
(https-proxyとすべきところ、https-proproxyしてしまったと仮定)

C:\Atom\resources\app\apm\bin>apm config del https-proproxy

設定変数名について(https-proxy、proxy)

設定変数名について、webを検索すると、proxyではなくhttp-proxyだったり、https-proxyではなくhttps_proxy(httpsとproxyの間がアンダースコア)になっている情報もある。
少なくとも1.0.3の時点では、それぞれproxy, https-proxyが正しい。
ソースから確認できる。

https://github.com/atom/apm