Skip to content

justanoobcoder/jpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jpm - Just Package Manager

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.

Overview

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.

Features

  • 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://, and git+ prefixes).
  • Integrity: Supports MD5 and SHA256 checksum validation.
  • Tracking: Keeps track of installed files for clean removal.

Installation

sudo make install

Configuration

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

Usage

# 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 help

Package Format

Packages 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"
}

Documentation

For full documentation, see docs/USAGE.md or view the man page:

man jpm
# or before installing:
man ./docs/jpm.1

About

Just Package Manager - a simple package manager for LFS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors