2019-06-13 08:49:05 -06:00
# kiss
Tiny package manager for KISS Linux.
2019-06-13 11:22:08 -06:00
2019-06-13 11:32:46 -06:00
## Table of Contents
<!-- vim - markdown - toc GFM -->
* [Package format ](#package-format )
2019-06-16 08:44:10 -06:00
* [Dependencies ](#dependencies )
2019-06-13 11:32:46 -06:00
* [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 )
2019-07-15 01:23:26 -06:00
* [`kiss depends pkg` ](#kiss-depends-pkg )
2019-06-13 11:32:46 -06:00
* [`kiss install pkg` ](#kiss-install-pkg )
* [`kiss remove pkg` ](#kiss-remove-pkg )
2019-07-14 01:06:04 -06:00
* [`kiss search pkg` ](#kiss-search-pkg )
2019-06-13 11:32:46 -06:00
* [`kiss list` or `kiss list pkg` ](#kiss-list-or-kiss-list-pkg )
* [`kiss update` ](#kiss-update )
<!-- vim - markdown - toc -->
2019-06-13 08:49:05 -06:00
## Package format
See: < https: / / github . com / kissx / packages >
2019-06-13 11:22:08 -06:00
2019-06-16 08:44:10 -06:00
## Dependencies
2019-06-16 09:01:54 -06:00
POSIX `coreutils` :
2019-06-16 09:01:41 -06:00
2019-07-11 00:25:36 -06:00
- `cmp`
- `command`
- `cp`
- `find`
- `mkdir`
- `rm`
- `rmdir`
- `sed`
- `sh`
2019-06-16 09:01:41 -06:00
Other utilities:
2019-06-16 08:44:10 -06:00
- `file`
2019-07-11 00:25:36 -06:00
- `git`
2019-07-11 10:10:45 -06:00
- `rsync`
2019-06-16 09:17:34 -06:00
- `sha256sum` (Included in default `busybox` )
2019-07-11 00:25:36 -06:00
- `strip`
2019-06-16 09:17:34 -06:00
- `tar` (Included in default `busybox` )
- `wget` (Included in default `busybox` )
2019-06-16 08:44:10 -06:00
2019-06-13 11:32:46 -06:00
## 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?
2019-06-13 11:22:08 -06:00
### `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.
2019-07-14 01:06:04 -06:00
NOTE: `build` without an argument will rebuild the entire system.
2019-06-13 11:22:08 -06:00
### `kiss checksum pkg`
Kiss's `checksum` operator generates the initial checksums for a package from every source in the `sources` file.
2019-07-15 01:23:26 -06:00
### `kiss depends pkg`
Kiss's `depends` operator prints the package's dependencies.
2019-06-13 11:22:08 -06:00
### `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.
2019-07-14 01:06:04 -06:00
### `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.
2019-06-13 11:22:08 -06:00
### `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.