ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

cygwinコミュのxterm の -u8 オプションがなくなった?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ちょっと聞きたいことがあってここに参加させてもらいました。
アドバイス頂けたらと思います。

Cygwinでxtermを起動してサーバ(CentOS, Debian)にリモートログイン(ssh)して使っています。
実際は /usr/bin/uxterm (シェルスクリプト)から xterm を起動して、UTF-8で日本語を表示させていました。
この Cygwin 環境は、少し前に setup.exe でインストールしたものでした。インストールした時期は多分半年くらい前だったと思います。

ところが、今日インストーラ(setup.exe)を取り直して来て、更新をかけたところ、uxterm でエラーが出るようになってしまいました。エラーメッセージは、-u8 オプションは存在しないというものです。

xterm のバージョンを 229-1 から 202-1 に戻したら、uxterm で起動でき、日本語も正常に表示できました。どうやら -u8 オプションはなくなってしまったようです。一方 man xterm すると -u8 オプションは出てきます。

xterm は UTF-8 をサポートしなくなったのでしょうか。
欲しいのは、UTF-8 で日本語を表示できるターミナルなんですけどね。

コメント(6)

私は使っていないのですが、ここのスレッドに書かれている方法はどうなんでしょうか?
http://www.mail-archive.com/cygwin-xfree@cygwin.com/msg17057.html
>oi_新mixi使いにくいさん

ありがとうございます。
教えていただいたスレッドを一通り読んでみました。
こちらの英語力が?なので、いまいち分かってないですが.....

xterm 229-1 は -u8 オプションを受け付けない。
→この現象は、まさに、私のところで起きていることです。

コンフィギュレーション時に --enable-wide-chars が指定されていないとこうなってしまう。
→ソースからコンパイルし直せば良いと言っているような。また、コンパイルするのは難しくはないよ、とも。私は、cygwin 環境のツールをコンパイルしなおしたとこがないので、敷居がちょっと高いです。簡単に環境構築できるもんなんですか?

それと、スレッドの後の方にシェルスクリプトが出てくるけれども、これは -u8 オプションが使えるものとして書かれているようです。

私が読んだ限りでは、残念ながら解決策にはなりませんでした。

とりあえず、xterm 202-1 に戻したままにすることでしのいでいます。
引き続き、アドバイスがあればお願いします。

ftp://invisible-island.net/xterm/xterm.tar.gz

をおとしてきて展開

./configure --enable-wide-chars

make

とやるとできた xtermでは +/-u8がつかえるようです。

(ちなみにmake installとすると /usr/local/bin にはいるようですが、私の環境では
/usr/binの方に現在のxtermが入ってました)
3>oi_新mixi使いにくいさん

ありがとうございます。
書かれていた手順が簡単そうだったのでちょっといろいろやってみました。

基本的には --enable-wide-chars ということは同じなのですが、こんな↓手順になったので書きます。

ソースコードの取得は、インストーラ(setup.exe 2.573.2.2)を使いました。ソースコードを取得する箇所にチェックして実行。xterm 229-1 のソースを取得。

$ ls -l /usr/src
total 1379
-rwxr-x---+ 1 xxx Users 17947 Aug 22 07:06 xterm-229-1-cygwin.patch
-rwxr-x---+ 1 xxx Users 256 Aug 22 07:06 xterm-229-1-cygwin.patch.sig
-rwxr-x---+ 1 xxx Users 256095 Aug 22 07:06 xterm-229-1.sh
-rwxr-x---+ 1 xxx Users 246 Aug 22 07:06 xterm-229-1.sh.sig
-rwxr-x---+ 1 xxx Users 283923 Aug 22 07:05 xterm-229-1.tar.bz2
-rwxr-x---+ 1 xxx Users 251 Aug 22 07:05 xterm-229-1.tar.bz2.sig
-rwxr-x---+ 1 xxx Users 841542 Aug 22 07:06 xterm_229.orig.tar.gz

xterm-229-1.sh が make のためのスクリプトのようである。
./xterm-229-1.sh -h と実行すると、こんなメッセージがあった。

To see the results of source compilation, the commands must to be run
one by one are:

$ ./foo-N.N-RELEASE.sh -v prep conf make install
$ cd foo-N.N/
$ find .inst/
$ cd ..
$ rm -rf foo-N.N/

./xterm-229-1.sh prep を実行すると、ソースが展開され、cygwin用と思しきパッチが当たる。xterm-229 というディレクトリが出来て、ソースが展開されている。
パッチのディレクトリに configure.options という名前のファイルを作る。ファイルの中身は --enable-wide-chars が一行だけ。

$ pwd
/usr/src/xterm-229/CYGWIN-PATCHES
$ cat configure.options
--enable-wide-chars
$

これで、conf, make, install する。

cd /usr/src
./xterm-229-1.sh conf make install

正常に終了するようなのだが、どうもインストール先が xterm-229/.inst になっているようだ。ちょっと、この辺であきらめて、バイナリをコピーしてお茶を濁すことにする。

$ cp xterm-229/.inst/usr/bin/xterm.exe /usr/bin

このバイナリは、--enable-wide-chars が有効になっているので、-u8 が使える。
目的は達成できた。

cygwin のソースパッケージの make はだいぶ分かったような気がしたのだけれど、最後のインストールの箇所が cp コマンドっていうのがなんとも情けない。
cygwin 的にはどうするのが正しいのか知りたいなあ。
tarballのソースファイルから
./configure --help
をしたところ--prefix=PREFIXが使えるので、configure.optionsに--prefix=インストール先を加えればできそうな気がします。
/usr/bin下にxterm.exeを入れたいなら
--prefix=/usr
と指定です。
>5 埜唖.pmさん

アドバイスありがとうございます。

./xterm-229-1.sh conf を実行したときに、configure が走っているようなのですが、そのログ /usr/src/xterm-229/.build/build/config.log を見ると、(先頭部分だけ抜粋)

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.52.20061216. Invocation command line was

$ /usr/src/xterm-229/configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --libdir=/usr/lib --includedir=/usr/include --libdir=/etc/X11 --with-app-defaults=/etc/X11/app-defaults --enable-wide-chars

となっており、--prefix などの指定は cygwin の流儀に従ってます。ディレクトリの指定など思った通りに指定されているので、configure の実行オプションは問題なさそうです。

ここまで、調べて見て思い当たったのですが、

cd /usr/src/xterm-229/.build/build
make install

でいいみたいです。意図通り /usr 以下にインストールされました。
xterm.exe を cp コマンドでコピーしてた手順よりずっとましになりましたが、深いディレクトリにもぐっていって make を実行するというのは cygwin 環境としての通常手順じゃなさそうな気がします。
目的は十分達しているのですが、最後のこの手順がなんだかもうちょっとやり方がありそうな気がします。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

cygwin 更新情報

cygwinのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング