初版作成 2006.4
最終更新 2024.04.01
cygwin.com に接続する。を実行する。 デフォルト設定でインストールすると、 インストール先 C:\cygwin パッケージ置き場 C:\user-home\downloads となる。 私はパッケージ置き場は C:\cygwin\package (手動で作成) に変更した。 ダウンロード元は ftp.jaist.ac.jp にした。 デフォルトでは以下のコマンドはインストールされない。 make, emacs, tcsh, gfortran, patch 最初にインストールしなかった場合、setup.exe を実行して 追加インストールする。 setup.exe (ダウンロードにある) は 何回でも使うので C:\cygwin に置いた。 fortran は gfortran がインストールされるので # cd /usr/bin # ln -s gfortran f77 として f77 でコンパイルできるようにしておく。 <追加情報> 2015.10 は setup-x86.exe と setup-x86_64.exe に分かれている。 2015.11 現在、古い setup.exe で接続すると unable to get setup.ini という エラーが出て追加インストールできない。setup-x86.exe か setup-x86_64.exe の いずれからをダウンロードしてきて使うこと。
cygwin のアイコンは c:\cygwin\cygwin.bat への シンボリックリンクである。中身は以下の通り。 ----------------------------- @echo off C: chdir C:\cygwin\bin bash --login -i ----------------------------- bash.exe が実行される。bash は当初コンソールアプリであったが、 2015.9.8 にインストールした cygwin の bash は c:\cygwin\bin\mintty と同一である。 デフォルトではフォントが小さいので、 「右クリック」→「options」で設定する。 $ pwd の結果は /home/user-name である。 / の実体は C:\cygwin である。 /home/user-name の実体は C:\cygwin\home\user-name tcsh を使いたいときは、bash でログインした後、tcsh と打てばよい。
(1) C++Builder との競合 bash.exe を起動すると、path 変数は /usr/bin などの Unix の 基本的なパスと Windows で設定されていたパスの両方が設定される。 cygwin の make をインストールしていない状態で、 C++Builder ver.1 をインストールしている場合、 make と打つと、C++Builder 付属の make コマンド が起動される。この make コマンドは cygwin の make とは異なる構文規則 を持つので、エラーが発生する。 どの make を使っているかは which make で確認できる。 (2) 生成するコマンド abc : a.o cc -o abc a.o と書いてある場合、cc の結果生成されるファイルは abc ではなく abc.exe である。 ygwin の make コマンドは abc というファイルが存在しない場合、 abc.exe と a.o のタイムスタンプを比較する。 abc というファイルが存在する場合、abc と a.o を比較する。 abc は make しても更新されないので、make が永遠に終わらない。 Linux や FreeBSD で開発したフォルダを cygwin 用にコピーした場合、 最初に $ make clean を実行してバイナリを削除する。 次に、make clean と打ったときに *.exe ファイルが削除されるよう、 Makefile を書き換える。
cygwin.bat をダブルクリックすると bash.exe が起動する。 それ以外に、 c:\cygwin\bin\mintty.exe というターミナルエミュレータもある。 以前は bash.exe はコンソールアプリ、 mintty.exe はウィンドウズアプリだったが、 2015.9.8 にインストールした cygwin においては、 bash.exe と mintty.exe は同一である。 mintty は「右クリック」→「options」でフォントサイズを 変更できる。 以前の mintty ではフォントを「MS ゴシック」に変更したら、 デフォルトのフォントである Lucretia ? に戻せなくなってしまった。 mintty は行間を広くするオプションが見当たらない。 kterm や mlterm なら -lsp オプションがあるので、 mlterm の方が良いように思われる。
X11 -- libX11 X11 -- libX11-devel をインストールすると libX11.a をリンクしたり X のインクルードファイルが使えるようになるようだ。 nsgraph がインストールできた。
UTF-8 が使えないという欠点はあるが、昔から使っている kterm を使おうと 思い、コンパイルしてインストールする。 まず、 X11 -- libX11 X11 -- libX11-devel をインストールした。次に X11 全体をインストールした。 リンク時に ncurses がないというエラーが出るので ncurses 関係もインストールされている必要がある。 ncurses で検索し、devel 以下の ncurses 関係のものをインストールする。 kterm-6.2.0 のソースファイルやパッチの当て方の説明は このサイトにある。 ただし、パッチを当てる部分に誤植がある。 パッチは このサイト にある。 $ tar zxf kterm-6.2.0.tar.gz $ cd kterm-6.2.0 $ patch -p1 < ../kterm-6.2.0-cygwin.patch ( < の向きに注意) 。 $ xmkmf $ make $ make install 以上で /usr/bin/kterm.exe が作成される。 ctrl + マウス中ボタン で漢字コードを EUC にする。デフォルトは S-JIS
cygwin mlterm で検索すると http://mlterm.sourceforge.net/cygwin-msys.html に mlterm がある。cygwin, Windows, Android 版がある。 cygwin 版をインストールしたが、X ではなく windows アプリケーション のようだ。 mlterm-cygwin-201xmmdd.zip というファイルがある。展開した後、 (1) bin ディレクトリ内の全てのファイルを c:/cygwin/usr/bin にコピー (2) etc フォルダ以下を c:/cygwin/etc 以下にコピー (3) lib フォルダ以下を c:/cygwin/lib 以下にコピー で mlterm が使えるようになった。FreeBSD で使用している このファイル を ~/.mlterm 以下にコピーする。
ラズベリーパイの標準ターミナルである lsterminal をインストール してみる。 shells の下にある。
sourceforge.jp から nkf-2.1.2.tar.gz をダウンロードする。 $ tar zxf nkf-2.1.2.tar.gz $ cd nkf-2.1.2 $ make $ cp nkf.exe /usr/bin
ポストスクリプトプリンタが接続されており、PS ファイルが作成済 であることを仮定する。 Windows 7 上で「コントロールパネル」→「デバイスとプリンター」 「プリンタを右クリック」→「プリンターのプロパティ」→ 「プリンタ名をクリック」→「ポート」で プリンタに対応するポート名を見ることができる。 USB に接続されている場合は USB001, ネットワークプリンタの場合は IP_192.168.xx.yy のような名前になっている。 この名前を、 % setenv PRINTER USB001 ( csh 系の場合 ) $ export PRINTER=USB001 ( sh 系の場合 ) のように PRINTER 環境変数に指定する。 $ lpr ps-file-name でファイルが、そのままプリンタへ送られ、印刷される。
setup.exe で X11 全体を「install」としてインストールすると、 X 関連のものが多数インストールされる。 $ startx で X server が起動し、xterm が 3 つ作成される。 X server はネットワーク通信をする Windows アプリとしてふるまう。 startx はシェルスクリプトで内部で xinit を呼ぶ。 xinit は Windows のアプリケーションで内部で /usr/bin/X を呼ぶようだ。 Astec-X などの市販の X Server を持っている人は それを起動して使う方が良いと思われる。 DISPLAY 環境変数の設定は以下の通り。 setenv DISPLAY 127.0.0.1:0.0 ( tcsh の場合 ) export DISPLAY=127.0.0.1:0.0 ( bash の場合 )
% setenv CVSROOT :pserver:anoncvs@cygwin.com:/cvs/src ( tcsh の場合 ) % cvs login パスワードは「anoncvs」 % cvs checkout winsup
上記の手順でコンパイルした kterm は nkf で実験すると、 iso-2022-jp と Shift Jis は表示するが、Euc は文字化けが起こる。 そこで、emacs -nw で起動する場合、次の 2 つを実行する必要が ある。 M-x set-language-environment Japanese M-x set-terminal-coding-system sjis-dos .emacs に書く場合は、 ( set-terminal-coding-system 'sjis-dos) ( set-language-environment "Japanese") Windows の IME を利用して日本語を入力する場合、 ( set-keyboard-encoding-system 'sjis-dos) を .emacs に書く。 私の kterm + emacs -nw の場合、 「Alt + 漢字」の操作後、「何か一文字入れる → Ctrl-H」を実行した後 でないと、正しく日本語が入らない、という現象が発生している。
ここに私が使っている設定ファイルなどを 置いておく。
$ startx & で X Window System が起動する。 デフォルトで twm と xterm が起動することが多いが、 何も起動しない場合は、最初に起動した cygwin terminal で 次のように打つ。 $ export DISPLAY=localhost:0.0 $ xterm & xterm の中で $ twm & xterm は漢字が使える。 色は VT Options --- Enable Reverse Video で黒にする フォントは VT Fonts --- Large で大きくする X に切り替えるにはタスクバーの右下の X のロゴの アイコン(▲印の中に隠れていることもある)をクリックする。 ASCII キーボードになるので、右下タスクバーの 「ENG」をクリックして「日本語」を選択すると JIS キーボード になる。 2015.9 にインストールした X Server は外部からの接続を 受けつけない。 % setenv DISPLAY :0.0 OK % setenv DISPLAY localhost:0.0 NG % setenv DISPLAY 127.0.0.1:0.0 NG 2013.5 にインストールした cygwin (startx で xterm が 3 つ 起動する) の X server は問題ない。 (参考)http://kurokawh.blogspot.jp/2015/09/cygwin-cygwinx-serverxwin.html XWin.exe の起動パラメータに -listen tcp を 追加すればよい。 /usr/bin/startx は bsh script である。オプションを以下のように設定する。 defaultserverargs="-listen tcp" $ xhost + を忘れないように。 Windows8 の場合は、Windows ファイアウォールが外部からの 接続を妨害する。 「コントロールパネル」→「Windows ファイアウォール」→ 「Windows ファイアウォールを介したアプリまたは機能を許可」 「設定の変更」 Xming X Server, xwin に対して許可を出す。 初回の X Window System の起動時に接続を許可するか否か聞いて くるので、「許可する」をクリックする。
3 年ほど前にインストールした 32 bit 版 cygwin の X Server と 2015.9 にインストールした 64 bit 版 cygwin の X Server は 以下の違いがある。 2012 頃の cygwin /usr/bin/telnet がある X server で存在しないサイズのフォントを要求されたとき、 適当に別のサイズのフォントを拡大・縮小するようだ。