Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pkgxdev/pkgm

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pkgm

Install pkgx packages to /usr/local.

Caution

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

  1. Packages are installed via pkgx to ~/.pkgx
  2. We then sudo hard-link them to /usr/local/pkgs
  3. 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
  • Installed packages can be installed as root
  • dev-aware installations
  • Optional self-healing shims

About

Install `pkgx` packages to `/usr/local`

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.