Cygwinを導入する(3)

Cygwinのインストールが終わったら、各種設定やカスタマイズを行う。ここでは筆者が行った例を示す。

mintty・bashの設定

  • Cygwinのインストール完了後、デスクトップアイコンから起動すると、端末が開く(mintty + bash)。
  • 端末を右クリック→「Options」でフォント等をカスタマイズする。
  • Looks
    • Transparency: Med.
    • Cursor: Block, Blinking
  • Text
    • Font: MS ゴシック, 12pt (適当な等幅フォント)
    • Locale: ja_JP
    • Character set: UTF-8
  • Window
    • Default size: Columns 85, Rows 30 (適当なウィンドウサイズ)
    • UI language: ja
  • Terminal
    • Type: xterm (またはxterm-256color)

bashの設定

  • デフォルトでは/home/[ユーザ名]がホームディレクトリになる。
    • ここにbash関係のデフォルトのドットファイル群がコピーされる。
    • Windows上で環境変数HOMEが存在すればそこがホームディレクトリとなる。
    • Windowsの自分用フォルダをホームにしたければ環境変数HOME%USERPROFILE%またはC:\Users\[ユーザ名]としておくと良い。こうしておくと、/cygdrive/c/Users/[ユーザ名]がホームディレクトリになる。
    • HOMEを設定した場合、デフォルトのホームディレクトリからドットファイル群をコピー(移動)しておく。
  • bashの設定ファイル(.bash_profile, .bashrc)を必要に応じてカスタマイズする。
    • aliasは、.bashrcのコメントを外して.bash_aliasesを読み込むようにする。.bash_aliasesがなければ自分で用意する。
    • pingは、パッケージ版を導入している場合は/usr/bin/pingが使われるので問題ないが、Windowsのpingやipconfigを使う場合は文字化け対策が必要。
# .bash_alias for Cygwin
...
# Use Windows commands.
function wincmd() {
  CMD=$1
  shift
  $CMD $* 2>&1 | iconv -f cp932 -t utf-8
}
alias ipconfig='wincmd ipconfig'
alias netstat='wincmd netstat'
alias ping='wincmd ping'
...
  • パスは、Windows上のPATHに加え、/usr/local/bin, /usr/bin等が追加されている。このため、例えばWindows上に導入したJDKのjavacも使える。

パッケージマネージャapt-cygの導入

  • wgetでapt-cygを導入する。ちなみに、apt-cygは単なるbashのスクリプト。
$ wget https://raw.githubusercontent.com/kou1okada/apt-cyg/master/apt-cyg
$ mv apt-cyg /usr/local/bin
  (↑パッケージで管理されておらず、後で導入したのでlocalに入れた)
$ chmod +x /usr/local/bin/apt-cyg

追加コマンド(パッケージ)のインストール

コマンドは最低限のものしかインストールされていないので、必要なパッケージを追加でインストールする。apt-cygでインストールするのが簡便で良いが、もしapt-cygが使えなかったらsetupのGUIで行っても良い。

$ apt-cyg find [パッケージ名] で検索できる。
$ apt-cyg install [パッケージ名] でインストール。
$ apt-cyg -X install [パッケージ名] うまくいかなかったらこれ。
  • GnuPG: gnupg
  • Cコンパイラ: gcc-core
  • curses関係: ncursesのワイドキャラクター対応版のncursesw, libncursesw-devel, ncursesw-demo
    (これらをインストールすれば、w版じゃない方もインストールされる。clearコマンドも一緒にインストールされる。)
  • make: make
  • man系: man-pages-posix
  • あとは必要に応じて…

Bash Prompt Hereの導入

Windowsのエクスプローラのコンテキストメニューに「Bash Prompt Here」を追加する。

  • パッケージ名: chere
  • 管理者権限で開いたbash上でchereを実行する。
$ chere -isa -t mintty
  • 「何のシェルを使ったらいいかわからない」エラーが出る場合は、明示的にbashを指定する。
$ chere -ia -s bash -t mintty
  • -e "Open in Bash(&B)"とかすると、コンテキストメニューの文字列をデフォルトから変更できる。必要に応じて。
  • -t minttyをつけないと、端末エミュレータとしてデフォルトのコマンドプロンプトになってしまうので注意!

その他

  • Cコンパイラインストール時にMD5のエラーが出る場合、apt-cygスクリプト内の「md5sum」を「sha512sum」で書き換える。あらかじめgrepであたりを付けておくと良い。
$ cat -n /usr/local/bin/apt-cyg | grep "md5sum"
  • Cygwinのルートディレクトリ/は、WindowsのC:\cygwin64 (Cygwinのインストールフォルダ)に相当する。この配下にbinusr等がある。また、Cygwinの/配下には、/cygdrive/cとしてWindowsのCドライブがマウントされている(ように見える)。
  • apt-cygを書き換えるのは、Cygwin上で適当なエディタでやっても良いが、Windows上でC:\cygwin64\usr\local\bin\apt-cygをいじっても良い。

以上、お疲れ様でした。

[参考] アップデート

  • 管理者権限setup-x86_64.exeを実行。
  • 「Pending」状態になっているものがアップデートが必要なパッケージ。
  • 「次へ」でアップデートする。

令和元年10月16日