簡単な質問、AppImageからファイルを抽出するにはどうすればよいですか?
GUI、CLI、それが仕事を完了する限り、それは問題ではありません。
必要に応じてopenSUSE Tumbleweedを使用しています
まず、AppImageファイルが最新バージョンの内部形式を使用しているかどうかを確認します。
/path/to/your.AppImage --appimage-help
出力に次の行が表示された場合:
--appimage-extract Extract content from embedded filesystem image
続行する方法を自分で結論付けることができます。この場合、(新しい)タイプ2 AppImageフォーマットが目の前にあります(コマンドの「パス」部分は相対または絶対。)
2番目、最初のコマンドが機能しなかった場合は、ヘルパーツールを使用できます。ただし、これにはSudo/root特権が必要です:download appimagetool
(もちろん、これはAppImageとして利用できます)。実行可能にして実行します。
/path/to/appimagetool-x86_64.AppImage --list /path/to/your.AppImage
これにより、your.AppImageに埋め込まれたすべてのファイルとその(相対)パスのリストが表示されます。 your.AppImageを/ path/to/somedirという名前のディレクトリに抽出するには、次のコマンドを実行します。
mkdir /path/to/somedir
/path/to/appimagetool-x86_64.AppImage /path/to/your.AppImage /path/to/somedir
3番目、ヘルパーツールを使用せずにAppImage(タイプ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.
'paranoid'のヒント:AppImageを信頼したくない場合は、3番目の方法が好ましい。実行中(タイプ2 AppImagesの場合)the.AppImage --appimage-extract
またはthe.AppImage --appimage-mount
またはthe.AppImage --appimage-offset
は、実際にはAppImageを実行していることを意味します(ただし、そのコンテンツは実行しません)。
以下のコメントで@jayarjoの質問に回答するには(変更後にAppImageを再パッケージ化する方法):
appimagetoolを使用して、既存のAppImageをAppDirに抽出するだけではありません。これを使用して、AppDir(おそらく変更後)を(変更された)AppImageに再パッケージ化することもできます。
とにかく走れ
appimagetool -v /path/to/AppDir
コマンドの出力を見る(で詳細に作成)-v
)は、新しく作成されたAppImageの場所と名前です。それでおしまい。
ここでの答えに基づいて、この単純な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
--appimage-extract
が機能しない場合があります:
./your.AppImage --appimage-extract
ただし、mount
は
mkdir /tmp/mountpoint
Sudo mount -o loop your.AppImage /tmp/mountpoint