Alessandro Mauri
c8ebdfac8f
|
4 years ago | |
---|---|---|
README.md | 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