【cygwin】cygwin環境を作り直す

# 1. 背景

rubygemとredmineの関係がよく分からず、ぐちゃぐちゃな手順でインストールした。また、64bit環境にしてから随分時間が過ぎているので掃除の意味で作り直すことにした。

# 2. 前提条件

- Window10ノートパソコンの環境で、他に利用者はいない
- 独自データは ```/home``` 以下のみ
- ```/usr/local``` 以下はnkfしかインストールしていない。
    - もし他にもあれば、気づいた時にインストールすればいい
- Redmineをセットアップしたら、```files/```, ```db/redmine.sqlite3```がバックアップ対象になる予定

# 3. 手順
## 3.1. 準備

1. Windowsサービスとして動作していたcronを停止、サービスの登録を削除。
2. cronの設定内容を ```crontab -l > crontab``` で保存、cvs環境に保存。
3. ```mv cygwin64 cygwin64.bak```

## 3.2. インストール

4. 新たに ```setup-x86_64.exe``` を用意する。
5. ```c:\Users\<username>\Downlodas\src``` 以下にあるキャッシュフォルダーを削除
6. インストール
    - 先ずは追加パッケージは指定せずインストール
    - 以下は直ぐに使うことが分かっているので追加インストール
        - ```cvs```, ```gcc-core```, ```make```, ```ed```, ```bc```
        - ```vim``` シンタックスハイライトに対応
            - 元から入っている ```/usr/bin/vi``` は ```vim-minimal```
                - カテゴリが ```Base``` のため見落としていた
                - uninstallはできるけど奨励されていない風だった
        - ```cygrunsrv```, ```cron```
        - ```ruby```, ```ruby-devel```
7. 新cygwin端末を一度立ち上げ、確認

## 3.3. 元の環境を再現

8. ```c:\cygwin64.bak\home``` 以下のフォルダーを移動
    - 上書きの有無の確認があったHOME直下の6つの設定ファイル
        - ```.bashrc```, ```.bash_profile```, ```.bash_history```
        - ```.inputrc```, ```.profile```, ```.minttyrc```
9. その他、インストール後の作業
    - cvs環境で ```cvs update``` を実行し、問題ないことを確認
    - ```cron``` をWindowsサービスに再登録
    - cygwin端末の設定調整
    - 新cygwin環境から、```rm -rf``` で旧環境を削除
        - 一番ドキドキする作業

# 4. 初期設定

## 4.1. ```~/.vimrc``` の内容

```vimscript
set nocompatible
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac

set ruler
set number
set smartindent
set showcmd
set cursorline
set incsearch

set cursorlineopt=number,line
set backspace=indent,eol,start

syntax enable
set t_Co=256

set listchars=tab:>-,nbsp:.,trail:_
set whichwrap=b,s,[,],,~

highlight LineNr     ctermfg=darkgray
lighlight CursorLine ctermbg=darkgray
autocmd SourcePost * highlight Search  ctermfg=red
autocmd SourcePost * highlight Search  ctermbg=darkblue
autocmd SourcePost * highlight Comment ctermfg=blue
autocmd BufRead,BufNewFile *.sh  set filetype=zsh
autocmd BufRead,BufNewFile *.raw set filetype=html
autocmd BufRead,BufNewFile *.sed set filetype=html
```

- ```set t_Co=256``` では目が疲れる色を調整した
- autocmdをつけないと設定が反映されないものがある
    - 参考にした ```VimEnter```,```ColorScheme``` では有効にならない設定がある
        - 今のところ ```SourcePost``` が最強
- 「検索ハイライト」はForeGroundとBackGroundを設定しています。
    - vim利用時に直前の検索分を無効にしたい時は ```noh``` でOK

## 4.2. ```~/.bash_profile``` の内容

追記しているものについて

```bash
export PS1='\[\e]0;\w\a\]\n\[\e[34m\]\u@\h \[\e[36m\]\t \[\e[32m\]\d \[\e[33m\]\w\n \[\e[35m\]\# \[\e[0m\]\$ '
export EDITOR=/usr/bin/vim
```

- ```.vimrc``` で設定した色のを意識している
    - 1行目 ```\[\e]0;\w\a\]``` よく分かっていない
    - 2行目 ```\[\e[34m\]\u@\h \[\e[0m\]\t \[\e[32m\]\d \[\e[33m\]\w```
        - 青 ```\[\e[34m\]``` でユーザー名(\u)とホスト名(\h)
        - 水色 ```\[\e[36m\]``` で時刻(\t)
        - 緑 ```\[\e[32m\]``` で日付(\d)
        - 黄色(\[\e[33m\])でカレントディレクトリ(\w)
    - 3行目 ```\[\e[35m\]\# \[\e[0m\]\$ ```
        - 紫 ```\[\e[35m\]``` で履歴番号(\#)
        - 白 ```\[\e[0m\]``` でプロンプト(\$)
    - 背景の黒も含めれば、赤いの全色を使った。
        - 赤はgrepのハイライトで使われている
- 端末の設定により ```LANG=C.UTF-8``` となっているので日付(\d)は英語表記

## 4.3. ```~/.inputrc``` に追記する内容

```bash
"\C-h": backward-char
"\C-j": next-history
"\C-k": previous-history
"\C-l": forward-char

"\C-a": beginning-of-line
"\C-e": end-of-line

"\C-d": backward-delete-char
"\C-g": delete-char

"\C-f": reverse-search-history
"\C-m": accept-line
```

- 使用頻度の高い操作について、慣れたキーバインドに変更。
- 現在の設定を確認したい時は ```bind -p``` を実行。

# 5. 雑記

- ```ls``` の表示が、文字の大小を区別するようになっている。
    - https://news.mynavi.jp/article/win10tips-285/

# A. 附則. 参考
## A.1. インストール後の容量

インストール直後の ```c:\cygwin64```、データ移動後の ```c:\cygwin64.bak``` の容量

![新CYGWIN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665190/d95e79ad-6dd2-cf0d-c834-a3fe6d896417.png)
![旧CYGWIN.png]-(https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665190/c9f227b8-a9e4-2ab4-beb7-c7f75c4b522e.png)

- 旧cygwin64.bakには削除予定のフォルダーがあった。500MB未満。
- オーナーが異なるため、```rm -rf```でも削除はエラー。
    - 念の為残すことにした。新cygwin環境へ移す。

## A.2. 端末の設定

変更点のみ。設定内容は ```.minttyrc``` に保存される。

![2020-07-28端末テキスト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665190/e6932809-a330-bf5b-f3fc-002eb480dd05.png)
![2020-07-24端末設定ウィンドウ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665190/d02f4243-6ed1-7129-ff46-eb26cce695ca.png)

- UIが以前と変わっていた。
- 細かいことを言うと「スクロール行数」のデフォルトはもっと小さかった。

# 履歴
2020-07-28　追記。雑記
2020-07-28　追記。```ed```, ```redmine```
2020-07-26　更新。```.vimrc```, ```.bash_profile```
2020-07-25　追記。```.vimrc```, ```.bash_profile```
2020-07-24　公開。トラブルがあれば追記予定。

# 以上