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.
57 lines
2.0 KiB
57 lines
2.0 KiB
4 years ago
|
# 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
|