!!!はじめに cygwin 1.7 から使いやすくなってきた。 レジストリを使わないため、ポータブルツールとして持ち運ぶこともできる。 X-Window に関しては、日本語入力に難有り。 日本語入力するには、色々設定する必要あり。 !!!インストール http://www.cygwin.com/ から、setup.exe をダウンロードして実行。 !!パッケージ選択 !admin *cygrunsrv !archive *unzip *zip !Devel *make *gcc関連 *gcc4関連(必要なら) *mingw-gcc関連(必要なら) *ruby *subversion !Editor *vim関連 *xemacs関連(Xを入れる場合) !Libs *W32api !Net *inetutils *openssh *rsync !Perl *perl のみ !Python *python のみ !shell *tcsh *zsh !web *wget !X11 *全て(Xを入れる場合) !!バッチファイル作成 !bash @echo off cd bin bash --login -i !tcsh @echo off cd bin tcsh -l !!!設定 !!設定ファイルバックアップシェル #!/bin/sh if [ -e "$1" ]; then dir=. if [ "$2" != "" ]; then dir=$2 fi op= if [ -d "$1" ]; then op=-r fi tofile=$dir/$1_$(date +%Y%m%d_%H%M%S) cp -p $op $1 $tofile echo "backup to $tofile" fi !!home の設定 昔設定したHOMEのファイル {{ref home.zip}} これを参考にテキトウにいじる !DISPLAY環境変数 cygwin以外のXサーバ(例えば、Xmingとか)を使う場合は、 export DISPLAY=localhost:0.0 を.bashrcとかに書いておくといいかも。 !!apt-cyg の設定 apt-cyg でパッケージ管理をすると楽 http://nukino.github.com/blog/2012/02/02/Cygwin/ http://d.hatena.ne.jp/takuya_1st/20110205/1296887435 wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg mv apt-cyg /usr/bin chmod +x /usr/bin/apt-cyg ,, ,パッケージを探す,apt-cyg find ,インストール済の一覧,apt-cyg show ,インストールする,apt-cyg install パッケージ名 ,アンインストールする,apt-cyg remove パッケージ名 標準のままだと、パッケージ名の大文字小文字を判別する。 そのままだと使いにくいので apt-cygの 244行と247行のawk に -v IGNORECASE=1 を渡す。 echo "" 241 do 242 echo "" 243 echo Searching for installed packages matching $pkg: 244 awk -v IGNORECASE=1 '/[^ ]+ [^ ]+ 0/ {if ($1 ~ query) print $1}' query="$pkg" 244 /etc/setup/installed.db 245 echo "" 246 echo Searching for installable packages matching $pkg: 247 cat setup.ini | awk -v query="$pkg" -v IGNORECASE=1 \ 248 'BEGIN{RS="\n\n@ "; FS="\n"; ORS="\n"} {if ($1 ~ query) {print $1}}' 249 done !setup.ini が 404 Not Found になる場合 http://rcmdnk.github.io/blog/2013/08/08/computer-windows-cygwin/ パッケージのサイトのディレクトリ構成が変更されたため、setup.ini が見つからない場合がある。 新しいディレクトリ構成に合わせて apt-cyg を作成してくれた方がいるので、有難く利用させていただく。 {{ref apt-cyg}} を適当なパスにコピーする。あとは今までどおり使う。 !!sshd の設定 !インストール $ssh-host-config .... 権限を分離するか? *** Query: Should privilege separation be used? (yes/no) yes .... ローカルに sshd ユーザを作成するか? *** Query: new local account 'sshd'? (yes/no) yes .... サービスを作成するか? *** Query: Do you want to install sshd as a service? *** Query: (Say "no" if it is already installed as a service) (yes/no) yes ... CYGWIN 環境変数の値( ntsec を設定する) *** Query: Enter the value of CYGWIN for the daemon: [] ntsec !ログイン時のメッセージ /etc/motd の内容を編集する。 このファイルを読み込みたくない場合は、 /etc/sshd_conf PrintMotd no にする。 !アクセス制限をする場合 /etc/hosts.allow sshd: localhost どこからでも接続可能にするには sshd: ALL /etc/hosts.deny ALL:ALL EXCEPT localhost:DENY など !!!アンインストール *cygrunsrv -L でサービスを確認 *cygrunsrv -E で上記で確認したサービスを止める *cygrunsrv -R で上記で確認したサービスを消す *sshd ユーザをWindowsから削除(sshd を設定した場合) *以下のレジストリを削除 **[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions] **[HKEY_CURRENT_USER\Software\Cygnus Solutions] *Cygwin のディレクトリを削除する !!!ポータブル 持ち歩く場合は、その環境ごとに /etc/passwd /etc/group を書き換える必要がある mkpasswd -l > /etc/passwd mkgroup -l > /etc/group ドメインユーザの場合は mkpasswd -d -u ドメインユーザ >> /etc/password mkgroup -d -g "Domain Users" >> /etc/group {{category2 ツール,Cygwin}}