[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: installing packages in Guix System

From: Gary Johnson
Subject: Re: installing packages in Guix System
Date: Thu, 17 Feb 2022 20:50:39 -0500

Gottfried <> writes:
> When you install a package in an other Linux distro, it will be
> available in the system.
> In guix it is different. I installed e.g. hplip,
> system-config-printer,cups, cups-filters, but additionally I have to
> add the printer settings in the /etc/config.scm file.
> Could somebody explain it to me why?

These are the standard steps to update your packages on Guix System:

NOTE: You should run all of these commands as your regular (non-root)
      user account. There is no need to install packages as root on Guix
      System. Doing so is usually a sign of confusion by the user.

1. Download and build the latest version of the guix package manager.
   This will also download the most up-to-date collection of package
   recipes to your computer. However, it will not update any of the
   packages that you have already installed. It only updates the guix

   $ guix pull

2. Update all of the packages that you have already installed in your
   user profile by asking guix to rebuild all of those which have
   updated package recipes. This will also rebuild any packages that you
   have installed whose dependencies have updated package recipes.

   $ guix package -u

3. Update all of the packages and services that you have installed
   system-wide with your config.scm file. This is the file that contains
   your operating-system declaration. Note that you need to use sudo for
   this command, but you should run it as your regular (non-root) user.
   Otherwise, you will not be using the latest version of the guix
   command that you just downloaded in step 1.

   $ sudo guix system reconfigure config.scm

4. Be happy! You are done. ;)

> When I installed printer packages, where do they go? Is the guix
> system on a different level and it needs also to be configured
> additionally?

Every package that you install with the guix command is installed under
/gnu/store. The reason that you can use these commands as though they
were installed in the usual Linux locations (e.g., /bin, /sbin/,
/usr/bin, /usr/local/bin, /opt) is because the guix command creates a
web of symlinks under ~/.config/guix/current and ~/.guix-profile which
point at the files you installed under /gnu/store.

The bin directories within these two symlink directories are
automatically added to your $PATH environment variable on Guix System,
which ensures that your shell will be able to find and use all of these
programs under /gnu/store.

If you want to configure system services (e.g., printing server,
database server, web server, gemini server, tor server, ssh server,
...other servers..., and some other magical, non-server one-shot
things), you have to add entries for these services to your config.scm
file along with the relevant configuration settings for these services.

When you run the command in step 3 above, the packages for these
services will be installed under /gnu/store and then service entries for
each of them will be added to Sheperd, which is Guix System's service

You can interact with Sheperd services using the herd command like so:

$ sudo herd status

$ sudo herd status cups

I hope this information was clear and helpful.

Have fun and happy hacking!


GPG Key ID: 7BC158ED
Use `gpg --search-keys lambdatronic' to find me
Protect yourself from surveillance:
()  ascii ribbon campaign - against html e-mail
/\   - against proprietary attachments

Why is HTML email a security nightmare? See

Please avoid sending me MS-Office attachments.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]