kiss/README.md

78 lines
3.2 KiB
Markdown
Raw Normal View History

2019-06-13 08:49:05 -06:00
# kiss
2019-09-11 00:00:33 -06:00
Tiny and straightforward package manager for KISS written in POSIX `sh`.
2019-06-13 11:22:08 -06:00
2020-05-12 02:44:57 -06:00
- Less than 1000 lines of POSIX `sh` (excluding blank lines and comments).
2020-05-15 02:08:04 -06:00
- Highly portable (will run in any POSIX compliant environment).
2019-09-11 00:00:33 -06:00
- Runtime dependency detection.
- Incremental package installation.
2019-09-11 00:02:24 -06:00
- Fast dependency solver.
- File conflict detection.
2020-01-29 01:26:31 -07:00
- Package alternatives system.
2020-05-12 02:44:57 -06:00
- 3-way handshake for /etc/ configuration files.
2019-09-11 00:00:33 -06:00
- Binary stripping.
- `shellcheck` compliant.
2019-06-13 11:22:08 -06:00
2020-02-11 03:41:41 -07:00
2019-06-13 11:32:46 -06:00
## Usage
```sh
2020-05-15 02:10:45 -06:00
-> kiss [a|b|c|i|l|r|s|u|v] [pkg]...
2020-01-29 01:19:56 -07:00
-> alternatives: List and swap to alternatives
-> build: Build a package
-> checksum: Generate checksums
-> install: Install a package
-> list: List installed packages
-> remove: Remove a package
-> search: Search for a package
-> update: Check for updates
-> version: Package manager version
2019-06-13 11:32:46 -06:00
```
2019-08-13 03:22:12 -06:00
2020-05-12 02:44:57 -06:00
## Dependencies / Portability
2020-01-29 03:21:20 -07:00
2020-05-15 02:08:04 -06:00
| dependency | why | mandatory? |
| --------------- | ---------------------------- | ----------------- |
2020-05-15 02:09:40 -06:00
| POSIX utilities | Used throughout | Yes |
| `git` | Repositories and git sources | Yes |
2020-05-15 02:08:04 -06:00
| `gnupg1` or `gnupg2` | Repository signing | No (optional) |
| `curl` | Source downloads | Yes |
| `sha256sum`, `shasum`, `sha256` or `openssl` | Checksum verification | Yes |
| `tar` | Tarball creation/extraction | Yes |
| `bzip2` | Compression method. | Yes (widely used) |
| `xz` | Compression method. | Yes (widely used) |
| `gzip` | Compression method. | Yes (widely used) |
| `zstd` | Compression method. | No (rarely used) |
| `lzma` | Compression method. | No (rarely used) |
| `lzip` | Compression method. | No (rarely used) |
| `unzip` | Source type. | No (rarely used) |
| `su`, `sudo` or `doas` | Privilege escalation. | No (optional) |
| `ldd` | Automatic dependency fixer. | No (optional) |
| `readelf` and `strip` | Binary stripping | No (optional) |
2020-01-29 03:21:20 -07:00
2019-09-11 00:00:33 -06:00
## Package format
2020-03-11 08:52:48 -06:00
See: <https://k1ss.org/package-system>
2019-09-11 00:00:33 -06:00
2019-10-07 07:31:26 -06:00
## Extending the package manager
2020-02-19 02:53:03 -07:00
The `contrib` directory contains a set of simple scripts to extend the package manager. These are just simple and stupid automations which parse the package format.
2019-10-30 04:51:48 -06:00
2020-02-19 02:53:03 -07:00
- `kiss-chbuild`: Spawn a throwaway chroot.
2019-10-30 04:51:48 -06:00
- `kiss-chroot`: Enter a KISS `chroot`.
- `kiss-depends`: Display a package's dependencies.
- `kiss-export`: Turn an installed package into a KISS tarball.
2020-03-13 07:45:07 -06:00
- `kiss-fork`: Copy a package's repository files into the current directory.
- `kiss-link`: Link a repository file to another repository.
2019-10-30 04:51:48 -06:00
- `kiss-manifest`: Display all files owned by a package.
- `kiss-maintainer`: Display the package maintainers.
2020-02-19 02:53:03 -07:00
- `kiss-new`: Create a boilerplate package.
2019-10-30 04:51:48 -06:00
- `kiss-orphans`: List orphaned packages.
2020-03-03 15:49:41 -07:00
- `kiss-outdated`: List outdated packages based on Repology versions.
2019-10-30 04:51:48 -06:00
- `kiss-owns`: Check which package owns a file.
2020-02-19 02:53:03 -07:00
- `kiss-reset`: Reset the system to the base.
2019-10-30 04:51:48 -06:00
- `kiss-revdepends`: Display packages which depend on package.
- `kiss-size`: Show the size on disk for an installed package.