# kiss Tiny package manager for KISS Linux. ## Table of Contents <!-- vim-markdown-toc GFM --> * [Package format](#package-format) * [Dependencies](#dependencies) * [Getting started](#getting-started) * [Usage](#usage) * [How does each operator work?](#how-does-each-operator-work) * [`kiss build pkg`](#kiss-build-pkg) * [`kiss checksum pkg`](#kiss-checksum-pkg) * [`kiss depends pkg`](#kiss-depends-pkg) * [`kiss install pkg`](#kiss-install-pkg) * [`kiss remove pkg`](#kiss-remove-pkg) * [`kiss search pkg`](#kiss-search-pkg) * [`kiss list` or `kiss list pkg`](#kiss-list-or-kiss-list-pkg) * [`kiss update`](#kiss-update) <!-- vim-markdown-toc --> ## Package format See: <https://github.com/kissx/packages> ## Dependencies POSIX `coreutils`: - `cmp` - `command` - `cp` - `find` - `mkdir` - `rm` - `rmdir` - `sed` - `sh` Other utilities: - `file` - `git` - `rsync` - `sha256sum` (Included in default `busybox`) - `strip` - `tar` (Included in default `busybox`) - `wget`(Included in default `busybox`) ## Getting started Add these to your `shellrc`. ```sh # The location to install packages (Optional). # Default: / export KISS_ROOT=~/.kiss # Repositories to use (Required). # Colon separated like '$PATH'. # Repositories will be search in order. # Default: export KISS_PATH=~/projects/kiss-new/repo ``` ## Usage ```sh ➜ kiss => kiss [b|c|i|l|r|u] [pkg] => build: Build a package. => checksum: Generate checksums. => install: Install a package (Runs build if needed). => list: List packages. => remove: Remove a package. => update: Check for updates. ``` ## How does each operator work? ### `kiss build pkg` Kiss's `build` operator handles a package from its source code to the installable `.tar.gz` file. Sources are downloaded, checksums are verified, dependencies are checked and the package is compiled then packaged. NOTE: `build` without an argument will rebuild the entire system. ### `kiss checksum pkg` Kiss's `checksum` operator generates the initial checksums for a package from every source in the `sources` file. ### `kiss depends pkg` Kiss's `depends` operator prints the package's dependencies. ### `kiss install pkg` Kiss's `install` operator takes the built `.tar.gz` file and installs it in the system. This is as simple as removing the old version of the package (*if it exists*) and unpacking the archive at `/`. ### `kiss remove pkg` Kiss's `remove` operator uninstalls a package from your system. Files and directories in `/etc` are untouched. Support for exclusions will come as they are needed. ### `kiss search pkg` Kiss's `search` operator searches all repositories for a package and prints the full path to its repository files. Multiple arguments are welcome. ### `kiss list` or `kiss list pkg` Kiss's `list` operator lists the installed packages and their versions. Giving `list` an argument will check if a singular package is installed. ### `kiss update` Kiss's `update` operator compares the repository versions of packages to the installed database versions of packages. Any mismatch in versions is considered a new upgrade from the repository.