Centos7 に unar をインストールする

Windowsで圧縮(zip形式)したファイルをCentos7でunzipコマンドで解凍すると文字化けが発生するのでそれを対処するためにunarをインストールした。

unar は The Unarchiver の略でサポートしているフォーマット(サポートフォーマット)が豊富で,中身の文字エンコードも自動で認識してくれる。頭がいいソフトみたいだ。このソフトをインストールしていく。

Ubuntu や Fedora にはパッケージが配布されているみたいだが,Centos にはなかった。そこで,Centos7と同等であるFedora19 の srpm をダウンロードしてインストールすることにした。

↑ 現在(2016/07/30)は epel にて rpm が配布されています。
epelリポジトリの設定をしていれば
# yum install unar
でインストールできます。[2016/07/30 追記]

srpm のダウンロード
# wget http://rpm.pbone.net/index.php3/stat/26/dist/86/size/2416240/name/unar-1.8.1-1.fc19.src.rpm
# wget ftp://ftp.naist.jp/pub/Linux/fedora/updates/testing/19/SRPMS/unar-1.8.1-1.fc19.src.rpm
ダウンロードしたファイルを rpm-build する。
# rpmbuild --rebuild ./unar-1.8.1-1.fc19.src.rpm
ビルドされたファイルが ~/rpmbuild/RPMS/x86_64/ 以下にあるので
# rpm -ivh ~/rpmbuild/RPMS/x86_64/unar-1.8.1-1.el7.centos.x86_64.rpm
でインストール。

unar を用いての解凍は簡単で test.zip を解凍するならば
$unar test.zip
で解凍できる。

基本的な使用方法が載ったページがあったので参考までに
http://qiita.com/twittarsan/items/550b18c222ceb75d0181

owncloud 8.0.2 の文字化け対処法

owncloud に置いてあるファイルを一括ダウンロードした際の圧縮ファイル(zip)をWindows7以前のマシンで解凍すると日本語が文字化けする。この問題について対処ができたので記録しておく。

言ってしまえば、Windows7以前の人が7zipなどのutf8に対応している解凍ソフトを使うのが一番楽だし早いんだけどね・・・

この問題を調べているときに圧縮ファイルを日本語対応するowncloudのアプリを見つけた。
http://owncloud.jp/forum/index.php/Thread/29-zip-7/
このページの一番下にあります。これを導入しました。

導入方法は簡単で、リンクをたどって”zipstream_ja-master.zip”をダウンロードして展開し、できたディレクトリ名を”zipstream_ja”にリネームしたものをowncloudディレクトリ以下にあるappsというディレクトリ内に放り込み、あとはWeb上で”Zipstream Ja”というアプリを有効にすれば導入完了です。

ダウンロードしてテストをしている際に、基本的には文字化けしていない形で展開することができましたが、’表’という文字が入っていると、文字化けしたフォルダとしていないフォルダの2つが圧縮ファイル中に作られていました。ちなみにファイル名は文字化けしない。

とりあえず使用できるので、時間があるときにソースをチェックして訂正しようと思う。

———- 追記 ———-

PHPについてはよく知らないがソースをチェックしていてzipstream_ja/lib/ 以下のfiles.phpの中の212~216行目

$rootDir = $internalDir.$dirname;
if (!empty($rootDir)) {
$isJaWin ? $zip->addEmptyDir(self::convertFilename($rootDir)) : $zip->addEmptyDir($rootDir);
}

をコメントアウトすると文字化けしたフォルダが生成されないことが分かった。この部分が正常に機能していなく文字化けが起こっていると考えられるのでphpについて調べて訂正しようと思う。