pkget

Binary package manager for CRUX
git clone git://git.emmett1.my/pkget.git
Log | Files | Refs | README

pkget.1 (4227B)


      1 .TH PKGET 1 "2026-06-11" "pkget 1.0" "User Commands"
      2 .SH NAME
      3 pkget \- binary package fetcher and installer
      4 .SH SYNOPSIS
      5 .B pkget
      6 [\fB\-u\fR \fIurl\fR]
      7 [\fB\-c\fR \fIdir\fR]
      8 [\fB\-snNfUovh\fR]
      9 [\fIpackage\fR ...]
     10 .SH DESCRIPTION
     11 \fBpkget\fR downloads binary packages from a remote HTTP repository,
     12 resolves dependencies, verifies SHA256 checksums, and installs via
     13 \fBpkgadd\fR(8).
     14 .PP
     15 The repository must contain a \fBrepo.db\fR (package metadata) and a
     16 \fBrepo.sha256\fR (checksums) at its root.  Run \fBpkget \-s\fR first
     17 to sync these files to the local cache.
     18 .SH OPTIONS
     19 .TP
     20 \fB\-u\fR \fIurl\fR
     21 Repository base URL (required, or set \fBREPO_URL\fR in the environment).
     22 .TP
     23 \fB\-c\fR \fIdir\fR
     24 Cache directory (default: \fB/var/cache/pkget\fR).
     25 .TP
     26 \fB\-s\fR
     27 Sync the repo database and checksum file from the server.  Exits
     28 after syncing unless packages are also specified.
     29 .TP
     30 \fB\-n\fR
     31 Dry run: resolve dependencies, print the install plan, and exit
     32 without downloading or installing anything.
     33 .TP
     34 \fB\-N\fR
     35 Skip dependency resolution.  Only the named packages are processed;
     36 their dependencies are ignored.
     37 .TP
     38 \fB\-f\fR
     39 Force reinstall.  Packages that are already installed are reinstalled
     40 instead of being skipped.  Passes \fB\-f\fR to \fBpkgadd\fR.
     41 .TP
     42 \fB\-U\fR
     43 Upgrade mode.  With explicit package names, passes \fB\-u\fR to
     44 \fBpkgadd\fR for each package.  With \fIno package arguments\fR,
     45 upgrades \fIall\fR outdated packages (dependencies resolved, new
     46 dependencies fetched, up-to-date packages skipped).
     47 .TP
     48 \fB\-o\fR
     49 Show outdated packages.  Compares installed versions against the
     50 repo and prints packages with available updates.  With package
     51 arguments, checks only those packages.  With no arguments, checks
     52 all installed packages.
     53 .TP
     54 \fB\-v\fR
     55 Verbose output.  Prints additional progress messages prefixed with
     56 \fB[v]\fR.
     57 .TP
     58 \fB\-h\fR
     59 Print usage and exit.
     60 .SH ENVIRONMENT
     61 .TP
     62 \fBREPO_URL\fR
     63 Repository base URL.  Must be set if \fB\-u\fR is not used.
     64 .TP
     65 \fBCACHEDIR\fR
     66 Local cache directory (default: \fB/var/cache/pkget\fR).  The repo
     67 database and downloaded packages are stored here.
     68 .TP
     69 \fBPKGADD\fR
     70 Path to \fBpkgadd\fR (default: \fBpkgadd\fR).
     71 .SH FILES
     72 .TP
     73 \fB/var/cache/pkget/repo.db\fR
     74 Cached repository database.
     75 .TP
     76 \fB/var/cache/pkget/repo.sha256\fR
     77 Cached checksum file.
     78 .TP
     79 \fB/var/lib/pkg/db\fR
     80 Installed package list (fallback when \fBpkginfo\fR is unavailable).
     81 .SH EXAMPLES
     82 .TP
     83 Sync the repo index:
     84 \fBpkget \-u https://pkg.example.com \-s\fR
     85 .TP
     86 Install a package and its dependencies:
     87 \fBpkget \-u https://pkg.example.com wget\fR
     88 .TP
     89 Dry-run an install:
     90 \fBpkget \-n \-u https://pkg.example.com curl\fR
     91 .TP
     92 Reinstall a package (force):
     93 \fBpkget \-f \-u https://pkg.example.com bash\fR
     94 .TP
     95 Check for outdated packages:
     96 \fBpkget \-o \-u https://pkg.example.com\fR
     97 .TP
     98 Upgrade all outdated packages:
     99 \fBpkget \-U \-u https://pkg.example.com\fR
    100 .TP
    101 Install a standalone package (skip deps):
    102 \fBpkget \-N \-u https://pkg.example.com mypkg\fR
    103 .SH "INSTALL PIPELINE"
    104 Each install follows this sequence:
    105 .IP 1. 3
    106 \fBResolve\fR \[em] Build the full ordered package list (dependencies
    107 first) via topological sort.
    108 .IP 2.
    109 \fBFilter\fR \[em] Skip already-installed packages (unless \fB\-f\fR
    110 or \fB\-U\fR).  In full-upgrade mode, up-to-date transitive
    111 dependencies are also skipped.
    112 .IP 3.
    113 \fBPlan\fR \[em] Print what will be installed, prompt for confirmation.
    114 .IP 4.
    115 \fBFetch\fR \[em] Download all packages and verify SHA256 checksums
    116 \fIbefore\fR installing anything (atomicity).
    117 .IP 5.
    118 \fBInstall\fR \[em] Run pre-install script, call \fBpkgadd\fR, run
    119 post-install script for each package in dependency order.
    120 .SH "PRE/POST-INSTALL SCRIPTS"
    121 Scripts are embedded in \fBrepo.db\fR as base64-encoded
    122 \fBpre-install:b64:...\fR and \fBpost-install:b64:...\fR lines.
    123 Legacy repos that store scripts as separate files
    124 (\fBpre-install:1\fR) are still supported.
    125 .SH "EXIT STATUS"
    126 .IP 0
    127 Success.
    128 .IP 1
    129 An error occurred (fetch failure, checksum mismatch, missing package, etc.).
    130 .SH "SEE ALSO"
    131 \fBpkgrepo\fR(1), \fBpkgadd\fR(8), \fBpkginfo\fR(8), \fBprt\-get\fR(8)
    132 .SH BUGS
    133 Circular dependencies are detected and warned about; the involved
    134 packages are skipped rather than causing an infinite loop.