理想未来ってなんやねん

娘可愛い。お父さん頑張る。

CentOSでlhaを使う

インストール

CentOS 5ではlhaが含まれていないので、野良ビルドでインストールします。
lhaに含まれているmanの文字コードEUCのため、UTF-8の環境で使うと文字化けするのでUTF-8で使えるように文字コードを変換します。
Windows環境で作成した書庫を解凍できるようにするため、ソースを変更します。

$ wget http://iij.dl.sourceforge.jp/lha/22231/lha-1.14i-ac20050924p1.tar.gz
$ tar zxvf lha-1.14i-ac20050924p1.tar.gz
$ cd lha-1.14i-ac20050924p1
$ ./configure  --enable-multibyte-filename=utf8
$ cd src
$ cp header.c header.c.orig
$ vim header.c
$ diff -Nuar header.c.orig header.c
--- header.c.orig	2010-03-09 10:30:29.000000000 +0900
+++ header.c	2010-03-09 10:32:34.000000000 +0900
@@ -237,8 +237,11 @@
 
     if (from_code == CODE_SJIS && to_code == CODE_UTF8) {
         for (i = 0; i < len; i++)
+	{
             /* FIXME: provisionally fix for the Mac OS CoreFoundation */
             if ((unsigned char)name[i] == LHA_PATHSEP)  name[i] = '/';
+            else if ((unsigned char)name[i] == '\\')  name[i] = '/';
+	}
         sjis_to_utf8(tmp, name, sizeof(tmp));
         strncpy(name, tmp, size);
         name[size-1] = 0;
$ cd ../man
$ mv lha.man lha.man.euc
$ iconv -f EUC-JP -t UTF8 lha.man.euc > lha.man
$ mv lha.n lha.n.euc
$ iconv -f EUC-JP -t UTF8 lha.n.euc > lha.n
$ cd ..
$ make
$ sudo make install

表示

$ lha p archive.lzh

新規書庫作成

$ lha c archive.lzh *.*

追加

$ lha a archive.lzh *.*

解凍

$ lha e archive.lzh