GNU Guix Package Manager Improves Extension Loading, Adds New Commands

GNU Guix introduces faster extension loading through compiled Guile modules, alongside a collection of ready-to-use commands.

GNU Guix, the free and open-source functional package manager powering the Guix System Linux distribution, has improved how it handles extensions, allowing additional commands to load faster and making it easier for developers to expand its capabilities.

One of its features is the ability to extend the guix command with additional functionality. Instead of waiting for new capabilities to become part of the main package manager, users can install extensions that introduce entirely new commands.

The latest improvements focus on how extensions are loaded. Previously, Guix evaluated extension code when loading it. The updated mechanism can now locate and use precompiled Guile modules, reducing the work to load custom commands and improving performance.

The change also introduces a revised directory structure for extensions, letting Guix recognize compiled modules correctly. Existing extension developers are encouraged to adopt the new layout to benefit from these improvements.

For regular users, however, the more immediately useful development is the availability of a collection of extensions that add practical commands to Guix.

These are distributed individually or through a package called guix-extension-collection, which currently includes:

  • explore – Interactively examines a Guix System configuration.
  • removals – Helps users keep track of packages removed from Guix.
  • compose – Provides a Docker Compose compatibility layer.
  • toys – Allows users to explore packages and services through a REST API.
  • xsearch – Offers faster package searches using a Xapian-based cache.

Users with a recent Guix installation can try the collection without installing it permanently by running:

guix shell guix guile guix-extension-collectionCode language: Bash (bash)

Once the environment is active, running guix help displays the additional commands alongside the standard Guix functionality.

Finally, the project is encouraging developers to contribute their extensions to the guix-extensions organization on Codeberg, with the goal of establishing a central place for community-developed commands.

For more details, including instructions for creating and packaging extensions, see the official announcement.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *