Bash based package manager based roughly after Gentoo's Portage. This is intended to be a playground for learning about package management and not right now intended as a serious distribution.
Join me at: https://discord.gg/DQR42sWk
mkdir -p /var/{lib/spkg,db}
git clone https://github.com/smileaf419/spkg /var/lib/spkg/bin
git clone https://github.com/smileaf419/spkg-repository /var/db/spkg
spkg-tools contains the scripts, I recommend symlinking the spkg script to a dir within your path
INSTALL_PATH must be set within the /etc/spkg.conf to wherever you've placed the scripts. on first run a default /etc/spkg.conf should be created if ran as root.
BUILD_USER must be set to actual accounts or you can create a spkg user and use the default.
BUILD_USER should have read/write access to the WORKDIR_BASE dir.
MAKEOPTS: extra options to pass to make, such as -j
CFLAGS CXXFLAGS: Compile time optimizations
USE Gentoo like enables and disables certain options within packages.
PAGE Groff option set to either 'letter' (US) or 'A4' (everyone else)
BUILD_PACKAGE (yes|no) If set to 'yes' will create an archive within PKG_ARCHIVE_DIR
PKG_ARCHIVE_DIR path to where archives will be stored. (default: /var/lib/spkg/archive)
ENABLE_TESTS (yes|no) Best to keep to 'no' and use --enable-tests on certain packages.
INSTALL_DOCS (yes|no) set to 'yes' to free up some extra space if you don't actually read/want any documentation
LOGDIR path to where logs should be kept (default: /var/log/spkg)
LOGFILE File name to use for log files.
INSTALL_PATH path to where spkg scripts are installed. (default: /var/lib/spkg/bin)
PKG_DB_DIR path to build files. (default: /var/db/spkg)
PKG_CACHE path to data pkg data files (default: /var/lib/spkg/data)
DISTFILES path to download source and patch files (default: /var/lib/spkg/files)
PKG_WORLD path to the world file, this file stores all explicitly installed packages. (default: /var/lib/spkg/world)
WORKDIR_BASE path to where to build packages (default: /var/tmp/spkg)
I've shamelessly written a script that scrape data from gentoo's repository
check-update : uses wget to grab the index of a gentoo mirror and checks the files listed for updates.
Repository Tools
clean-db : Cleans the repository keeping only the 3 most recent versions.
clean-archive : Cleans the archives of old versions.