README.md (2125B)
1 kiss-bin 2 -------- 3 4 A KISS extension for dealing with binary package repositories. 5 6 I was initially planning on implementing this inside my fork of 7 the package manager itself, but I didn't because it would wildly 8 complicate the package manager. 9 10 There are some caveats that I hope to fix as I work more on this 11 extension 12 13 See <https://dl.carbslinux.org/pkg> for an example binary repository. 14 15 16 Quick Start 17 ----------- 18 19 You can quickly setup a distribution by doing the following, also 20 see the Caveats section at the end of the file for the rationale 21 behind the linking. This sets a distribution to the current directory. 22 23 for bin in ~/.cache/kiss/bin/*; do 24 binout=${bin##*/} binname=${bin%\#*} binout=${binname}.${binout#*\#} 25 ln -sf "$bin" "$binout" 26 done 27 28 kiss-bin-manifest | sort -rV > manifest 29 30 httpd -f -p 8181 31 32 33 Following the previous step, you can do a quick setup in a client 34 by doing the following. The `$KISS_BIN` variable is explained below. 35 36 export KISS_BIN=http://192.168.x.x:8181:personal 37 38 # This will fetch the manifest from the server 39 kiss-bin fetch 40 41 42 Using kiss-bin 43 -------------- 44 45 `kiss-bin` can be used to track binary repositories, or downloading 46 singular packages without tracking any. Repositories are defined through 47 the `$KISS_BIN` variable. It has a comma seperated value of url and names, 48 `KISS_BIN=url:name,url2:name2,url3:name3`. 49 50 - `fetch` -- Sync the manifest from repositories 51 - `get` -- Install a package from the given url 52 - `install` -- Install a package from the repository 53 - `search` -- Search for a package. 54 - `update` -- Update binary packages 55 56 57 Usign kiss-bin-manifest 58 ----------------------- 59 60 `kiss-bin-manifest` generates a manifest from the packages on the current 61 directory. If file names are given, it will generate a manifest for those 62 files, which can be used for incremental updates. 63 64 65 Caveats and Future Plans 66 ------------------------ 67 68 - In http file names with `#` are problematic. Some protocols 69 expect '%23' and some don't. That's why the `#` must be 70 replaced with `.` 71 - I plan on implementing GnuPG support.