Nothin' but Slackware

バイクとLinuxに戯れる日々

2020年10月

catfish & namazu(on UTF-8)

Xfce関連アプリケーションの検索ツール catfish をインストールしてみた。
…で、ふと思ったのが catfish は「なまず」の英語名であり、そう言えば昔
Namazuっていう全文検索ツールがあったな、ということ。

インストールした catfish は catfish-1.4.13 で、 Xfce-4.16pre1 環境で問題なく
動作している。
ただ、私が catfish の使い方を知らないせいなのかわからないが、 catfishは
ファイル名を検出してくれるが、ファイルの中身までは検索してくれないようだ。

では、全文検索 Namazu は現在の slackware64-current の $LANG=ja_JP.UTF-8 環境
で使えるのか、試してみた。

[ update 2020-11-01 ]
*** Namazu インストール(関連パッケージを含む) ***
1) kakasi-2.3.5
  SlackBuild : kakasi SlackBuild

2) File-MMagic-1.30
     SlackBuild : perl-file-mmagic.SlackBuild

3) namazu-2.0.22pre8

注記) nkf-2.1.5 が現環境でビルド& インストールされていることが前提

------------------
4) Namazu を UTF8環境で使うために…
  先人の方が、namazu を UTF8 環境で使うためのスクリプトを作ってくれていました。(感謝)
  URL : namazu_utf8
    ※なお、 namazu_utf8 は上記 3) の namazu-2.0.22pre8 ソースの contribフォルダに入っている。

=== 以下の内容で namazu_utf8 を作成し、実行属性を付与して /usr/bin/ にコピーする ===
#!/bin/sh

LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP
namazu `echo -n $* | iconv -f UTF-8 -t EUC-JP` | iconv -f EUC-JP -t UTF-8
====================================================================

更新: 2020-11-01 (B)
上記 3) のSlackBuild に namazu_utf8 を一部修正する patch を追加した。
修正後の namazu_utf8 は以下の内容
====================================================================
#!/bin/sh

LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP

namazu `echo -n $* | nkf -e` | nkf -w
#namazu `echo -n $* | iconv -c -f UTF-8 -t EUC-JP` | iconv -c -f EUC-JP -t UTF-8
====================================================================
(memo)
もしかしたら私の環境固有の問題かもしれないが、元の namazu_utf8 だと
一部の PDFファイルの検索結果が iconv のエラーのため結果表示されないという問題があった。
試しに iconv に -c オプション(出力から無効な文字を取り除く)を付与したら、検索結果が表示
できるようになったため、 -c オプションを付けることにした。

…と、解決したと思ったが、インデックスは作成されているものの、検索文字によっては
検索結果表示が文字化けしてコンソールがフリーズしてしまう現象が出てしまった。
namazu_utf8 で iconv を使わずに nkf を使うようにしたら直った。
行き当たりばったりな解決策のため、また別の不具合が出てくる可能性もある。
わたしの環境固有の問題なのだろうか。

追記)2020-11-01
やはり環境固有の問題な気がする。
別PCの環境(Slackwareではない Linux、ja_JP.UTF-8)で確認したら、 iconv 使用の
namazu_utf8 でもフリーズせずに結果表示された。環境の違いとはいえ、どこが違っての
不調発生なのか未だ不明。

ふと、以下のような実験を思いついた。
別環境PC( iconv使用の namazu_utf8 でフリーズしていないPC)に、slackware環境のインデックス
ファイルをまんまコピーして namazu検索したところ、slackware環境と同様に同じ検索文字列で
フリーズした。
 つまり、システム環境設定等の問題ではなく、slackware PC にある何か特定のファイルから
生成されたインデックスを読み込んだときに発生している模様
というわけで、iconv使用の namazu_utf8 で問題なく動作していても、新たなファイルを追加して
インデックスを更新した後にいつ何時フリーズが発現しても不思議ではないことになる。
今のところの結論として、 nkf使用の namazu_utf8 で運用するのが安全策と思われる。

5) その他 namazu関連パッケージ
 必須なのかどうかよく解っていないが、入れておいても害はないだろうということで
 以下のパッケージを作成してインストールした。
 ※ ps2text は postscriptファイルのインデックスを作成するため必要。というか、最初は
   pstotext を試したが、インデックス作成に失敗しているようで、解決できなかったため
   仕方なしに ps2text を導入した。(ps2text はだいぶ前に更新が停止されている)
 
 MP3-Info-1.26
 ps2text-0.4.1
 rtf2html-1.1a
 wv-1.2.9
 xlhtml-0.5.1
 
 
6) 検索用インデックス作成
  $ cd ~/
  $ mkdir -p .namazu/index  <-- インデックス作成ディレクトリ(これは例)
  上のインデックスディレクトリに合わせて /etc/namazu/my-namazurc を作成しておくこと

  インデックス作成
  ・例として (USER-HOME)/ディレクトリのインデックスを (USER-HOME)/.namazu/index に作成する
  $ mknmz (USER-HOME) --config=/etc/namazu/my-namazurc --output-dir=(USER-HOME)/.namazu/index
  

7) namazu コマンドとして namazu_utf8 を使うよう設定
  (USER-HOME)/.bashrc に以下を追記。
=====================================================
alias namazu='namazu_utf8 --config=/etc/namazu/my-namazurc'
=====================================================





 

Plamo Linux 7.2 の Python3 を 3.8.6 にアップデートするテスト

Slackware64-current は既に Python3-3.8.6 に移行しており、多くの python関連モジュールの
Python2 サポートがドロップされている。
http://www.slackware.com/changelog/current.php?cpu=x86_64 (Fri. May 1 18:05:38 UTC 2020)

んで、Plamo Linux 7.2 において現在採用されている Python3-3.7.x を 3.8.6 にアップデートして
できるだけ python2 と共存するように関連モジュールをアップデートしてみた。

アップデート、インストールしたパッケージは下記リスト(順不同)

Python-3.8.6
Cython-0.29.21
Mako-1.1.3
Pillow-6.2.2
PyOpenGL-3.0.1 (※ 1)
PyQt5-5.15.1
XPython-3.8.6
blueman-2.1.3
certifi-2020.6.20
chardet-3.0.4
dbus_python-1.2.16
gexiv2-0.12.0
gobject_introspection-1.64.1
gpgme-1.14.0-x86_64
gst_python-1.18.0
gstreamer-1.18.0
hplip-3.20.9
idna-2.10
libblockdev-2.24
libbytesize-2.4
libxml2-2.9.10
meson-0.55.3
newt-0.52.21
numpy-1.16.4
pycairo-1.20.0
pylast-3.1.0
pygobject2-2.28.7
pygobject3-3.36.1
pyradio-0.8.7.2 (※ 2)
python2_pip-20.2.3
python3_pip-20.2.3
python3_setuptools-50.3.0
python_cairo-1.18.2
python_distro-1.5.0
python_lxml-4.5.2
python_six-1.15.0
pyxdg-0.25
requests-2.24.0
sip-4.19.23
system_config_printer-1.5.12 (※ 3)
vidcutter-5.5.0
xcb_proto-1.14
mesa-20.2.0 (※ 4)
youtube_dl-2020.09.20 (※ 5)
urllib3-1.25.10
devedeng-4.16.0 (※ 6)
python_sane-2.8.3 (※ 7)
pycups-2.0.1 (※ 8)

-----
付記)
※ 1 : PyOpenGL -- 必須なのかどうか分からなかったが、とりあえずpython-3.8.6 に向けてインストール。もしかしたら、vidcutterに必要。
※ 2 : pyradio -- 自前インストールしていたので python-3.8.6 に向けてリビルド
※ 3 : system_config_printer -- 自前インストールしていたので python-3.8.6 に向けてリビルド
※ 4 : mesa -- 理由は不明だが python-3.8.6 関連パッケージをアップデートしたら
       何故か mesaがエラーになるためリビルド
※ 5 : youtube_dl -- 自前インストールしていたので python-3.8.6 に向けてリビルド
※ 6 : devedeng -- 自前インストールしていたので python-3.8.6 に向けてリビルド
※ 7 : python_sane -- 必須なのかどうか分からなかったが、とりあえずpython-3.8.6 に向けてインストール
※ 8 : pycups -- python-3.8.6 に向けてインストール

-----

lollypop はインストールしていないので手を付けていない。
llvm はコンパイルにとても時間がかかるのと、コンパイルの最終段階になって何かのエラーで
コンパイルに失敗するので、いまのところリビルドは諦めた。

アプリケーション動作状況:
blueman -- 正常に動作
hplip, system-config-printer -- 正常に動作
pyradio -- 正常に動作
vidcutter -- 正常に動作
youtube-dl -- 正常に動作
devedeng -- 正常に動作






ギャラリー
  • deepl-clip.sh で簡単翻訳 [更新:2025-04-29]
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.2_20250323_7cf15b3
  • Avidemux 2.8.x with Qt6 GUI
  • Avidemux 2.8.x with Qt6 GUI
  • MEGAcmd-2.0.0_Linux
  • gcolor3 with Japanese menu and LC_MESSAGES
  • avidemux2 TEST package from the latest git source (on jul.23.2024)
  • fcitx5-mozc-2.29.5135.102.1 (15jw) -- Added "merge-ut-dictionaries"