# shpkg **Repository Path**: spz2020_admin/shpkg-install-mirrors ## Basic Information - **Project Name**: shpkg - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-10 - **Last Updated**: 2021-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shpkg Simple package manager written in bash inspired by makepkg `shpkg` lets you install packages with the use of build scripts # Supported now currently, the following distributions supported are: * Debian and it's derivatives * Arch Linux * NixOS (untested) * Redhat based distros (with `dnf` package manager like fedora) * Alpine * Android (Termux) # Dependencies for shpkg Current requirements for shpkg are * bash 4.0+ * curl * less * xz-utils * sudo (not required for termux) Optional dependencies for shpkg * unzip (for dealing with zip tarballs) * git (for fetching source code via git method) ### ⚠ Word of Warning!!! ⚠ We have tested `shpkg` in a wide variety of systems like debian, termux, alpine Some packages may break your system or leave it in a inconsistent state, so before trying `shpkg` it is highly recommended to test it on chroot environment or in a virtual machine It is also highly recommended not to remove build dependencies or runtime dependencies if it asks you as it does not track dependencies carefully on what other packages depends on, this would make your system unstable and possibly affect the other packages to be uninstalled as well unconditionally so review the build scripts first before doing it # Installation Run the command: ``` . <(curl -sL https://git.io/setup-shpkg.sh) ``` to install `shpkg` script on your system # Setting up buildscripts ### Automatically adding a repository Run `shpkg update` first to download buildscripts, the repo list file located in `~/.config/shpkg_repo.list`. for more information please see [shpkg repo docs](./docs/repo.md) the `update` function is quite experimental if you saw the known bugs ### Manually adding a repository #### For every Linux distros ``` git clone https://github.com/shpkg/ports ~/.shpkg ``` #### For Termux ``` git clone https://github.com/shpkg/termux-ports ~/.shpkg ``` # Package Installation For package installation, you can do ``` shpkg install ``` *NOTE: running `shpkg` under `sudo` isn't necessary, `shpkg` will use sudo automatically* before installing packages, you can list the packages you added by doing ``` shpkg list ``` # Package Uninstallation You can simply uninstall package by doing ``` shpkg uninstall ``` **Warning: if it ask you to remove runtime dependencies as well, check the buildscript dependency information first before trying to uninstall runtime dependencies, `shpkg` won't track dependencies that other packages depends on, this would remove some of the packages unconditionally** Depending on a package's build script, sometimes there's no `remove()` function and you won't be able to uninstall it properly, so be aware of that # Querying package Information You can look at the package's build script before installing so you will have the opportunity to look at them first before installing, you can do ``` shpkg query ``` *It opens `less` as a default viewing of `shpkg` build scripts, if you want to change that behaviour, you can specify `PAGER=` environment variable* # To-Do * ~~Add `shpkg update` option (similar to `apt update`)~~ done