- 2011-05-23 Mon 22:50:04
- メモ
Cygwinでrlwrap
http://hitai.blog72.fc2.com/blog-entry-78.html
という記事を以前に書きました。
この時は特に問題は発生していなかったのですが、この度会社のPCが新しくなり、もう一度Cygwinのセットアップをしたらちょっと困った現象が発生しました。
というのは、rlwrapをかませてsqlplusなりCLPなりを起動すると、改行するたびに余計な改行が1つ出力されるというものです。
例えばこんな感じ。
この状態で改行すると
で、さらに改行すると
というように、余計な改行が出力されるため、複数行に渡るSQLを書いているととっても見にくくなってしまいます。
これはCygwinのキャラセットの設定のせいなのかとか、色々調べていたらsourceforgeのrlwrapのプロジェクトで、0.37に
こんなコメントがあり、バグだったようです。
Cygwinで提供されているrlwrapの最新が0.24なので、どうも昔からあるバグを踏んだっぽいです。
そんなわけで、Cygwinプロジェクトにあるパッケージがフルすぎるので、sourceforgeから最新版のソースをダウンロードしてビルドするのですが、configureのあとmakeするとtputsが定義されてないとかいうエラーが出力されます。
0.24のビルドでは出力されないエラーなので、ちょいとソースを見比べてみたところ、
0.24では
define tputs(a,b,c) なんて行があり、0.37にはありません。
なんかよくわかんないけど、これコピペしときゃ通るだろwwwとか考えてリトライしたら、こんどは別の関数が無いと言われます。
というところで小一時間はまったのですが、なんてことはないncursesというパッケージがインストールされていないせいでした。
ということで、Cygwinパッケージからncursesを入れてリトライすると今度は通りました。
ちなみに、rlwrap 0.35, 0.06, 0.37それぞれのダンロードリンクが全て0.35へのリンクになってしまっているので、wgetするときに間違えないように正しいバージョン番号を指定してください。
これもちょっと無駄にハマリました。
http://sourceforge.jp/projects/freshmeat_rlwrap/releases/196417/
これでまた快適なCygwin環境が戻ってきました。
めでたし。
[関連]
http://hitai.blog72.fc2.com/blog-entry-78.html
http://hitai.blog72.fc2.com/blog-entry-76.html
http://hitai.blog72.fc2.com/blog-entry-78.html
という記事を以前に書きました。
この時は特に問題は発生していなかったのですが、この度会社のPCが新しくなり、もう一度Cygwinのセットアップをしたらちょっと困った現象が発生しました。
というのは、rlwrapをかませてsqlplusなりCLPなりを起動すると、改行するたびに余計な改行が1つ出力されるというものです。
例えばこんな感じ。
sqlplus /nolog
SQL > ※カーソルはいまここ
この状態で改行すると
sqlplus /nolog
SQL >
SQL > ※カーソルはいまここ
で、さらに改行すると
sqlplus /nolog
SQL >
SQL >
SQL > ※カーソルはいまここ
というように、余計な改行が出力されるため、複数行に渡るSQLを書いているととっても見にくくなってしまいます。
これはCygwinのキャラセットの設定のせいなのかとか、色々調べていたらsourceforgeのrlwrapのプロジェクトで、0.37に
A compilation problem with gcc on armel has been fixed. Programs that emit status lines with lots of carriage returns (like darcs) will no longer confuse rlwrap.
こんなコメントがあり、バグだったようです。
Cygwinで提供されているrlwrapの最新が0.24なので、どうも昔からあるバグを踏んだっぽいです。
そんなわけで、Cygwinプロジェクトにあるパッケージがフルすぎるので、sourceforgeから最新版のソースをダウンロードしてビルドするのですが、configureのあとmakeするとtputsが定義されてないとかいうエラーが出力されます。
0.24のビルドでは出力されないエラーなので、ちょいとソースを見比べてみたところ、
0.24では
define tputs(a,b,c) なんて行があり、0.37にはありません。
なんかよくわかんないけど、これコピペしときゃ通るだろwwwとか考えてリトライしたら、こんどは別の関数が無いと言われます。
というところで小一時間はまったのですが、なんてことはないncursesというパッケージがインストールされていないせいでした。
ということで、Cygwinパッケージからncursesを入れてリトライすると今度は通りました。
ちなみに、rlwrap 0.35, 0.06, 0.37それぞれのダンロードリンクが全て0.35へのリンクになってしまっているので、wgetするときに間違えないように正しいバージョン番号を指定してください。
これもちょっと無駄にハマリました。
http://sourceforge.jp/projects/freshmeat_rlwrap/releases/196417/
これでまた快適なCygwin環境が戻ってきました。
めでたし。
[関連]
http://hitai.blog72.fc2.com/blog-entry-78.html
http://hitai.blog72.fc2.com/blog-entry-76.html
スポンサーサイト
- Newer: PostgreSQLのデータファイルの判別方法
- Older: WindowsのvimでノーマルモードでIMEをOFFにしたい
Comments: 0
Trackback+Pingback: 0
- TrackBack URL for this entry
- http://hitai.blog72.fc2.com/tb.php/85-ce6d3ae3
- Listed below are links to weblogs that reference
- Cygwinのrlwrapで余計な改行が出力される件 from ヒビコレショウジン