今、朝 3:38 ですね。
朝の 6時には起きて出勤の準備をして、7時には車で家を出ます。もう、寝なきゃ。でも、備忘録にまとめとかなきゃ。
いやあ、CentOS 上の lha のセットアップでハマりました・・・
いや、今更 lha を使うのはどうなの?という話は取り敢えず置いておいて。
「システム的に(まあ、スケジュール的な問題が大きいんだけど)別のアーカイバへの変更は難しい。」「一般公開していないクローズドなシステム上で使用するのでセキュリティ等の問題も特になし」という条件のもとで使用しているので。
サーバ更改を行うので(CentOS 4.9 → CentOS 6.7)、新しい CentOS 6.7 サーバに lha を入れてたんだけど・・・
標準のリポジトリには lha は存在していないので(まあ、そうだろうな)Repoforge(RPMforge)リポジトリを使って yum インストールしたんだけど、バージョン 1.14g のものが入った。
でも、このバージョン、どうもよくない。
プログラムの中で、
lha e -e -i -w=展開先ディレクトリ 解凍するLZHファイル
という形でコマンドを投げてるんだけど、これがエラーになる。
シェル上で手動で実行してみると、「LHa: Fatal error: -e: No such file or directory」というエラーになる。
どうも、コマンドとオプションの設定の仕方が違うようだ。
結局、
lha -eeiw=展開先ディレクトリ 解凍するLZHファイル
のようにコマンド&オプションを全部つなげてやればエラーは出ずに展開されるんだけど、展開されたファイル名がバケバケなのだ。
というのが、解凍を行う LZH ファイルの中の各ファイルには日本語ファイル名がついているんだけど、それを一旦 EUC-JP に変換してやらないとプログラム的に色々まずいんだが、どうも Shift_JIS のまま出力されているような・・・
e というのが解凍コマンドで、その後ろの -e というオプションが「ファイル名を EUC-JP に変換する」というものなんだけど、これが効いてないなあ・・・
なんか、このバージョン、全てにおいて駄目駄目。
ということで、結局、
からソースを取ってきて手動で make した。
このバージョンが 1.14i-ac20050924p1 で、これは CentOS 4.9 に入ってたのと同じバージョンだな。
プログラムもエラーを出さずに動くようになった。
まったく、lha なんていう死んでいったソフトがらみでこんなに手間取るなんて・・・
ああ・・・4:00になった・・・2時間しか睡眠時間がない・・・
コメントする