You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pkgm is new software. Please report any issues you encounter and try it out
in parallel with your current package manager.
Usage
$ pkgm install node
# ^^ installs latest node to ~/.local. ie. you get ~/.local/bin/node
$ pkgm install node@20.1
# ^^ installs node^20.1 or switches out the installed node to 20.1
$ pkgm uninstall node
$ sudo pkgm install node
# ^^ installs node to /usr/local. ie. you get /usr/local/bin/node
$ pkgm shim node
# ^^ creates a shim for node at ~/.local/bin/node# see the docs below for details about shims
$ pkgm list
# ^^ lists what’s installed
$ pkgm outdated
# ^^ lists outdated installations
$ pkgm update
# ^^ updates ~/.local packages to latest versions
$ sudo pkgm update
# ^^ updates /usr/local packages to latest versions
Tip
pkgm i is an alias for pkgm install
pkgm rm is an alias for pkgm uninstall
pkgm ls is an alias for pkgm list
pkgm up is an alias for pkgm update
Warning
You should probably sudo pkgm install rather than install to ~/.local.
This is because many other tools will not look in ~/.local for packages
even if it’s in PATH. Having said this—by all means—see how it goes!
Shims
Shims are files with a single line, eg #!/usr/bin/env -S pkgx -q! node@22.
Thus using the shell to invoke the program via pkgx. You get all the
benefits of an installed package—but only installed on-demand. Useful for
self-healing setups, devops, containers and plenty more one-off or ephemeral
tasks.
Shims are pretty great—but have caveats. Some software might be surprised that
a package is not fully “installed” which can lead to unexpected errors. In
practice we have seen issues only rarely and for more complex package
combinations.
Installation
brew install pkgxdev/made/pkgm || curl https://pkgx.sh | sh
Uninstallation
brew rm pkgm || sudo rm /usr/local/bin/pkgm
Intricacies
Packages are installed via pkgx to ~/.pkgx
We then sudo hard-link them to /usr/local/pkgs
We then symlink the hard-links to /usr/local
Advantages Over Homebrew
Blazingly fast
Install specific versions of any pkg
You install by executable name—thus you don’t have to do a search first