Cygwin

Top / Cygwin

アンインストール

いきなりディレクトリを削除しようとするとWindows2000が落ちた。
以下が正解らしい。

# cron
cygrunsrv --stop cron
cygrunsrv --remove cron
# inetd
net stop inetd
/usr/sbin/inetd --remove-as-service

上に続いて

  • ファイルの削除
  • レジストリの削除
  • 環境変数の削除

cannot find -lpython2.3

-L/usr/lib/python2.3/config

cron

# -D 指定をよく見かけるけど古いオプションらしい
# cygrunsrv --install cron --path /usr/sbin/cron --args -D
cygrunsrv --install cron --path /usr/sbin/cron --args -n
cygrunsrv --start cron

cron からネットワークドライブが見られない

cronはシステムユーザ権限。
ネットワークドライブの割り当てはユーザごと。
つまりネットワークドライブは cron から見られない。

その他権限周りでもハマれる。

cron_diagnose.sh

困ったときの診断ツール

Apache2

# 準備
cygserver-config
export CYGWIN=server
net start cygserver
/usr/sbin/apachectl2 start
# サービスとして起動
cygrunsrv --install apache2 --disp "CYGWIN apache2" \
  --path /usr/sbin/httpd2 --args -DFOREGROUND --env "CYGWIN=ntsec binmode server"
cygrunsrv --start apache2

dd のデバイス

ls じゃ見られないけど /proc/partitions で見られる。

標準入力が入力できない

export CYGWIN='glob tty'

こいつのせい

Subversion での日本語ファイル名の扱い

LANG や LC_ALL を変えたところで扱えない。
おとなしく Windows 版を使うこと。

find が途中で止まる

日本語のパス次第(多分2バイト目 \ )で止まる。
エラーも何も出ないので、日本語が含まれうる環境で find はNG。

Perl の find も同様。

  • DOSコマンドによる代替
    :: find -type -f 相当(-D は not directory)
    dir /B/S/A-D
  • Perl
    # $DOSFIND は上記 DOSコマンドのラッパ bat
    # @echo off 忘れずに
    my @files;
    foreach my $path (@ARGV) {
    	$path = `cygpath -w '$path'`;
    	chomp $path;
    	push(@files, split(/\n/, `$DOSFIND '$path'`));
    }

Cygwin を起動したのと同等の環境でコマンド実行

bash --login -c "cd - ; DO SOMETHING"

login を付けないと、環境変数(主にPATH)が処理されていないが、
弊害として cd - でコマンド実行時のカレントパスに戻らないと、$HOME で実行されるとか。

cygwin を呼ぶ bat

@echo off
for %%D in (C:\cygwin D:\cygwin E:\cygwin) do if exist %%D set CYGWIN_ROOT=%%D

SET PATH=%CYGWIN_ROOT%\bin;$PATH

zsh で C:/ などの補完が効かない

4.3.9 だと起こる。
4.3.4 に下げる。

4.3.11 だと C:\Windows のようなパス(の変数)の補完が1階層しかされない。
補完に使うものだけ .zshrc などで以下のように設定しておくことで回避可能。
(この形式を受け付けないものもあるので注意)

export HOGE=`cygpath -m $HOGE`

・・・根本治療はないのかね。

環境変数 USERNAME が消える

zsh は環境変数 USERNAME を消して USER をつくる。


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-05-10 (火) 00:30:43 (4736d)