Introduction¶
pkgix is a very lightweight package manager, intended to setup software in environments where root access is not available or installing the software system-wide is not desirable.
Package description files can be located inside repositories accessible via
multiple URLs. The following protocols are supported: file://
(default),
http://
, https://
, ftp://
.
Written in BASH using standard POSIX utilities.
Setup¶
At minimum, you only need to obtain the script file pkgix.
By default pkgix looks for a repository in ~/pkgix-repo/pkgs
. Repositories
can be specified using the -r
flag, but it is recommended to export the
repository URL/path with PKGIX_REPOS="<repos...>"
(separated by ;
).
See the Repositories section below for list of known repositories.
Recommended:
- Add
<path-to-pkgix-repo>/bin
to yourPATH
. source "<path-to-pkgix-repo>/share/pkgix/helper-inc.sh"
; currently supported: bash, zsh. Provides thepkgix-activate
andpkgix-deactivate
functions; annotates shell prompt to indicate active prefix environment.
Example Usage¶
Common use-cases involve building software where many dependencies are involved when working in an environment without root access. The below is only to illustrate the most basic usage.
# Install gcc 4.4 and make 3.80 into 'legacy-build-tools' from repository.
$ pkgix install legacy-build-tools dev/gcc-4.4 dev/make-3.80
# Starts a new shell in the chosen prefix environment.
$ pkgix chenv legacy-build-tools
# Add a remote repository. Additional URLs are processed in
# order, until the requested package description file is found.
$ pkgix -r https://raw.github.com/pkgix/pkgix-repo/master/pkgs install some-prefix dev/gcc-4.4
Known Repositories¶
List of known repository URLs:
- abs2pkgix: Converter from ArchLinux PKGBUILDs to pkgix package description files. Does not yet support all packages.
- pkgix-repo:
https://raw.github.com/pkgix/pkgix-repo/master/pkgs
—experimental repository playground. Likely outdated! Maintaining this should not be the priority, as we have many excellent package repositories elsewhere, and it would be more useful to build converters.