[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 Bashing guix package

guix package command is the tool that allows users to install, upgrade, and remove packages, as well as rolling back to previous configurations. These operations work on a user profile—a directory of installed packages. Each user has a default profile in ‘$HOME/.guix-profile’. The command operates only on the user’s own profile, and works with normal user privileges (see section Features). Its syntax is:

guix package options

options specifies the operations to be performed during the transaction. Upon completion, a new profile is created, but previous generations of the profile remain available, should the user want to roll back.

lua and install guile and guile-cairo in a single transaction:

guix package -r lua -i guile guile-cairo

guix package and provide fewer options, so in some cases you’ll probably want to use guix package directly.

guix package also supports a declarative approach whereby the user specifies the exact set of packages to be available and passes it via the ‘--manifest’ option (see --manifest).

$HOME/.guix-profile’. This symlink always points to the current generation of the user’s default profile. Thus, users can add ‘$HOME/.guix-profile/bin’ to their PATH environment variable, and so on. If you are not using Guix System, consider adding the following lines to your ‘~/.bash_profile’ (see Bash Startup Files in The GNU Bash Reference Manual) so that newly-spawned shells get all the right environment variable definitions:

GUIX_PROFILE="$HOME/.guix-profile" ; \
source "$GUIX_PROFILE/etc/profile"

garbage-collector root, which ‘$HOME/.guix-profile’ points to (see section Invoking guix gc). That directory is normally localstatedir/guix/profiles/per-user/user, where localstatedir is the value passed to configure as ‘--localstatedir’, and user is the user name. The ‘per-user’ directory is created when guix-daemon is started, and the user sub-directory is created by guix package.

options can be among the following:

--install=package
-i package
--install-from-expression=exp
-e exp
--install-from-file=file
-f file
--remove=package
-r package
--upgrade[=regexp …]
-u [regexp …]
--do-not-upgrade[=regexp …]
--manifest=file
-m file
--roll-back
--switch-generation=pattern
-S pattern
--search-paths[=kind]
--profile=profile
-p profile
--list-profiles
--allow-collisions
--bootstrap

options can be among the following:

-e exp
-f file
-m file
-S pattern
-p profile
-i package
-r package
-u [regexp …]

guix package supports the following options to query the current state of a profile, or the availability of packages:

--search=regexp
-s regexp
--show=package
--list-installed[=regexp]
-I [regexp]
--list-available[=regexp]
-A [regexp]
--list-generations[=pattern]
-l [pattern]
--delete-generations[=pattern]
-d [pattern]
--export-manifest
--export-channels

guix package may actually start build processes, it supports all the common build options (see section Common Build Options). It also supports package transformation options, such as ‘--with-source’, and preserves them across upgrades (see section Package Transformation Options).


This document was generated on September 30, 2024 using texi2html 5.0.