Linux Mintにおけるrar形式

Linux Mintのその他。質問以外も大歓迎です!

Linux Mintにおけるrar形式

投稿記事by s98545sm » 2014年4月20日(日) 21:55

お世話になります。

Windows時代、主にリカバリレコード機能(アーカイブの一部が破損した場合に備えた冗長データを付与する機能)の為にrar形式を重用していました。
Linuxに移行して、CUIでであればrar形式の作成、リカバリレコードの付与も可能である事は調べてわかり、実際できました。

次の段階として、rarのGUIフロントエンドになるものを探したのですが、これが見つかりません。
rarを作成できるGUIアーカイバもありましたが、リカバリレコードの付与機能がありませんでした。
Gnomerarという、最終更新が2000年の古いソフトウェアを発見しましたが、ソースとrpm形式での配布でした。
これはLinux Mintに導入するなら自分でコンパイル、makeという手続きを踏むということですよね?
これは今の自分には高いハードルだと思っています。

rarにオプションと、入力ファイル(フォルダ)名、出力ファイル名を渡すだけの簡単なプログラムなので、プログラムを組んだことのない自分でも作ることが出来るかと
linux gui プログラミング 入門 みたいな検索を試みましたが、ちょっと先の長くなりそうなアプローチでした。

rarに拘るのはWindowsとの相互運用性と、リカバリレコードの存在です。
GUIフロントエンドが欲しいのは、主に入力ファイル名をタイプミスするからです(使うオプションやリカバリレコードの%数等はほぼ固定なので、問題になるのは主に入力ファイル名)。

このような状況で行き詰まってしまったのですが、良案をお持ちの方がいらしたらご教示いただけないでしょうか。
よろしくおねがいします。
s98545sm | Linux Mint 16 Mate 64bit
家庭のIT http://it-athome.blogspot.jp/
s98545sm
序二段
 
記事: 33
登録日時: 2014年3月07日(金) 21:30
お住まい: 東京都

Re: Linux Mintにおけるrar形式

投稿記事by Hidekichi » 2014年7月07日(月) 02:01

専用GUIというとちょっと違いますが、mintの右クリックメニューの「圧縮」でrarを使えるようにすると言うのであれば、WinRaR for linuxを入れればいいんじゃなかろうかと思ったりもするわけです。

GUIフロントエンドが欲しいのは、主に入力ファイル名をタイプミスするからです


このファイル名をタイプミスと言う事であればCUIでも今回の方法でも、ミスすることにあんまり変わりませんが、元のファイルを右クリックして圧縮できると言う点では元のファイル名を間違っていなければよいわけで、また間違っていてもダイアログ上で変更できると言う点でも問題の改善に近づくのではなかろうかと思います。

http://www.techspot.com/downloads/5168-winrar-for-linux.html
ここから32bit版、64bit版どちらか環境に合う方を選んでもよいですし、

本家 http://www.rarlab.com/download.htm からwgetしても良いかと思います。

今日現在では、
rarlinux-5.1.0.tar.gz (32bit版)
rarlinux-x64-5.1.0.tar.gz (64bit版)でした。

さて、インストールの方法ですが、例えばどこでも良いので任意のディレクトリにrarlinux-x64-5.1.0.tar.gzを解凍します。
アーカイブマネージャーが簡単かと思います。もちろん端末から解凍しても良いです。

tar.gzの解凍方法は、
コード: 全て選択
tar -xzf /任意のディレクトリ/rarlinux-x64-5.1.0.tar.gz

※ rarlinux-x64-5.1.0.tar.gz部分は、便宜書き換えてください。

アーカイブマネージャーなら右クリックから起動させて、展開を選びディレクトリを選択し更に「展開」するだけです。

すると、「rar」と言うディレクトリができます。仮にデスクトップに解凍したとすると、
端末から
コード: 全て選択
//ディレクトリを指定して
cd /home/{user name}/desktop/rar

//メイクする
make

desktopの部分はlinuxmintをインストールしたままカスタマイズされていない場合は、カタカナで
コード: 全て選択
cd /home/{user name}/デスクトップ/rar

です。

すると、
/usr/local/bin にrarとunrar
/usr/local/lib にdefault.sfx
/etc にrarfiles.lst

がそれぞれ作成されます。この時点で右クリックの圧縮からrarの選択肢が使えるようになります。
※ linuxmint 17 cinnamon 64bitで動作確認済み
削除したい時は作られたファイルをrmコマンド等で削除すればよいのではと思ったり。
また、WinRaR for linuxは、CUIでも使えるので、様々なコマンドは端末から「rar」あるいは、「unrar」と入れればコマンドオプション(スイッチ?)が表示されます。詳しくは最初に解凍した「rar」ディレクトリの中にあるrar.txtにも書いてあります(英語)。

思っておられるのと違うかも知れませんが、2ヶ月返信がなかったようなので、ひとまずの方法の一つとして書いておきます。
他に良い方法を知っている方がいれば追記なりレスなりお願いします。
アバター
Hidekichi
前相撲
 
記事: 7
登録日時: 2014年4月14日(月) 20:27

Re: Linux Mintにおけるrar形式

投稿記事by s98545sm » 2014年9月28日(日) 01:06

大々的にお返事が遅れて申し訳ありません。
ご回答ありがとうございました。

言葉足らずであったかもしれませんが、リカバリレコードを付けたい為にRARを選択しており、
右クリックからの「圧縮」ではこの要求に対応できませんでした。
よって、ターミナルから
>rar a -m0 -rr5p xxx.rar yyy
のような圧縮をしており、yyy(圧縮対象)の部分の入力をタイプミスする事の防止を目指しています。

現在も状況は同じです。なにかヒントがありましたら、またよろしくお願いいたします。
s98545sm | Linux Mint 16 Mate 64bit
家庭のIT http://it-athome.blogspot.jp/
s98545sm
序二段
 
記事: 33
登録日時: 2014年3月07日(金) 21:30
お住まい: 東京都

Re: Linux Mintにおけるrar形式

投稿記事by firefly » 2014年9月28日(日) 16:16

s98545sm さん、こんにちは
よって、ターミナルから
>rar a -m0 -rr5p xxx.rar yyy
のような圧縮をしており、yyy(圧縮対象)の部分の入力をタイプミスする事の防止を目指しています。

の要件ですが、ご自分でこのコマンドをメニューに追加されてみてはいかがでしょうか?
まずシェルスクリプトを作成します。ここでは /home/s98545sm/bin/myrar.sh とします。エラー対応等は省略します。rar コマンドはフルパスで指定した方がいいかもしれません。
コード: 全て選択
#!/bin/sh
for f
do
    rar a -m0 -rr5p "$f".rar "$f"
done

上記のスクリプトを作成したら実行権限を付与しておきます。
コード: 全て選択
chmod +x ~/bin/myrar.sh

次にこのスクリプトを右クリックメニュー(Open with)から呼び出せるようにデスクトップエントリ(アプリケーションメニュー)を作成します。
ここでは /home/s98545sm/.local/share/applications/myrar.desktop とし、表示名は「My RAR」とします。
これはテキストエディタでもかまいませんし、各デスクトップ環境にはメニューエディタが搭載されているかと思うのでそちらで作成してもかまいません。ポイントは Exec、MimeType、Terminal です。このうち MimeType はメニューエディタでは編集できないかもしれません(KDE 標準のメニューエディタにはありませんでした)。
コード: 全て選択
[Desktop Entry]
Version=1.0
Type=Application
Name=My RAR
Icon=Terminal
Exec=/home/s98545sm/bin/myrar.sh %F
NoDisplay=false
Categories=
MimeType=inode/directory
StartupNotify=false
Terminal=true

Exec
このアプリケーションメニューが呼び出されたときに実行するコマンドです。%F はファイルパスを配列として受け取ります。

MimeType
右クリックメニューでこのアプリケーションを表示するファイル形式を指定します。inode/directory はフォルダを対象とします。ファイルを対象とする場合はセミコロン区切りで MIME タイプ(image/jpeg など)を追加します。

Terminal
true の場合、Exec の処理をターミナルを起動してそこで実行します。false であればターミナルを起動せずに処理が行われます。

その他の項目については https://developer.gnome.org/desktop-entry-spec/ を参照してください。

これでファイルブラウザでフォルダを右クリックし、アプリケーションで「My RAR」を選択すればターミナルが起動して圧縮が行われます。

私は RAR をインストールしていないのでネット上のマニュアルを見ただけで合っているかどうかはわかりませんが、RAR 環境変数でオプションを渡せるのであればシェルスクリプトにオプションを追加せず、デスクトップエントリに追加すれば1つのシェルスクリプトを複数のデスクトップエントリで使い回しができるのではないかと思います。

コード: 全て選択
Name=RAR compless level 0
Exec=env RAR="-m0 -rr5p" /home/s98545sm/bin/myrar.sh %F


コード: 全て選択
Name=RAR compless level 5
Exec=env RAR="-m5 -rr5p" /home/s98545sm/bin/myrar.sh %F


上記の方法は「1つのフォルダから1つの RAR ファイルを作成する」ものですので、例えば3つのフォルダを同時選択して実行すれば3つの RAR ファイルが作成されます。もし「複数のフォルダから1つの RAR ファイルを作成する」のであればシェルスクリプトの内容は変わります。この場合、「RAR ファイルの名前をどうするか」がポイントになりますが、テキスト入力ダイアログを表示するとなると複雑になるため以下のようにランダムな名前を作成し、後からリネームという方がいいかもしれません。以下のスクリプトは archive_20140928235959vQp.rar というようなファイルを作成します。
コード: 全て選択
#!/bin/sh
rar a -m0 -rr5p ~/archive_`date +%Y%m%d%H%M%S``mktemp -u XXX`.rar "$@"

ファイル名を完全固定にするのであれば恐らくシェルスクリプトを使用せずともデスクトップエントリのみで処理することも可能だと思いますが誤って上書きしてしまう可能性があります。

タイプミスを減らしたいとのことですが、パス入力中に Tab キーを押せばシェルが補間してくれるのでミスと手間が減るかと思います。
また、ファイルブラウザからターミナルにファイルをドラッグすることでパスの自動挿入ができることもあります(ファイルブラウザとターミナルアプリケーションの組み合わせによってはファイルパスではなく URL を挿入してしまうことがあります)。

どのデスクトップ環境をお使いかお聞きしていないので使えないかもしれませんが、Cinnamon でしたら nemo-terminal というパッケージを導入すればファイルブラウザにターミナルを統合できます。そこにファイルをドラッグすればパスが自動で挿入されます。KDE はファイルブラウザで Shift+F4 を押すとターミナルペインが表示されるのでそこにファイルをドラッグすればパスを挿入してくれます。こういった機能を使ってコマンド入力時の手間を減らすのもありかもしれません。

あとは Wine 経由で Windows 用の RAR(WinRAR でしたっけ?)を使ってみるとかでしょうか。実際に動くかどうかは試してみないとわかりませんが Gold 以上にはなっているので大丈夫かと思われます -> https://appdb.winehq.org/objectManager. ... on&iId=391
17.1 Cinnamon 32-bit / 17 KDE 32-bit / 17 Xfce 32-bit
Pentium D 925 / 4 GB RAM / GeForce GTX-260
いつまでいるかはわかりません :o
firefly
序二段
 
記事: 34
登録日時: 2014年9月12日(金) 17:48

Re: Linux Mintにおけるrar形式

投稿記事by s98545sm » 2014年9月28日(日) 22:22

fireflyさん

ご回答ありがとうございます。
まさに描いていたイメージに合致しそうなので、次の週末にチャレンジしてみます。
凄い詳細に説明して頂いて、本当に感謝です。
XP終了に伴ってMintに移ってきた他の人のヒントにもなるんじゃないかと思います。

本当にありがとうございます。
s98545sm | Linux Mint 16 Mate 64bit
家庭のIT http://it-athome.blogspot.jp/
s98545sm
序二段
 
記事: 33
登録日時: 2014年3月07日(金) 21:30
お住まい: 東京都

Re: Linux Mintにおけるrar形式

投稿記事by firefly » 2014年10月03日(金) 22:01

s98545sm さん

作業工程としては Windows のバッチファイルと SendTo を使ったものに近いです。シェルスクリプトやデスクトップエントリの作成が未経験だとちょっと難しいかもしれません。

前回書き込んだシェルスクリプトですがちょっと誤りがあったのでこちらで訂正させていただきます。RAR コマンドに与えられたパスに親階層が含まれていると階層を維持して保存してしまうので -ep1 オプションを使用した方がいいかもしれません。あと、ファイルブラウザだと見えてないかもしれませんが .desktop というファイルが配置されている可能性があるのでそちらを -x オプションで除外しておくといいかもしれません。
コード: 全て選択
#!/bin/sh
for f
do
    rar a -m0 -rr5p -ep1 -x.desktop "$f".rar "$f"
done

あと、最近 GNOME の GUI について勉強をしていてこの操作を GUI 化できなかな〜とやってみたところそれっぽいものはできました。Mint にインストールされている USB イメージライタ(mintstick)と同じような方法で作っているので Linux Mint の話題と言えなくもないのですが、こういったものをフォーラムに投稿していいものかちょっとわからないのでフォーラム管理者様の承諾があればこちらに投稿させていただこうと思います。


追記

本トピックの viewtopic.php?f=13&t=1259#p2879 にて
ファイル名を完全固定にするのであれば恐らくシェルスクリプトを使用せずともデスクトップエントリのみで処理することも可能だと思いますが誤って上書きしてしまう可能性があります。

と書きましたが、デスクトップエントリだけでも対応可能でした。以下のコードがデスクトップエントリのみで複数のフォルダを1つの書庫にまとめるものになります。書庫名は日付形式になります。
コード: 全て選択
Exec=rar a -m0 -rr5p -ep1 -x.desktop $(date +%%Y%%m%%d%%H%%M%%S_%%N).rar %F


WinRAR も動かしてみましたが Wine 上でも特に問題なさそうでした。
1591fb440d49a40e237e3bc96ddb2b6c.png
1591fb440d49a40e237e3bc96ddb2b6c.png (56.1 KiB) 表示数: 20472 回
17.1 Cinnamon 32-bit / 17 KDE 32-bit / 17 Xfce 32-bit
Pentium D 925 / 4 GB RAM / GeForce GTX-260
いつまでいるかはわかりません :o
firefly
序二段
 
記事: 34
登録日時: 2014年9月12日(金) 17:48


Return to その他

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[11人]

cron