Universal RunImage and AppImage runtime with SquashFS and DwarFS supports
- Download the latest revision
git clone https://github.com/VHSgunzo/uruntime.git && cd uruntime
- Compile a binary
rustup default nightly
rustup target add x86_64-unknown-linux-musl
rustup component add rust-src --toolchain nightly
cargo xtask
# Tasks:
# x86_64 build x86_64 RunImage and AppImage uruntime
# runimage-x86_64 build x86_64 RunImage uruntime
# runimage-squashfs-x86_64 build x86_64 RunImage uruntime (SquashFS only)
# runimage-dwarfs-x86_64 build x86_64 RunImage uruntime (DwarFS only)
# appimage-x86_64 build x86_64 AppImage uruntime
# appimage-squashfs-x86_64 build x86_64 AppImage uruntime (SquashFS only)
# appimage-dwarfs-x86_64 build x86_64 AppImage uruntime (DwarFS only)
#
# aarch64 build aarch64 RunImage and AppImage uruntime
# runimage-aarch64 build aarch64 RunImage uruntime
# runimage-squashfs-aarch64 build aarch64 RunImage uruntime (SquashFS only)
# runimage-dwarfs-aarch64 build aarch64 RunImage uruntime (DwarFS only)
# appimage-aarch64 build aarch64 AppImage uruntime
# appimage-squashfs-aarch64 build aarch64 AppImage uruntime (SquashFS only)
# appimage-dwarfs-aarch64 build aarch64 AppImage uruntime (DwarFS only)
#
# all build all of the above
# for RunImage x86_64
cargo xtask runimage-x86_64
# for AppImage x86_64
cargo xtask appimage-x86_64
-
Or take an already precompiled from the releases
-
RunImage runtime usage
Runtime options:
--runtime-extract [PATTERN] Extract content from embedded filesystem image
If pattern is passed, only extract matching files
--runtime-extract-and-run [ARGS] Run the RunImage afer extraction without using FUSE
--runtime-offset Print byte offset to start of embedded filesystem image
--runtime-portable-home Create a portable home folder to use as $HOME
--runtime-portable-config Create a portable config folder to use as $XDG_CONFIG_HOME
--runtime-help Print this help
--runtime-version Print version of Runtime
--runtime-signature Print digital signature embedded in RunImage
--runtime-updateinfo[rmation] Print update info embedded in RunImage
--runtime-mount Mount embedded filesystem image and print
mount point and wait for kill with Ctrl-C
Embedded tools options:
--runtime-squashfuse [ARGS] Launch squashfuse
--runtime-unsquashfs [ARGS] Launch unsquashfs
--runtime-mksquashfs [ARGS] Launch mksquashfs
--runtime-tar [ARGS] Launch tar
--runtime-dwarfs [ARGS] Launch dwarfs
--runtime-dwarfsck [ARGS] Launch dwarfsck
--runtime-mkdwarfs [ARGS] Launch mkdwarfs
--runtime-dwarfsextract [ARGS] Launch dwarfsextract
Also you can create a hardlink, symlink or rename the runtime with
the name of the built-in utility to use it directly.
Portable home and config:
If you would like the application contained inside this RunImage to store its
data alongside this RunImage rather than in your home directory, then you can
place a directory named
for portable-home:
"${RUNTIME_NAME}.home"
for portable-config:
"${RUNTIME_NAME}.config"
Or you can invoke this RunImage with the --runtime-portable-home or
--runtime-portable-config option, which will create this directory for you.
As long as the directory exists and is neither moved nor renamed, the
application contained inside this RunImage to store its data in this
directory rather than in your home directory
Environment variables:
RUNTIME_EXTRACT_AND_RUN=1 Run the RunImage afer extraction without using FUSE
NO_CLEANUP=1 Do not clear the unpacking directory after closing when
using extract and run option for reuse extracted data
TMPDIR=/path Specifies a custom path for mounting or extracting the image
FUSERMOUNT_PROG=/path Specifies a custom path for fusermount
- AppImage runtime usage
Runtime options:
--appimage-extract [PATTERN] Extract content from embedded filesystem image
If pattern is passed, only extract matching files
--appimage-extract-and-run [ARGS] Run the AppImage afer extraction without using FUSE
--appimage-offset Print byte offset to start of embedded filesystem image
--appimage-portable-home Create a portable home folder to use as $HOME
--appimage-portable-config Create a portable config folder to use as $XDG_CONFIG_HOME
--appimage-help Print this help
--appimage-version Print version of Runtime
--appimage-signature Print digital signature embedded in AppImage
--appimage-updateinfo[rmation] Print update info embedded in AppImage
--appimage-mount Mount embedded filesystem image and print
mount point and wait for kill with Ctrl-C
Embedded tools options:
--appimage-squashfuse [ARGS] Launch squashfuse
--appimage-unsquashfs [ARGS] Launch unsquashfs
--appimage-mksquashfs [ARGS] Launch mksquashfs
--appimage-tar [ARGS] Launch tar
--appimage-dwarfs [ARGS] Launch dwarfs
--appimage-dwarfsck [ARGS] Launch dwarfsck
--appimage-mkdwarfs [ARGS] Launch mkdwarfs
--appimage-dwarfsextract [ARGS] Launch dwarfsextract
Also you can create a hardlink, symlink or rename the runtime with
the name of the built-in utility to use it directly.
Portable home and config:
If you would like the application contained inside this AppImage to store its
data alongside this AppImage rather than in your home directory, then you can
place a directory named
for portable-home:
"${RUNTIME_NAME}.home"
for portable-config:
"${RUNTIME_NAME}.config"
Or you can invoke this AppImage with the --appimage-portable-home or
--appimage-portable-config option, which will create this directory for you.
As long as the directory exists and is neither moved nor renamed, the
application contained inside this AppImage to store its data in this
directory rather than in your home directory
Environment variables:
APPIMAGE_EXTRACT_AND_RUN=1 Run the AppImage afer extraction without using FUSE
NO_CLEANUP=1 Do not clear the unpacking directory after closing when
using extract and run option for reuse extracted data
TMPDIR=/path Specifies a custom path for mounting or extracting the image
FUSERMOUNT_PROG=/path Specifies a custom path for fusermount
TARGET_APPIMAGE=/path Operate on a target AppImage rather than this file itself