理工系研究者のための Mac OS X, Windows, Linux メモ
 
ホーム >> Windows関連 >> Cygwin
このエントリーをはてなブックマークに追加

Cygwin関連

インストール

  1. mplusフォントをインストールする
  2. Anthyのインストール(emacsで使うため)
  3. screen のインストール
  4. pLaTeXのインストール
  5. gnuplot4.1のインストール

トラブル対応

  1. Permission deniedが出たら
  2. aux.cという名のファイルが作成出来ないのはなぜか
  3. Windows 7でX Windowが起動しない場合の対応

設定

  1. sshサーバーを起動したい
  2. Dual monitorでcygwin/X を利用する
  3. ホームディレクトリを変更する

Tips

  1. シンボリックリンク・ハードリンク
  2. ターミナルからフォルダやファイルを開く
  3. パスの対応
  4. /cygdrive/c を /c に変更する
  5. X windowを起動する

sshサーバーを起動したい

作成日:2007.3.18

OpenSSHを事前にインストールしておく。 サーバーに必要な設定ファイルを作成するために

$ ssh-host-config

を実行。

次にsshdを起動する。

$ /etc/rc.d/init.d/sshd start

起動中に

/var/lock/subsys/sshd

が作成できないというエラーが出たらこのディレクトリを作成してみる。

$ mkdir -p /var/lock/subsys

そしてsshdを再び起動する。

サーバーをcygrunsrvで起動しておくと、次回からシステム起動時に自動的に起動する。

$ cygrunsrv -S sshd

クライアントからアクセスしてみて、Permission denied が出るようだったら、サーバーを

$ /usr/sbin/sshd -d

として起動し、ログを見てみるとよい。パスワード認証に失敗しているようならサーバー側のユーザーのパスワードが設定されていない可能性がある。

$ passwd username

でパスワードを設定しなおしてみるとよい。

Vistaの場合には、ファイアウォールの設定を変更する必要がある。

コントロールパネル>セキュリティ>Windowsファイアウォール
  >設定の変更>例外>ポートの追加
名前:sshd
ポート番号:22
プロトコル:TCP
必要なら、スコープも設定する。

aux.cという名のファイルは作成出来ません

作成日:2007.3.18

aux.c は Windows の予約済みファイル名なので作成できない。 tarアーカイブ内にこのファイル名のファイルが存在する場合にはaux.cを展開するところで停止してしまうので注意。 例えばkinput2のアーカイブをCygwinターミナルで展開しようとするとこのファイルが含まれるため失敗する。

シンボリックリンク・ハードリンク

作成日:2007.2.4

WindowsXPでは、Linuxのシンボリックリンクに似た機能として、ショートカットがある。ファイルやフォルダのショートカットを作成しておくと、そのショートカットをダブルクリックするだけで、ファイルやフォルダを開くことが出来る。ただしショートカットの場合、リンク先のファイルを移動したり、名称変更してしまうと参照できなくなる点がシンボリックリンクと異なる。

Cygwin上でlnコマンド使ってシンボリックリンクを作成し(ln -s)、Explorerから見るとショートカットに見える。ところが逆にExplorerで作ったショートカットをターミナルからlsコマンドで確認すると拡張子lnkの付いたファイルに見え、シンボリックリンクとしては使えない。 ショートカットはファイルの分身というより、ランチャーに近い。 このためWindowsのアプリによってはショートカットを開こうとしても、リンク先ファイルを参照できないことがある。 具体的にはwgnuplot.exeにおいてloadコマンドでショートカットを読み込もうとしてもリンク先ファイルを読むことが出来ない。これはシンボリックリンクでも同様である。

このwgnuplot.exeのloadコマンドによる問題を解決するにはハードリンクを作成するとよい。 lnコマンドでハードリンクを作成すれば、ファイルシステムがNTFSならばWindows上でもハードリンクとして認識される。 wgnuplot.exeのloadコマンドでも読み込んでくれる。

M+ BITMAP FONTSをインストールする

更新日:2007/2/17
更新日:2011/2/3

M+ BITMAP FONTS はX Window Systemで用いることことを想定し、可読性を重視したフォント。 mplusの公式サイトからビットマップフォントを取得することができる。パッケージに含まれるインストーラを用いれば簡単にインストールできる。 現時点での最新版 mplus_bitmap_fonts-2.2.4.tar.gzを取得し、アーカイブを展開しインストールスクリプトを実行する。

$ ./install_mplus_fonts

インストールしたフォントのパスを追加するために次のコマンドを実行しておく。

$ xset fp+ /usr/X11R6/lib/X11/fonts/mplus
フォントパスが自動的に設定されるようにするためには~/.startxwinrcに書いておく。
# ~/.sartxwinrc
xset fp+ /usr/X11R6/lib/X11/fonts/mplus
xterm -geometry +1+1 -n login -display :0

Emacsのフォント設定については、MPLUSのウェブサイトのMPLUSのウェブサイトをみて設定する。

またEmacsのフォント設定の仕組みについては、このサイトのEmacsのページにも書いている。

ターミナルからフォルダやファイルを開く

更新日:2007.2.17

ターミナル上でファイル操作をしている場合にExplorerでファイルを表示したり、ファイルを開いたい場合にcygstartコマンドを用いる。

$ cygstart /path/to/some/dir
Windowsの場合、特定の拡張子とアプリケーションが関連付けられているので、ファイルを開く動作でアプリケーションも同時に起動できる。例えばPDFファイルを開けば、Acrobat Readerが起動して、ファイルが表示される。
$ cygstart sample.pdf

ホームディレクトリを変更する

作成日:2007.1.4

Cygwinでは特に設定しなければ、ホームディレクトリは

/home/username 
(Windowsのフォルダ階層では C:¥cygwin¥home¥username)
になる。ホームディレクトリを変更(例えば C:¥home¥username)したい場合には、次の点を確認する。

[1] WindowsXPにおいてユーザー環境変数を指定する。

HOME   /cygdrive/c/home/username

[2] /etc/passwd を開いて、ホームディレクトリが正しく設定されているか確認する。

username: .. : .. : .. : .. : /cygdrive/c/home/username:/bin/bash

Anthyのインストール(Emacsで使うため)

更新日:2010.2.1

Anthyのプロジェクトページからソースをダウンロードする。 Cygwinで最新版のanthy-9100hが問題なくコンパイルできた。

 $ tar zxvf anthy-9100h.tar.gz
 $ cd anthy-9100h/
 $ ./configure --prefix=/usr/local
 $ make
 $ make install

.emacs に次の記述

 (setq load-path (append '("/usr/local/share/emacs/site-lisp/anthy/")
       load-path))
 (set-language-environment 'Japanese)
 ;Anthyの設定
 (load-library "anthy")
 (setq default-input-method "japanese-anthy")
 (global-set-key "\C-o" 'anthy-mode)
 (global-set-key [?\S- ] 'anthy-mode)

Emacs23に対してもこの設定で使用できた.しかし,Emacs23の場合には日本語の入力が重い. これを解消する方法がこちらのページに書いてあるので,これに従って, 上記 (load-library "anthy") のすぐ後に

(load-library "anthy")
(if (>= emacs-major-version 23)
  (setq anthy-accept-timeout 1))
のように追記する.

Emacs 24.3.1において,last-command-charが削除されたらしく,Anthyを起動して日本語を入力しようとすると,

Symbol's value as Variable is void: last-command-char

のようなエラーが出る。これを回避するには,Sourceforgeに書いてあるように,次の2行を加えると良い。
 (define-obsolete-variable-alias 'last-input-char
     'last-input-event "at least 19.34")
   (define-obsolete-variable-alias 'last-command-char
     'last-command-event "at least 19.34")

pLaTeXのインストール

参考:ptetex を Cygwin で

 /usr/local/teTeX/ (c:\cygwin\usr\local\teTeX\)

にインストールされます。texファイルを sjisで作れば、 dvipdfmx でPDF作成まで問題なく出来ます。

Dual monitorでcygwin/X を利用する

何も設定しないと、2つ目のモニターではX window の更新が行なわれない。これを回避するには、

 /usr/X11R6/bin/startxwin.sh

を開いて

XWin.exe ...

のところにオプションとして

-multiplemonitors

を加える。加えたら一旦Cygwinを終了して再度アプリを起動してから

$ startxwin.sh

とする。

パスの対応

Cygwin上 Windows上
/hoge.txt C:¥cygwin¥hoge.txt
/usr/local C:¥cygwin¥usr¥local
/cygdrive/c/hoge.txt C:¥hoge.txt
/cygdrive/c/usr/local C:¥usr¥local
/cygdrive/c/cygwin/ C:¥cygwin¥

/cygdrive/c を /c に変更する

参考:Cygwin for professionals

$ mount -c /

Permission denied

cygwin上のターミナルでファイル操作を行なう時に

Permission denied

となって、ファイル削除、移動などが出来ないことがある。パーミッションに問題がないようなら、ファイルを開いていないか、実行ファイルなら実行中でないか確認してみる。

screen のインストール

CygwinのメーリングリストにSchulmans氏が投稿したパッチを当てる必要がある。パッチの部分を例えば screen.patchというファイルに書き出して、次のようにパッチを当てて configure を行う。

 $ cd screen-4.0.2/
 $ patch < screen.patch
 $ ./configure --prefix=/usr/local

make をする時はこのページを参考にする。

$ make CFLAGS=-Dlinux

tty.c のコンパイル時にエラーが出るが、次のように単独でコンパイルする。

$ gcc -c -I. tty.c

再度 make を実行する。すると pty.c のコンパイルが失敗し、sys/stropts.h が無いというエラーが出るので、そのファイルをincludeしている部分を削除して再度 makeを実行する。

コンパイルが成功したらインストールする。

# make install

X window Systemを起動する

作成日:2011/2/3
$ startxwin.exe

好きなウインドウマネージャーを起動したいなら ~/.startxwinrcを作成し、

xterm &
wmaker &

などと書いておくと良い。

gnuplot4.1のインストール

$ export CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gnuplot
$ cvs login
$ cvs -z3 co gnuplot
$ cd gnuplot/
$ ./prepare
$ ./configure
$ make
$ make install

./configureの時に

/bin/sh: meadowNT: Command not found.

とエラーが出たら、

$ export EMACS=/usr/bin/emacs

とmeadowでないemacsを環境変数EMACSに指定してみる。tex関連でエラーが出てコンパイルが止まったらtetexをインストールしてみる。

Windows7, Windows8でX Windowが起動しない場合の対応

更新日:2013/7/26

CygwinをWindows 7やWindows 8(Windows Vistaでも同様)にインストールした後、デスクトップに作成された Cygwin.exeのショートカットをダブルクリックして起動し、次にXサーバを起動するためには

$ startxwin.exe
を実行する。とこが次のようなエラーが出て起動できないことがある。
startxwin: giving up
startxwin: unable to connect to X server: Connection refused
startxwin: server error
この場合にはrebaseallというコマンドを実行するとよい。

rebaseallはCygwin関連のタスクを全て落とした上で、

[Cygwinのrootディレクトリ]\bin\ash.exe
をExplorerからダブルクリックで実行するか、またはコマンドプロンプトから
C:\Users\myname> cd /d F:\cygwin\bin
F:\cygwin\bin> ash.exe
$ ./rebaseall
ここではCygwinのrootディレクトリがFドライブのcygwinというフォルダだとした。(cdコマンドのオプション/dはドライブ移動とディレクトリ移動を同時に行うときに必要。)

rebaseallを実行する前に、タスクマネージャを起動して、Cygwin関連のタスクが実行されていないかどうか確認すること。