This is a vibe coding project cause I'm too lazy :) And this project is for my own system only, so use it on your own risk.
jpm is a simple, bash-based package manager built from scratch for Linux. It handles package installation, dependency management, and uninstallation with reverse dependency checks.
- Install: Recursively installs dependencies.
- Uninstall: Prevents breaking other packages by checking reverse dependencies.
- Remote Repository: Auto-clones package repository on first use.
- Source Handling:
- Downloads from HTTP/HTTPS URLs.
- Clones git repositories (supports
.git,git://, andgit+prefixes).
- Integrity: Supports MD5 and SHA256 checksum validation.
- Tracking: Keeps track of installed files for clean removal.
sudo make install| Variable | Default | Description |
|---|---|---|
JPM_REPO |
/var/lib/jpm/repo |
Path to local package repository |
JPM_REPO_URL |
(hardcoded) | Git URL to clone if repo missing |
JPM_ROOT |
/ |
Root path for installation (for testing) |
JDEBUG |
false |
Keep build dirs on exit if true |
# Install a package (pretend mode - build only)
sudo jpm -p install <package_name>
# Uninstall a package
sudo jpm uninstall <package_name>
# Clean cache
sudo jpm clean [package_name]
# Help
jpm helpPackages are JBUILD files in the repository (/var/lib/jpm/repo/<pkg_name>/JBUILD).
name="mypkg"
version="1.0"
url="https://example.com/source.tar.gz"
# or url="git+https://github.com/user/repo"
deps=("libdependency")
build() {
make
}
package() {
make install DESTDIR="$1"
}For full documentation, see docs/USAGE.md or view the man page:
man jpm
# or before installing:
man ./docs/jpm.1