A KISS extension for dealing with binary package repositories.
I was initially planning on implementing this inside my fork of the package manager itself, but I didn't because it would wildly complicate the package manager.
There are some caveats that I hope to fix as I work more on this extension
See https://dl.carbslinux.org/pkg for an example binary repository.
You can quickly setup a distribution by doing the following, also see the Caveats section at the end of the file for the rationale behind the linking. This sets a distribution to the current directory.
for bin in ~/.cache/kiss/bin/*; do
binout=${bin##*/} binname=${bin%\#*} binout=${binname}.${binout#*\#}
ln -sf "$bin" "$binout"
done
kiss-bin-manifest | sort -rV > manifest
httpd -f -p 8181
Following the previous step, you can do a quick setup in a client
by doing the following. The $KISS_BIN variable is explained below.
export KISS_BIN=http://192.168.x.x:8181:personal
# This will fetch the manifest from the server
kiss-bin fetch
kiss-bin can be used to track binary repositories, or downloading
singular packages without tracking any. Repositories are defined through
the $KISS_BIN variable. It has a comma seperated value of url and names,
KISS_BIN=url:name,url2:name2,url3:name3.
fetch-- Sync the manifest from repositoriesget-- Install a package from the given urlinstall-- Install a package from the repositorysearch-- Search for a package.update-- Update binary packages
kiss-bin-manifest generates a manifest from the packages on the current
directory. If file names are given, it will generate a manifest for those
files, which can be used for incremental updates.
- In http file names with
#are problematic. Some protocols expect '%23' and some don't. That's why the#must be replaced with. - I plan on implementing GnuPG support.