CygwinはC:/Users/takuya の様なWindows形式のパスを内部的にCygwinパスに自動変換して何事もなかったかの様に扱ってくれる.便利だ.しかしタイミングによって次の様な警告が出る。
cygwin warning: MS-DOS style path detected: C:/Users/takuya/Desktop/test.rb Preferred POSIX equivalent is: /home/takuya/Desktop/test.rb CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
と書いてある。Cygwin環境変数に書けば消えるよと書いている。やってみた。
消えた.ばっちり.
nodosfilewarning をCYGWIN環境変数につけたけれどRuby側でもエラーは出なくなってCygwinだと言うことを忘れそうになる.
cygwinの環境変数については次のサイトが詳しい
とても丁寧に書いてあったのでメモとして抜粋させていただいた
gnupack Users Guide - 技術情報
パラメータ 概要 「(no)dosfilewarning」 本パラメータが有効な場合,POSIXスタイルのパス名ではなく MS-DOSスタイルのパス名を使用すると警告を表示する.デフォルトは有効. 「(no)envcache」 本パラメータが有効な場合,Win32と POSIX間での環境変数の変換をキャッシュする.マウントテーブルが変更されてもキャッシュが無効にならずに,変更前のマウントテーブルの内容に依存した値は含まれたままになるため,問題を起こす可能性がある.デフォルトは有効. 「(no)export」 本パラメータが有効な場合,これらの設定値の最終的な値が「CYGWIN」として再度エクスポートされます.デフォルトは無効. 「error_start:Win32filepath」 本パラメータが有効な場合,Cygwinで重大なエラーが発生したとき,「Win32filepath」に指定されたプログラムを起動する.これはデバッグ時に有用となる.「Win32filepath」には通常,「gdb」や「dumper」へのパスを設定する.例えば,「C:\cygwin\bin\gdb.exe」のように設定する.デフォルトは無効. 「forkchunk:size」 本パラメータは 「fork()」が一度に何バイトをコピーするのかを指定する.「forkchunk:32768」とした場合,「fork()」は一度に 32768バイト(32KB)をコピーする.デフォルトは可能な限りの最大バイト数をコピーする.これは多くのケースにおいて望ましい動作であるが,いくつかの古いシステムでは遅くする. 「proc_retry:n」 causes fork() and exec*() to retry n times when a child process fails due to certain windows-specific errors.These errors usually occur when processes are being started while a user is logging off. 「(no)glob[:ignorecase]」 本パラメータが有効な場合,UNIXスタイルのワイルドカード(「[]」:ブラケット,「''」 「""」:引用符,「*」:アスタリスク,「\」によるエスケープ)を含むコマンドライン引数は,それらのワイルドカードにマッチしたファイルのリストに展開する.これは DOSコマンドラインプロンプトから実行するプログラムに対してのみ適用する.デフォルトは有効. 本オプションは追加で 「[no]ignorecase」を指定できる.「ignorecase」を指定した場合,ワイルドカードのマッチングは大文字,小文字を無視して行う.デフォルトは無効(「noignorecase」). 「(no)reset_com」 本パラメータが有効な場合,シリアルポートは使用時に 9600-8-N-1,フロー制御なしにリセットされる.これはポートがオープンされた時点,およびハンドルが引き継がれた時点で行われる.デフォルトは有効. 「(no)strip_title」 本パラメータが有効な場合,ウィンドウのタイトルからディレクトリパス部分を削除する.デフォルトは無効. 「(no)title」 本パラメータが有効な場合,タイトルバーに現在稼動しているプログラム名を表示する.デフォルトは無効. 「(no)tty」 本パラメータが有効な場合,Cygwinは UNIX風の ttyに対する 「termios」などの拡張サポートを有効にする.これは一部の Windowsプログラムとの間で互換性がない.デフォルトは無効で,この場合 「tty」はテキストモードでオープンされる.本パラメータを有効にすると,「^Z」に代わり 「^D」が期待どおりに動作するようになり,「stty」による設定が可能になる.なお,本パラメータは Cygwinのシェルの開始前に設定されている必要があり,シェルから変更はできない.「mintty」や 「xterm」などの他の端末を使用する場合,本パラメータは無効にすべきである. 「(no)upcaseenv」 本パラメータが有効な場合,非CygwinプロセスからCygwinのプロセスの起動時に,Cygwinは全環境変数の文字をすべて大文字に変換する.これは Cygwin1.7以前のデフォルトの動作である.
本パラメータが無効な場合,最低限の下位互換性を維持する限られたセットを除き,そして特定の重要な変数を正しく制御するために,Cygwinは環境変数の大文字,小文字は変換しない.常に大文字化された変数のリストは以下のとおり.デフォルトは無効.「ALLUSERSPROFILE」,「COMMONPROGRAMFILES」,「COMPUTERNAME」,「COMSPEC」,「HOME」,「HOMEDRIVE」,「HOMEPATH」,「NUMBER_OF_PROCESSORS」,「OS」,「PATH」,「PATHEXT」,「PROCESSOR_ARCHITECTURE」,「PROCESSOR_IDENTIFIER」,「PROCESSOR_LEVEL」,「PROCESSOR_REVISION」,「PROGRAMFILES」,「SYSTEMDRIVE」,「SYSTEMROOT」,「TEMP」,「TERM」,「TMP」,「TMPDIR」,「WINDIR」「(no)winsymlinks」 本パラメータが有効な場合,Cygwinはシンボリックリンクを特別なヘッダが付いた読み取り専用属性の Windowsショートカットとして生成する.本パラメータが無効な場合,Cygwinはシンボリックリンクをあるマジックナンバ,パス,そしてシステム属性の通常ファイルとして生成する.通常ファイルのシンボリックリンクは読み書きが速いため,デフォルトは無効. なお,新しいシンボリックリンクでは対象ファイル名のエンコードに UTF-16を用いており,その一方で古いシンボリックリンクでは ANSIあるいは OEM文字セットを用いているため,Cygwin 1.7以降で生成したシンボリックリンクは,古い Cygwinでは読み取りできない.
いっぱいありますね