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