minimal AppImage-like portable packaging system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alessandro Mauri c8ebdfac8f initiated commitment 4 years ago
README.md initiated commitment 4 years ago

README.md

tarinstall

An alternative to AppImages, flatpacks and snaps to let the user install an application as a single executable file when static linking is not possible

tarinstall does not include any external files as such it does not include any man pages, example configuration files, etc. All of those have to be installed separately.

Graph

An application packaged as a tarinstall is made as such

----- Decompressor -----
|                      |
|                      |
|------- Loader -------|
|                      |
|                      |
|----- App Tarball ----|
|                      |
| app/                 |
| lib/                 |
| start                |
| env                  |
|                      |
------------------------

Decompressor: It decompresses the archive and then runs the loader

Loader: It reads the env file in the tarball and enumerates the lib/ directory to loads all the necessary libraries and sets the correct environment before executing the start script in the app/ directory

TODO

  • Find a way to include external files
  • Include a package manager
    • App binary diffs for incremental upgrades
  • Automated tarinstall packaging for developers
    • Package manager for shared objects (libraries)
    • Standardized way to define dependencies

Experimental optional components in App Tarball

ext/ directory: it includes all of the external files that have to be installed upon running the application for the first time

deps file: lists all the required dependencies and their version to allow for an empty lib/ directory at first start, all the dependencies can be downloaded upon running the application for the first time. It can also be used when packaging the tarinstall to automatically download the dependencies.

Advantages

  • Allows for application compression
  • Simpler and configyred in plaintext
  • Does not include any external dependencies other than optional ones
  • It can be used alongside other package managers and package formats