[opensuse-ja] OpenSUSE11.1(64bit版)のless
xeon-koyamaです。 OpenSUSE11.1(64bit版)のlessで質問させて下さい。 症状: テキストファイルなのに、 may be a binary file. See it anyway? と警告を受ける やった事 runlevel 3 の 状態で 外部から ssh 接続 vi で 日本語のテキストファイル abc.txt を作成 less abc.txt する "abc.txt" may be a binary file. See it anyway? と警告を受ける 念のため file で調べる $ file abc.txt abc.txt: UTF-8 Unicode text 尚、 lv more とも 問題なく表示できます。 64bit版をお使いの方は、上記症状にはならないでしょうか? -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井です。
2009/10/4 mlus
OpenSUSE11.1(64bit版)のlessで質問させて下さい。
症状: テキストファイルなのに、 may be a binary file. See it anyway? と警告を受ける
やった事
runlevel 3 の 状態で 外部から ssh 接続 vi で 日本語のテキストファイル abc.txt を作成 less abc.txt する "abc.txt" may be a binary file. See it anyway? と警告を受ける
念のため file で調べる $ file abc.txt abc.txt: UTF-8 Unicode text
尚、 lv more とも 問題なく表示できます。
64bit版をお使いの方は、上記症状にはならないでしょうか?
もう少し細かく問題の切り分け、情報提示をした方が良いと思います。 外部からssh接続しているのであれば、そちら(接続に用いた アプリケーション、環境)の問題という事も考えられます。 一部の文字コードで別の文字コードと誤認してる、 文字コードの特定のビット落としてるというパターンとかも 有り得ると思います。 ssh接続でなくローカルでやっても同様でしょうか。 また実際にそうなったテキストファイルの内容はどうなって いるのでしょうか。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: mforce4@gmail.com (maimai@coral.ocn.ne.jp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井さん ご返答ありがとうございます。
外部からssh接続しているのであれば、そちら(接続に用いた アプリケーション、環境)の問題という事も考えられます。 一部の文字コードで別の文字コードと誤認してる、 文字コードの特定のビット落としてるというパターンとかも 有り得ると思います。
接続環境は、OpenSUSE11.0 32bit KDE3 からです。 今度は、わかりやすくテキストファイルを以下のように作成しました。 今井さんのメール返事の ”外部から” から ”いるのでしょうか” までを コピーして Kate で保存。 rsync を使って OpenSUSE 11.1 64bit へ転送 sshで接続 less で 表示 less では同じ症状です。 lv more は、なんら問題ありません。 やっぱり、バグですかねーーー。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井です。
2009年10月5日1:22 mlus
less では同じ症状です。 lv more は、なんら問題ありません。 やっぱり、バグですかねーーー。
lessのソース(openSUSEのSRPMより)読むと 内部でバイナリ、コントロールコードのテーブル 持ってて lessが今回のようにバイナリファイルと判定するのは ファイルの最初の256byteを読み込み 内部テーブル上のバイナリコードと判定すべきコード とを見比べて6個以上合致する ときみたいですね。 どうしても気になる(そのチェックが要らない)なら LESS環境変数に-fを追加しておけば (詳しくはman lessにて-fオプション参照) 良いと思います。 LESS環境変数は /etc/profileファイルにて定義していますので それを参考にして /etc/profile.local(通常は存在しない。新たに作成) か ユーザのシェル設定ファイル(.bashrc等) にてLESS環境変数を定義しなおすのが良いのでは ないでしょうか。 LESS="$LESS -f" の様に。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: mforce4@gmail.com (maimai@coral.ocn.ne.jp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井さん、ソースまで調べたご返答ありがとうございます。
lessのソース(openSUSEのSRPMより)読むと 内部でバイナリ、コントロールコードのテーブル 持ってて
lessが今回のようにバイナリファイルと判定するのは
ファイルの最初の256byteを読み込み 内部テーブル上のバイナリコードと判定すべきコード とを見比べて6個以上合致する
ときみたいですね。
なるほど。 今まで SuSE9.x から OpenSUSE11.0 まで使ってきて一度も このような less に でくわした事がなかっただけに、64bit版だからこうなるのか・・・・ 不思議です。
LESS環境変数に-fを追加しておけば (詳しくはman lessにて-fオプション参照) 良いと思います。
おっしゃるように、 less を使う時は -f する、 または lv more を使う が 一番の回避方法ですね。 KDEdesktopの描画周りとかならば気にならないのですが、ユーティリティー的な アプリケーションだけに、なんかスッキリしません。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
さかいと申します。 うちも11.1のx86_64版ですが、xeon-koyamaさんがおっしゃる ような現象は起こっていません。 下記のバージョンです。 $ less --version less 424 Copyright (C) 1984-2008 Mark Nudelman 略 ちなみに、 $ LANG=ja_JP.UTF-8 less abc.txt と、環境変数LANGを指定して、実行するとどうなります でしょうか? -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
さかい さん、 ご返答ありがとうございます。
うちも11.1のx86_64版ですが、xeon-koyamaさんがおっしゃる ような現象は起こっていません。
そうですか・・・・。
下記のバージョンです。
$ less --version less 424 Copyright (C) 1984-2008 Mark Nudelman 略
バージョンは同じです。
ちなみに、
$ LANG=ja_JP.UTF-8 less abc.txt
と、環境変数LANGを指定して、実行するとどうなります でしょうか? --
やはり、 "abc.txt" may be a binary file. See it anyway? です。 関係ないかもしれませんが、 rpm -qa | grep readline libreadline5-5.2-141.16 readline-devel-5.2-141.16 です。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
うちも11.1のx86_64版ですが、xeon-koyamaさんがおっしゃる ような現象は起こっていません。
もし、ご協力頂けるのでありましたら、以下のようにして、テストしてみていただけないでしょうか? Windows で aaa.txt を作成 内容は適当に記述。文字コードUTF-8 改行コード LF で 保存。 (私は、秀丸エディタを使いました) aaa.txt を OpenSUSE11.1(86_64)にssh転送 (私は、winscp を使いました) OpenSUSE11.1(86_64)に sshでログイン。 less aaa.txt してみる。 この手順で行った所、OpenSUSE11.1(86_64)は、 "aaa.txt" may be a binary file. See it anyway? です。 ところが、debian lenny(32bit) では 問題なく表示できました。 $ less --version less 418 と表示されています。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
At Mon, 5 Oct 2009 18:25:22 +0900, mlus wrote:
うちも11.1のx86_64版ですが、xeon-koyamaさんがおっしゃる ような現象は起こっていません。
もし、ご協力頂けるのでありましたら、以下のようにして、テストしてみていただけないでしょうか?
Windows で aaa.txt を作成
内容は適当に記述。文字コードUTF-8 改行コード LF で 保存。 (私は、秀丸エディタを使いました)
Koyama さんの所で問題になっている aaa.txt を添付してもらえませんか?
その方が確実にテストできると思うのですが。
--
Takashi Iwai
今井です。 これって64bit版、32bit版関係ないみたいですね。 VirtualBox上のそれぞれの11.1環境で試してみましたけど。 ソースコードも一緒なんだから当然といえば当然ですが。 11.0環境の方のソースコードは見てないのでアレですけども、 11.0->11.1間でlessのバージョン変わって入った変更じゃな いでしょうか。 lessコマンドの バイナリファイルと判定するルールに引っかかっていれば 仕方ないことだし、その判定ルールを無視するオプション もあるので、日本語環境独自の仕様としてルール作り替 えるのもおかしい様な気がするのですがどうなんでしょう。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: mforce4@gmail.com (maimai@coral.ocn.ne.jp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
これって64bit版、32bit版関係ないみたいですね。 VirtualBox上のそれぞれの11.1環境で試してみましたけど。
11.0環境の方のソースコードは見てないのでアレですけども、 11.0->11.1間でlessのバージョン変わって入った変更じゃな いでしょうか。
なるほど、だから さかい さん のケースでも、問題なく表示されたわけですね。 11.1 で作成したファイルは、11.1 では問題なく読める。 しかし、他の環境(11.1と異なるlessのバージョンなど)では読めない。 とすると、これは OpenSUSEというより、less の 下位互換性の問題なので、 SUSEにバグであると言うのはおかしい と言うことになりますね。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井です。
2009年10月5日19:01 Masaru Imai
今井です。
これって64bit版、32bit版関係ないみたいですね。 VirtualBox上のそれぞれの11.1環境で試してみましたけど。
ソースコードも一緒なんだから当然といえば当然ですが。
11.0環境の方のソースコードは見てないのでアレですけども、 11.0->11.1間でlessのバージョン変わって入った変更じゃな いでしょうか。
openSUSE 11.0のless less-418 と openSUSE 11.1のless less-424b では filename.c bin_file() 関数が変更されてますね。 step_char()で UTF-8に関する処理を突っ込んだ?みたいですけど。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: mforce4@gmail.com (maimai@coral.ocn.ne.jp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
At Mon, 5 Oct 2009 20:54:21 +0900, Masaru Imai wrote:
今井です。
2009年10月5日19:01 Masaru Imai
: 今井です。
これって64bit版、32bit版関係ないみたいですね。 VirtualBox上のそれぞれの11.1環境で試してみましたけど。
ソースコードも一緒なんだから当然といえば当然ですが。
11.0環境の方のソースコードは見てないのでアレですけども、 11.0->11.1間でlessのバージョン変わって入った変更じゃな いでしょうか。
openSUSE 11.0のless less-418 と openSUSE 11.1のless less-424b では filename.c bin_file() 関数が変更されてますね。
step_char()で UTF-8に関する処理を突っ込んだ?みたいですけど。
そのようですね。
ちなみに 11.2 M8 の less では問題ないようなので、既に修正済みではないかと。
--
Takashi Iwai
今井です。
2009/10/5 Takashi Iwai
At Mon, 5 Oct 2009 20:54:21 +0900,
openSUSE 11.0のless less-418 と openSUSE 11.1のless less-424b では filename.c bin_file() 関数が変更されてますね。
step_char()で UTF-8に関する処理を突っ込んだ?みたいですけど。
そのようですね。 ちなみに 11.2 M8 の less では問題ないようなので、既に修正済みではないかと。
charset.cの bin_file()から binary_char()が呼び出されるんだけども binary_char()以下で変更がありますね。 openSUSE 11.1 64bit環境で factory版less-436のSRPMからバイナリRPM生成して、 BUILDディレクトリ以下にあるless実行ファイルに対して 同じテキストファイル与えて実行してみたらすんなりと...。 (新たな不具合を抱え込んでいる可能性がありますが) ですのでお勧めはできない(しない)けれども、 factory版SRPMからopenSUSE 11.1用の バイナリRPMを生成して使うという方法もある ということのようですね。 おまけ....................................................................... dv2705 +I/OデータのESATAカード +OOの二世帯住宅(1TBx2のストライピングモード) でVirtualBoxのゲストOS環境にopenSUSE11.2 MS8 入ってるんだけども現在openSUSE11.1 64bit版と 某ディストリの環境メンテ中で動かせず....。 (ホストは1.9GBほどのメモリがあって、ゲスト環境はそれぞれ メモリ512MB、ゲストOSを3個動かすとHDDの耐久テスト 状態になって何もできなくなる) -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: mforce4@gmail.com (maimai@coral.ocn.ne.jp) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
今井さん、Iwai さん、 詳細なご返答ありがとうございます。
openSUSE 11.0のless less-418 と openSUSE 11.1のless less-424b では filename.c bin_file() 関数が変更されてますね。
step_char()で UTF-8に関する処理を突っ込んだ?みたいですけど。
そのようですね。 ちなみに 11.2 M8 の less では問題ないようなので、既に修正済みではないかと。
http://www.greenwoodsoftware.com/less が less の 開発元? なんでしょうか。もしそうだとすると、 25 Jul 2009 less-436 has been released for general use. 30 Jun 2009 less-434 is available for BETA testing. 11 Apr 2009 less-429 has been released. 2 Jan 2008 less-418 has been released. という感じで、less-424b というのは トランジットな? ソースだったんですかね? OpenSUSE11.2のlessは、 less-436 のようなので、これをコンパイルして使ってみる事にします。 いろいろありがとうございました。 -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-ja+help@opensuse.org
participants (4)
-
Masaru Imai
-
mlus
-
Shintarou Sakai
-
Takashi Iwai