簡単な質問ですが、AppImage からファイルを抽出するにはどうすればよいですか?
GUI、CLI は問題ではありません。仕事が完了する限りです。
関係ないかもしれませんが、私はopenSUSE Tumbleweedを使用しています
答え1
初めAppImage ファイルの内部形式が最新バージョンであるかどうかを確認します。
/path/to/your.AppImage --appimage-help
出力に次の行が表示された場合:
--appimage-extract Extract content from embedded filesystem image
どのように進めるかは自分で決めることができます。この場合、(新しい)タイプ2AppImage 形式が目の前に表示されます。(コマンドの「パス」部分は相対パスでも絶対パスでもかまいません。)
2番最初のコマンドが機能しなかった場合は、ヘルパー ツールを使用できます。ただし、これには sudo/root 権限が必要です。ダウンロードappimagetool
(もちろん、AppImage として利用可能です)。これを実行可能にして実行します:
/path/to/appimagetool-x86_64.AppImage --list /path/to/your.AppImage
これにより、埋め込まれているすべてのファイルとその(相対)パスのリストが表示されます。あなたのAppImage抽出するあなたのAppImageという名前のディレクトリに保存します。/path/to/somedir、 走る
mkdir /path/to/somedir
/path/to/appimagetool-x86_64.AppImage /path/to/your.AppImage /path/to/somedir
三番目ヘルパー ツールなしでも AppImages (タイプ 1 とタイプ 2) をマウントできます。
タイプ1:
mkdir mountpoint sudo mount -o loop my.AppImage mountpoint/ # You can now inspect the contents # You can now also copy the contents to a writable location of your hard disk sudo umount mountpoint/ # Do not forget the umount step! # If you do forget it, your system may exhibit unwanted behavior.
タイプ2:
mkdir mountpoint my.AppImage --appimage-offset 123456 # This is just an example output sudo mount my.AppImage mountpoint/ -o offset=123456 # you can now inspect the contents sudo umount mountpoint/ # Do not forget the umount step! # If you do forget it, your system may exhibit unwanted behavior.
「偏執狂」へのヒント:AppImage を信頼したくない場合は、3 番目の方法が推奨されます。これは、(タイプ 2 の AppImage の場合)the.AppImage --appimage-extract
またはを実行すると、実際に AppImage を実行している (ただし、その内容ではない) ことを意味するためですthe.AppImage --appimage-mount
。the.AppImage --appimage-offset
アップデート:
下のコメント欄の@jayarjoさんの質問に答えます(変更後に AppImage を再パッケージ化するにはどうすればよいですか?):
使用できますアプリイメージツール既存の AppImage を AppDir に抽出するだけではありません。これを使用して、AppDir を (おそらくいくつかの変更後に) (変更された) AppImage に再パッケージ化することもできます。
ただ走れ
appimagetool -v /path/to/AppDir
コマンドの出力を監視する(
-v
) に、新しく作成された AppImage の場所と名前を入力します。これで完了です。
答え2
拡張子を .7z に変更します
$ mv file.AppImage file.7z
ファイルローラーで抽出する
$ file-roller --extract-here file.7z
Linux Mint でテスト済み。
答え3
名前の変更は右クリックのみで行います。例:
圧縮PDF-v0.1-x86_64.AppImage
に:
圧縮pdf-v0.1-x86_64.zip
右クリック
"ここで抽出"
そして働く
フォルダ内のすべてのファイルを1つのフォルダに抽出します
答え4
ここでの回答に基づいて、この簡単な bash スクリプトを作成しました。しかし、ループ デバイスで抽出できる AppImage に出会ったことはありません。編集: 「wxHexEditor」を実行しました。
ここ:
#!/bin/bash
APP="$2"
UNPK="$(echo $APP | sed 's/\.AppImage//')"
case "$1" in
-a)
chmod +x $APP;
./$APP --appimage-extract
mv squashfs-root $UNPK
;;
-b)
mkdir -p /tmp/$UNPK
sudo mount -o loop $APP /tmp/$UNPK &>/dev/null
mkdir -p ~/Desktop/$UNPK
cp -R /tmp/$UNPK/* ~/Desktop/$UNPK &>/dev/null
sudo umount /tmp/$UNPK
;;
*)
echo
echo " Usage: appunpack [option] AppImageFile"
echo
echo " Options: -a Unpack using --appimage-extract"
echo " -b Unpack using a loop device"
;;
esac