【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. インストール

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

3.3. 元の環境を再現

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

4. 初期設定

4.1. ~/.vimrc の内容

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 の内容

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

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 に追記する内容

"\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. 雑記

A. 附則. 参考

A.1. インストール後の容量

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


![旧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 に保存される。


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

履歴

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

以上