1cygwin で w3m を使う 2 (2003/02/17) 渡邉勝之 3 knabe@sannet.ne.jp 4 5Windows で w3m を動かすためには,Windows 上の UNIX互換環境である Cygwin が 6必要です. 7Cygwin に関する情報は http://cygwin.com/ を参照してください. 8 9 10* ビルド 11 12w3m-0.2 以降から cygwin 向けの修正パッチが取り込まれたため,cygwin-1.1.4 13以降の環境であれば特に問題なくビルドできます.Net Release 前の B18, B19, 14B20あたりでもビルドできるはずですが,確認はされていません. 15 (*) Cygwin B20.1 の環境では 16 LOCAL_LIBRARIES に -luser32 をつける必要があります。 17 18なお,termcap ないし ncurses パッケージは最新のものを使ってください.特 19に termcap を使う場合,古いパッケージは /etc/termcap の cygwin のエント 20リにバグがあり,表示がおかしくなります.この問題は termcap-20001020-1 で 21修正されているため,これ以降のバージョンを使用してください. 22 23ビルドする際には, 必ず ./configure してから make してください.以下で説 24明するマクロが定義されなくなるため,正常に動作しなくなります.また,正常 25にビルドできない,正常に動作しない場合には,バグ報告をする前に以下の点を 26チェックしてください. 27 28 o make veryclean してから再度 ./configure && make してみる. 29 o gcc, binutils が正常にインストールされているかを確認する. 30 cygwin の setup.exe に問題があり,パッケージファイルのダウンロード 31 に失敗しても,エラーの報告をしないで正常終了してしまうことがあるよ 32 うです.その場合には再度 setup をやりなおしてください. 33 34また Win95/98/ME では,環境変数 CYGWIN に 'ntsec' もしくは 'ntea' が含ま 35れていると,シェルスクリプトに実行属性がつかなくなるため,configure に失 36敗するようです.w3m に限らず,他にも問題が発生するという報告があるため, 37Win95/98/ME で Cygwin を使用する場合には,最初に cygwin1.dll をロードす 38る際の環境変数 CYGWIN から ntsec, ntea の記述を取り除いてください. 39 40 41* マクロ 42 43config.h には,Cygwin 環境向けに以下のマクロを定義してあります. 44 45o USE_BINMODE_STREAM 46 -dump, -dump_{head,source,both,extra} 時の stdout への出力をバイナリ 47 モードで行います.cygwin-1.3.11 以降では不要になっているはずですが, 48 安全側に振っておくために残しています. 49 Cygwin, EMX 環境で共通です. 50 51o SUPPORT_DOS_DRIVE_PREFIX 52 'C:', 'C:/', 'file://C:/', 'file://C|/' などのドライブレターを含むパ 53 スを認識し,ファイル名として扱う機能を有効にします. 54 Cygwin, EMX 環境で共通です. 55 56o SUPPORT_NETBIOS_SHARE 57 '//NETBIOSHOST/SHARE/PATH', 'file://NETBIOSHOST/SHARE/PATH' 形式の 58 NETBIOS 共有資源へのアクセスを ftp: スキーマではなく file: スキーマ 59 として扱う機能を有効にします. 60 Cygwin 環境に特有です. 61 62o SUPPORT_WIN9X_CONSOLE_MBCS 63 Win9X 系の DOS プロンプトで,検索およびフォームへの一行エディタ入力 64 時に日本語 IME 経由の入力をサポートします. 65 ただし,Win9X 系の DOS プロンプトの実装および Cygwin の tty レイヤー 66 の問題により,ローカルコンソールで TERM=cygwin かつ環境変数 CYGWIN 67 に 'tty' が含まれない場合のみ IME からの入力を許可しています. 68 なお,NT 系ではこのマクロを無効にしても動作は変更されず,ローカルコ 69 ンソールであれば IME による日本語入力が可能です. 70 LANG=JA 指定時の Cygwin 環境に特有です. 71 72 73* Native Application との連携 74 75Cygwin 環境でビルドした w3m から Win32 Native アプリケーションを起動する 76場合,パスの記述形式の違いによって,ファイルが見つからないなどのエラーが 77発生します. 78 79o ローカルCGI 80 81Cygwin 環境でビルドすると,$LIB (通常は /usr/local/lib/w3m/cgi-bin) 以下 82にインストールされるローカル CGI は cygwin の /usr/bin/perl を使うように 83設定されます.これに対し,Native アプリケーションの ActivePerl などを使 84用する場合,以下のようなラッパースクリプトを用意し,$LIB 以下の各スクリ 85プトを修正してください. 86 87------ /usr/local/bin/winperl ------ 88#!/bin/sh 89# wrapper script for Win32 Native Perl 90PERL=/cygdrive/c/Perl/bin/perl.exe 91case $1 in 92 -*) 93 ;; 94 *) 95 SCRIPT=`cygpath -w $1` 96 shift 97 ;; 98esac 99exec "$PERL" "$SCRIPT" $@ 100------------------------------------ 101※PERL= には Cygwin 環境の内部から見た Native Perl のパスを記述してくだ 102 さい.cygpath ユーティリティは cygwin パッケージに入っています. 103 104なお,ディレクトリリストだけであれば,オプション設定で「ディレクトリリス 105トに外部コマンドを使う」を NO にすれば,ローカル CGI を使わずにディレク 106トリのブラウズを行います. 107 108o エディタ 109 110w3m はテキストエリアの内容編集などに外部エディタを使用しますが,外部エデ 111ィタに Win32 Native アプリケーションを使う場合,以下のスクリプトを外部エ 112ディタに指定してください. 113 114------ /usr/local/lib/w3m/winedit ------ 115#!/bin/sh 116EDITOR='/cygdrive/c/Program Files/sakura/sakura.exe' 117FILE=`cygpath -a -w $1` 118exec "$EDITOR" "$FILE" 119---------------------------------------- 120※EDITOR= には Cygwin 環境の内側から見た Native アプリケーションのパスを 121 記述してください. 122 123なお,NT 系で inetd をサービスとして動かしていて,localhost に telnet で 124接続している場合には,「デスクトップとの対話をサービスに許可」を ON にし 125ておかなければ window が表示されません. 126 127 128* 既知のバグ 129 130以下は,Cygwin 環境で w3m を動かした場合の問題点です. 131 132o -dump, -dump-source 時に LF -> CR+LF の変換が行われることがある. 133 134 コンパイル時にマクロ USE_BINMODE_STREAM が define されていない可能性が 135 あります. 136 きちんと configure したうえでコンパイルしなおすか,環境変数 CYGWIN に 137 binmode を設定してください. 138 139o Win9X 系の DOS プロンプトで IME 経由の入力ができない. 140 141 環境変数 CYGWIN に 'tty' が含まれているときには,Cygwin の tty レイヤ 142 の問題を回避するために IME 経由の入力を禁止しています.環境変数 CYGWIN 143 から 'tty' を削除してください. 144 145o Win9X 系の DOS プロンプトで IME が ON になっているとカーソルが効かない. 146 147 Win9X の DOS プロンプトと Cygwin の tty レイヤーの実装の問題です. 148 代わりに C-f, C-b, C-p, C-n を使ってください. 149 150o NT 系のコマンドプロンプトで画面制御がおかしくなる. 151 152 「レイアウト」タブで画面バッファのサイズとウィンドウのサイズを違う値に 153 してバックスクロールができるように設定していると,画面制御がおかしくな 154 ることがあるようです. 155 156o DOS プロンプト,コマンドプロンプトでマウスが使えない. 157 158 DOS プロンプト「編集オプション」/コマンドプロンプトの「オプション」で 159 「簡易編集モード」が ON になっていると,マウスイベントが w3m に渡され 160 ません.OFF に設定してください. 161 162o DOS プロンプト,コマンドプロンプトでマウスボタンに対する反応がおかしい. 163 164 cygwin-1.3.15 までの環境では,マウスの右と中央ボタンのエスケープシー 165 ケンスが入れ替わっていました.これは cygwin-1.3.16-1 で修正されていま 166 すが,w3m 側のバージョン判定が完全ではないため,使用する環境でビルド 167 するようにしてください. 168 169 170* その他 171 172Cygwin 環境では,DOS プロンプト/コマンドプロンプトを使うよりも,inetd を 173あげて,ローカルに TeraTerm, PuTTY などの telnet クライアント経由でログ 174インする,ないしは rxvt, cygterm を使用するほうが快適です. 175 176o rxvt: 177 rxvt on Cygwin 178 http://hp.vector.co.jp/authors/VA021953/rxvt/ 179 compiled package 180 http://matsu-www.is.titech.ac.jp/~sohda/cygwin/dist/ 181o cygterm: 182 CygTerm - Yet another Cygwin console 183 http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/ 184 185