環境構築：Cygwin+Emacs+Python（gnupack+Anaconda）

色んなところでやりそうな作業なので記録。著者の都合と気分で更新する予定。

* 2019.05.15 不要な情報を削除＆整理

**概要**

* ターミナル＆シェル
* エディタ
* Python環境
* （ついでにgitとか）

を仕事や勉強で使うWindows機に手っ取り早く揃えたいので、
パッケージ化されているものをインストールして組み合わせつつ少々弄る。

**前提**

* Windows10（64ビット）
* gnupack_devel-13.06-2015.11.08
* Anaconda3-5.1.0-Windows-x86_64（Python 3.6）

## 導入 - gnupack と Anaconda

#### [gnupack](http://gnupack.osdn.jp/docs/UsersGuide.html)

Emacs（エディタ）とCygwin（ターミナル＆シェル環境）とgvim（宗教的配慮）等が入ったパッケージ。
個人的に良いところを挙げるなら以下のような感じ。

* 全般：日本語環境・マニュアル・文字コード対策がだいたい整っている。
* Emacs：外観・フォント等も含めてほぼそのまま使える状態に設定されている。
* Cygwin：特にない。Cygwin自体が便利。

#### [Anaconda](https://www.anaconda.com/download/)

Python＋特定界隈がよく使うパッケージ群。
自分はnumpy, matplotlib, scipy辺りをちょくちょく使うが、この辺が最初から入っている。
Pythonのライブラリは1個ずつ入れると結構メンドイので助かる。

## 作業

#### gnupackインストール

インストールというか、ダウンロード＆展開。
[公式サイト](http://gnupack.osdn.jp/docs/UsersGuide.html)からダウンロードする。
以下の2種類があるが、gitが欲しいのでここではdevel（開発者向け？）を選ぶ。

* basic - 基本
* devel - git/svnとかgccとかpython（今回は不要）とかが追加されている

インストーラを起動すると置き場所を聞かれるので、ファイルを展開する。
日本語名フォルダの下とかは避けた方が無難。


#### プロンプト設定

Cygwinのgnupack初期設定のプロンプトがあまり好きでないので、`~/.bashrc`を少し修正する。

```shell:~/.bashrc（一部）
# コマンドプロンプト
export PS1
PS1="\$(
            echo -ne \"\[\e[0;32m\][\u@\h]\[\e[0;0m\]\"
            echo -ne \"\W% \"
        )"

# 以下初期設定、コメントアウト
# export PS1 PS2
# case $TERM in
#     xterm*|emacs)
（中略）
# esac
```

```:変更前
# Host: MY-PC | Time: 2018-05-06 xx:xx:xx | User: noriben
# Path: /desktop
# #
```

```:変更後
[noriben@MY-PC]desktop%
```

##### *apt-cyg差し替え*

[公式版](https://github.com/transcode-open/apt-cyg/blob/master/status.md)は更新終了しているので[Fork版](https://github.com/kou1okada/apt-cyg)をダウンロードしてくる。
ファイル`apt-cyg`で`gnupack_***-***/app/script`以下にあるものを置き換える。
Fork版は色々[^1]乱立しているらしいが、上記のものが無難そう。
[^1]: 「色々」に関しては[ここ](http://seesaawiki.jp/w/kou1okada/d/apt-cyg)にまとめてくださっている。

##### apt-cygプロキシ設定

学校とか会社とかだと、プロキシ設定しないとmirrorへの接続中に止まる。
pipとかだと`--proxy URL:ポート番号`みたいにオプションを付ける。
apt-cygは上手く行かない場合があり、だいたい以下のwgetの設定で解決する。
`/etc/wgetrc`を直接編集するか、`~/.wgetrc`にコピーして以下の項目を修正する。

```:.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 = URL:ポート番号
http_proxy = URL:ポート番号
ftp_proxy = URL:ポート番号
```

##### tmux（お好み、未解決）
tmuxが便利なので使いたいが、そのまま実行すると動かない。

```
[noriben@MY-PC]desktop% tmux
can't create socket: Permission denied
```

`/tmp/tmux-{UID}`のパーミッションを700に変えるのもグループを変えるのも上手く行かず、
結局`/var/tmp`以下にディレクトリを置く設定に変えたら動く模様。

```sh:~/.bashrc
export $TMUX_TMPDIR=/var/tmp/tmux
```

...と思ったのだが、これが実行こそすれど息をしない。

```
[noriben@MY-PC]~% tmux
[noriben@MY-PC]~% tmux -V
[noriben@MY-PC]~% tmux -v
```
他のPC（Win7, Win10）だと動いたので、手元で何かやらかしただけかも？

##### Cygwin/x（お好み）
sshで開発用のサーバ等に入ってGUI作業をするのに使う。
ここで必要な作業はxinitのインストールのみ。

```
[noriben@MY-PC]~% apt-cyg install xinit
```
念のためxclock等で動作確認しておく。

```
[noriben@MY-PC]~% ssh -Y [適当なサーバ]
[noriben@MY-PC]~% xclock
```

#### Anacondaインストール

[ダウンロードページ](https://www.anaconda.com/download/)からインストーラを落としてきて実行する。
推奨設定から変更が必要な項目は特に見当たらなかった。

`gnupack_***-***/home`直下の`.bashrc`に以下を追記する。

```shell:.bashrc
# Anaconda
PATH=:/c/Users/noriben/Anaconda3:$PATH
PATH=/c/Users/noriben/Anaconda3/Scripts:$PATH
PATH=/c/Users/noriben/Anaconda3/Library/bin:$PATH

export PATH
```

gnupack-develを選んでいた場合、Cygwinに元々入っているpythonを追い出す形になることに注意。
よく触るものだと、pythonは`Anaconda`、pip, conda, easy_installなどは`Anaconda/Scripts`に入っている。
`Anaconda/Library/bin`は省いても良い？

**注意**
対話モードでいくつか使用上の問題あり。

* `python`で起動しない（Minttyの仕様のせい、`-i`を付ければ起動）
* 矢印（`C-p`等含）が文字入力になる


## まとめ
基本的にはインストール＋設定ファイルいくつかの修正で動く。
＋αで必要な個人設定を各自で実施・管理する。