認証プロキシに悪戦苦闘したエンジニアの手記

認証プロキシって邪魔ですよね？
最初はなんともなかったんですけどねぇ。。
時間がたつにつれ、色々な作業を阻害する要因になってきました。
別にプロキシ導入を否定するわけではないですが、、
エンジニアにとってはなんとも言えない存在なわけです。

後に続くエンジニアのため（8割方は覚えられない自分のために）、よく使うプロキシの設定についてまとめたいと思います。

1. サーバ
-----
とある昔[cloud9](https://c9.io/)にはまり始めた頃、社内サーバにもcloud9をインストールしようと思ったことがあり、インストールしようとしました。

さて、手順を見てみるとめちゃ簡単でした。

```bash:command
git clone git://github.com/c9/core.git c9sdk
cd c9sdk
scripts/install-sdk.sh
```

参考：[Cloud9 3.0 SDK for Plugin Development](https://github.com/c9/core/)

一瞬でインストール出来そうだと思い```git clone```してみたのが、悪夢の始まりでした。

```
-bash: git: コマンドが見つかりません
```

ε=＼__〇_ ｽﾞｺｰ
git入ってないじゃないか！
ということでyumしてみると

```
Could not retrieve mirrorlist
```

一発目のコマンドから全然進みません＼(^o^)／

はい、前置きが長くなってしまいましたが、この時初めてプロキシという存在について再認識しました。

結論から話すと```yum``` ```git``` ```nvm``` 等々色々なコマンドが通りませんでした。
ここからどういう設定が必要だったかを書いていきます。

* [HttpProxyAuth](http://homepage2.nifty.com/nonnon/Download/HttpProxyAuth/index.html)  

この手のアプリは五万とありますが、私は入りがこのアプリだったので、このアプリを使って説明することにします。

Windowsの場合、コマンドプロンプトを開き、```ipconfig /all``` とコマンドを入力してください。すると自分のIPアドレスが分かると思います。
私の場合は、IPv4 アドレスと書かれたものでした。
今回はIPv4 アドレスが```123.45.67.890``` だったとします。

次にコマンドプロンプトに```C:\HttpProxyAuth.exe "username:password@proxyserver:port" 8888``` と入力してください。あなたのプロキシサーバの環境情報が仮に下記表だった場合、コマンドは```C:\HttpProxyAuth.exe "proxyuser:proxypass@proxy.test.co.jp:88" 8888``` となります。
※HttpProxyAuth,exeをCドライブ直下に配置した場合の例です。

|項目名|設定値|
|:-:|:-:|
|プロキシ認証のユーザ名|proxyuser|
|プロキシ認証のパスワード|proxypass|
|プロキシサーバ|proxy.test.co.jp|
|プロキシサーバのポート|88|
|中継のポート（任意）|8888|

さてコマンド入力が終わると、下記のように表示されると思います。

```
認証プロキシサーバ = proxy.test.co.jp:88
ユーザ:パスワード  = proxyuser:proxypass
ローカルポート     = 8888
コンソール表示有無 = 0
認証プロキシとの中継を開始しました。
```

エラーが出るようであれば、コマンドが間違えているので、もう一度よく確認してください。ここまで完了すれば準備は完了です。各コマンドの設定をしましょう。

* yum

```bash:command
vim /etc/yum.conf

#yum.confの末尾に記載
proxy=http://123.45.67.890:8888
proxy_username=proxyuser
proxy_password=proxypass
```

* wget

```bash:command
vim /etc/wgetrc

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
https_proxy = http://123.45.67.890:8888
http_proxy = http://123.45.67.890:8888
ftp_proxy = http://123.45.67.890:8888
proxy_user = proxyuser
proxy_passwd = proxypass
```

* git

```bash:command
git config --global https.proxy http://proxyuser:proxypass@123.45.67.890:8888
git config --global http.proxy http://proxyuser:proxypass@123.45.67.890:8888
git config --global url.https://github.com/.insteadOf git://github.com/
```

* nvm

```bash:command
export HTTP_PROXY=http://proxyuser:proxypass@123.45.67.890:8888
export HTTPS_PROXY=http://proxyuser:proxypass@123.45.67.890:8888
export FTP_PROXY=http://proxyuser:proxypass@123.45.67.890:8888
```

* npm

```bash:command
npm config set proxy http://proxyuser:proxypass@123.45.67.890:8888
npm config set https-proxy http://proxyuser:proxypass@123.45.67.890:8888
npm config set registry http://registry.npmjs.org/
```

2. エディタ
-----
サーバにcloud9をインストールしようとしていた時期からしばらくたち、今度はAtomやらに興味を持ち始め、使ってみようとしました。。
※AtomについてはHttpProxyAuthの設定は不要です。

プラグインがインストールできませんでした。。

* Atom

```bash:command
#コマンドプロンプトで入力
apm config set https-proxy http://proxyuser:proxypass@proxy.test.co.jp:88
apm config set strict-ssl false
```

参考：[ATOMエディタのproxy設定](http://qiita.com/tsukamoto/items/cef0f2d7e2b33a26a9e5)

3. あとがき
-----
Unity、bundle install、、、種類が多すぎる。。


手記はここで途絶えている