Basic and simple packaging system
Find a file
zawz ce4bf5ea95 Major rework:
- dependencies
- HOME and ROOT filesystems
2020-03-02 16:39:55 +01:00
completion Major rework: 2020-03-02 16:39:55 +01:00
server_scripts Major rework: 2020-03-02 16:39:55 +01:00
src Major rework: 2020-03-02 16:39:55 +01:00
.config.example Init 2020-02-07 13:57:28 +01:00
.gitignore Init 2020-02-07 13:57:28 +01:00
compile.sh Major rework: 2020-03-02 16:39:55 +01:00
LICENSE Initial commit 2020-02-07 10:55:17 +01:00
README.md Major rework: 2020-03-02 16:39:55 +01:00
server_deploy.sh Major rework: 2020-03-02 16:39:55 +01:00

zpkg

Basic and simple packaging system

Designed to be used by anyone and deployed anywhere, it is a very basic packaging system without much functionnality but very portable

Official repo: http://zawz.net/zpkg

As user

Requirements:

  • sudo
  • wget
  • tar

Optional:

  • pv

Installing

wget http://zawz.net/zpkg/install.sh
sh install.sh

By default the config is installed to /etc/zpkg

If you wish to use another repository, substitute zawz.net/zpkg for your desired target

Installing to a custom location

Add the -c option to the install script to specify a custom config path for the install

Uninstalling

zpkg remove $(zpkg list)
rm -rd /etc/zpkg

Using

See zpkg -h

Deploy on a server

Requirements

To deploy on a server you need:

  • SSH server
  • HTTP server
  • dedicated zpkg user

You need to be able to SSH to the zpkg user. SSH keys are recommended

Process

  1. Write the desired config in .config, see .config.example

  2. Run server_deploy.sh

  3. Make available the package directory to the HTTP server

Package architecture

.
+-- DEPS
+-- ROOT
|    +-- /
+-- HOME
     +-- ~
  • The ROOT directory repsesents the root filesystem
  • The HOME directory represents the home directory of the user
  • The DEPS file contains dependency packages separated by spaces or newlines. Dependencies are package names from the repository

Deploying packages

zpkg deploy <dir...>

Target directories are structured as described above
The package name is the name of the directory

Functionality

  • Install/Remove/Update packages
  • Dependency resolution
  • Config redirection
  • User Home capability

Non-present functionality

  • Versions
  • Multi-repo