読者です 読者をやめる 読者になる 読者になる

Windows用sshクライアントとして gnupack cygwin が優秀な件

■はじめに

Windows環境をメインで利用している場合、「sshクライアントの選択」は結構悩む。
僕は自宅PCも会社のPCもWindowsメインなので、普段からお仕事でLinux系マシンにお世話になっている身としては「どのsshクライアントを使うか?」という部分は重要だったりする。(「Mac買おうよ」という話はごもっとも。)

最近、とあるきっかけで「gnupack」というツールを教えてもらって、その中に入っている cygwin に感動したのでまとめてみる事にした。

※gnupack のダウンロードは↓から(-devel がオススメ。詳細は後述)

■今日のまとめ

  • 会社の人に「綺麗なフォント」の gnupack を教えてもらった
  • cygwin 環境の構築・運用で不満だった色々な点が解決される
  • sshconfig + tmux で幸せなマルチウィンドウsshクライアントに早変わり

■会社の人に「綺麗なフォント」の gnupack を教えてもらった

普段から社内をブラブラして色々な人に声を掛けたり掛けられたりしている僕ですが、ある日たまたま足を運んだエンジニアさんの画面に表示されているターミナルの日本語文字が綺麗だったので「そのフォント何ですか?」と聴いたのが gnupack を知ったきっかけ。

cygwin とか emacs とかがまとめてインストール出来るんですよー」というemacs推しの彼の説明を聴きながら「vimは無いんですか?」と空気を読まずに聴いたり、やり取りを何度かする中で

  • cygwin環境を一発で構築できる
  • GUI版の emacs が一緒に入っている
  • 綺麗なフォントが入っている
  • GUI版の gvim も入っている

等の「オラ、何だかワクワクして来たぞ」という感じの情報を受けたので、早速自宅に帰ってインストールしてみた。

cygwin 環境の構築・運用で不満だった色々な点が解決される

実際に使ってみて感じた便利な点は以下の通り。

  • ダウンロードしたファイルを解凍したら即 cygwin が使える(インストーラ形式ではない)
  • インストールとパッケージ管理がだいぶ楽(apt-cyg が最初から入ってる)
  • gcc, ruby, python や git 等の基本的な開発ツールも入ってる(devel版)
  • 様々なcygwin環境変数を単一のテキストファイルで管理できる(システムプロパティに影響しない・影響を与えない)
  • 標準のMiguフォントが綺麗(前述した綺麗なフォントはコレ)

cygwinGUIでセットアップしていた人にしてみたら、「一発解凍・即利用可能(主要パッケージ込)」は非常に嬉しいと思う。

パッケージ管理について、実はこれまで apt-cyg の存在を知らず、cygwin でのパッケージ更新はGUIもしくはsetup.exe にオプションを繋げる形でインストールしていた。なので、これだけでも非常にcygwinの運用が楽になった感じがある。

また、Windowsシステムの環境変数を気にせず独自の環境変数を定義したり上書きしたり出来るので、cygwin用に割り切った環境設定が出来る。
一般的な環境変数以外にも、「cygwin起動時のディレクトリ」や「cygwinへのログオンユーザ」等も指定可能。それらがすべて単一のファイルで管理されているのも良い。

Miguフォントは、好みが出るかもしれないけど、僕は好きです。(gnupackを教えてくれた人曰く、「パ」のフォントがとても良い、との事)

■sshconfig + tmux で幸せなマルチウィンドウsshクライアントに早変わり

僕が知らない内に tmux が cygwin 上で動作するようになっていたのと、apt-cyg でのインストールに対応していたので、tmux 環境もあっという間に構築出来た。
また、UNIXライクな環境という事でいわゆる sshconfig を使って接続ホストの細かい管理も可能。
tmux と組み合わせれば「sshconfigが有効なマルチウィンドウsshクライアント」の出来上がりとなる。

■tmuxが「Permission denied」とされてしまう件

実は、tmuxインストール後に

$ tmux
can't create socket: Permission denied

と出てしまい実行できなかったのだけど、 このサイト を参考に「TMUX_TMPDIR」の環境変数を指定したら動くようになった。

■最後に

これまで cygwin の環境構築と運用が面倒だったので単独ターミナルに逃げてたけど、これは良いものだ。