Getting Started
With pkgx
it couldn’t be simpler to run anything from the Open Source ecosystem:
Run Any Version
SemVer
Generally you probably want @
syntax, but if you need more specificity we fully support SemVer:
Running the Latest Version
pkgx foo
runs the latest “foo” that is installed.
If you want to ensure the latest version of “foo” is installed, use pkgx mash pkgx/upgrade foo
.
Adding Additional Packages to the Execution Environment
It can be useful to run a program with additional packages in the environment.
Here +pkg
syntax added OpenSSL to Cargo’s environment. Thus the build will see the OpenSSL headers and libraries.
Disambiguation
In some cases pkgx foo
may be ambiguous because multiple packages provide foo
.
In such cases pkgx
will error and ask you be more specific by using fully-qualified-names:
In general it's a good idea to specify fully qualified names in scripts, etc. since you want these to work forever.
Running System Commands
It can be useful to run system commands with a package environment injected. To do this either specify the full path of the system executable:
Or separate your commands with --
:
If you only specified make
rather than /usr/bin/make
or separating with -- make
then pkgx
would install GNU make for you and use that.
Dumping the Environment
If you don’t specify anything to run, pkgx
will install any +pkg
s and then dump the environment:
This can be useful in scripts or for adding tools to your shell:
For this mode we can also output JSON: pkgx +gum --json
.
Quietening Output
Note that this only effects pkgx
not the tools you run with pkgx
.
Other Common Needs
pkgx
is not a package manager. Thus the command itself doesn’t typically offer such operations you may expect, however the way pkgx
works is simple and standardized so we offer some mash
scripts to help.
Longer term we will make a tool pkgq
to help with these operations.
Upgrading Packages
pkgx foo
executes the latest version of foo
that is downloaded. To ensure you have (any) newer versions installed use this command:
Pruning Older Versions of Packages
The pkgx
download cache can get large over time. To prune older versions:
This may delete versions that you use—if so—this is fine. pkgx
will just reinstall them next time you need them.
Listing Available Versions for a Package
ie. what versions could be run by pkgx
:
Listing What is Downloaded
Last updated