commit
c8ebdfac8f
@ -0,0 +1,56 @@ |
|||||||
|
# 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 |
Loading…
Reference in new issue