guix build
guix edit
guix download
guix hash
guix import
guix refresh
guix lint
guix size
guix graph
guix publish
guix challenge
guix copy
guix container
guix weather
guix processes
operating-system
Referenceguix system
guix deploy
Next: Introduction [Contents][Index]
This document describes GNU Guix version 1.3.0.8543-039c3-dirty, a functional package management tool written for the GNU system.
This manual is also available in Simplified Chinese (see GNU Guix参考手册), French (see Manuel de référence de GNU Guix), German (see Referenzhandbuch zu GNU Guix), Spanish (see Manual de referencia de GNU Guix), and Russian (see Руководство GNU Guix). If you would like to translate it in your native language, consider joining Weblate (see Translating Guix).
• Introduction | What is Guix about? | |
• Installation | Installing Guix. | |
• System Installation | Installing the whole operating system. | |
• Getting Started | Your first steps. | |
• Package Management | Package installation, upgrade, etc. | |
• Channels | Customizing the package collection. | |
• Development | Guix-aided software development. | |
• Programming Interface | Using Guix in Scheme. | |
• Utilities | Package management commands. | |
• System Configuration | Configuring the operating system. | |
• Home Configuration | Configuring the home environment. | |
• Documentation | Browsing software user manuals. | |
• Installing Debugging Files | Feeding the debugger. | |
• Security Updates | Deploying security fixes quickly. | |
• Bootstrapping | GNU/Linux built from scratch. | |
• Porting | Targeting another platform or kernel. | |
• Contributing | Your help needed! | |
• Acknowledgments | Thanks! | |
• GNU Free Documentation License | The license of this manual. | |
• Concept Index | Concepts. | |
• Programming Index | Data types, functions, and variables. | |
— The Detailed Node Listing — Introduction | ||
• Managing Software the Guix Way | What’s special. | |
• GNU Distribution | The packages and tools. | |
Installation | ||
• Binary Installation | Getting Guix running in no time! | |
• Requirements | Software needed to build and run Guix. | |
• Running the Test Suite | Testing Guix. | |
• Setting Up the Daemon | Preparing the build daemon’s environment. | |
• Invoking guix-daemon | Running the build daemon. | |
• Application Setup | Application-specific setup. | |
• Upgrading Guix | Upgrading Guix and its build daemon. | |
Setting Up the Daemon | ||
• Build Environment Setup | Preparing the isolated build environment. | |
• Daemon Offload Setup | Offloading builds to remote machines. | |
• SELinux Support | Using an SELinux policy for the daemon. | |
System Installation | ||
• Limitations | What you can expect. | |
• Hardware Considerations | Supported hardware. | |
• USB Stick and DVD Installation | Preparing the installation medium. | |
• Preparing for Installation | Networking, partitioning, etc. | |
• Guided Graphical Installation | Easy graphical installation. | |
• Manual Installation | Manual installation for wizards. | |
• After System Installation | When installation succeeded. | |
• Installing Guix in a VM | Guix System playground. | |
• Building the Installation Image | How this comes to be. | |
Manual Installation | ||
• Keyboard Layout and Networking and Partitioning | Initial setup. | |
• Proceeding with the Installation | Installing. | |
Package Management | ||
• Features | How Guix will make your life brighter. | |
• Invoking guix package | Package installation, removal, etc. | |
• Substitutes | Downloading pre-built binaries. | |
• Packages with Multiple Outputs | Single source package, multiple outputs. | |
• Invoking guix gc | Running the garbage collector. | |
• Invoking guix pull | Fetching the latest Guix and distribution. | |
• Invoking guix time-machine | Running an older revision of Guix. | |
• Inferiors | Interacting with another revision of Guix. | |
• Invoking guix describe | Display information about your Guix revision. | |
• Invoking guix archive | Exporting and importing store files. | |
Substitutes | ||
• Official Substitute Servers | One particular source of substitutes. | |
• Substitute Server Authorization | How to enable or disable substitutes. | |
• Getting Substitutes from Other Servers | Substitute diversity. | |
• Substitute Authentication | How Guix verifies substitutes. | |
• Proxy Settings | How to get substitutes via proxy. | |
• Substitution Failure | What happens when substitution fails. | |
• On Trusting Binaries | How can you trust that binary blob? | |
Channels | ||
• Specifying Additional Channels | Extending the package collection. | |
• Using a Custom Guix Channel | Using a customized Guix. | |
• Replicating Guix | Running the exact same Guix. | |
• Channel Authentication | How Guix verifies what it fetches. | |
• Channels with Substitutes | Using channels with available substitutes. | |
• Creating a Channel | How to write your custom channel. | |
• Package Modules in a Sub-directory | Specifying the channel’s package modules location. | |
• Declaring Channel Dependencies | How to depend on other channels. | |
• Specifying Channel Authorizations | Defining channel authors authorizations. | |
• Primary URL | Distinguishing mirror to original. | |
• Writing Channel News | Communicating information to channel’s users. | |
Development | ||
• Invoking guix shell | Spawning one-off software environments. | |
• Invoking guix environment | Setting up development environments. | |
• Invoking guix pack | Creating software bundles. | |
• The GCC toolchain | Working with languages supported by GCC. | |
• Invoking guix git authenticate | Authenticating Git repositories. | |
Programming Interface | ||
• Package Modules | Packages from the programmer’s viewpoint. | |
• Defining Packages | Defining new packages. | |
• Defining Package Variants | Customizing packages. | |
• Build Systems | Specifying how packages are built. | |
• Build Phases | Phases of the build process of a package. | |
• Build Utilities | Helpers for your package definitions and more. | |
• The Store | Manipulating the package store. | |
• Derivations | Low-level interface to package derivations. | |
• The Store Monad | Purely functional interface to the store. | |
• G-Expressions | Manipulating build expressions. | |
• Invoking guix repl | Programming Guix in Guile. | |
Defining Packages | ||
• package Reference | The package data type. | |
• origin Reference | The origin data type. | |
Utilities | ||
• Invoking guix build | Building packages from the command line. | |
• Invoking guix edit | Editing package definitions. | |
• Invoking guix download | Downloading a file and printing its hash. | |
• Invoking guix hash | Computing the cryptographic hash of a file. | |
• Invoking guix import | Importing package definitions. | |
• Invoking guix refresh | Updating package definitions. | |
• Invoking guix lint | Finding errors in package definitions. | |
• Invoking guix size | Profiling disk usage. | |
• Invoking guix graph | Visualizing the graph of packages. | |
• Invoking guix publish | Sharing substitutes. | |
• Invoking guix challenge | Challenging substitute servers. | |
• Invoking guix copy | Copying to and from a remote store. | |
• Invoking guix container | Process isolation. | |
• Invoking guix weather | Assessing substitute availability. | |
• Invoking guix processes | Listing client processes. | |
Invoking | ||
• Common Build Options | Build options for most commands. | |
• Package Transformation Options | Creating variants of packages. | |
• Additional Build Options | Options specific to ’guix build’. | |
• Debugging Build Failures | Real life packaging experience. | |
System Configuration | ||
• Using the Configuration System | Customizing your GNU system. | |
• operating-system Reference | Detail of operating-system declarations. | |
• File Systems | Configuring file system mounts. | |
• Mapped Devices | Block device extra processing. | |
• User Accounts | Specifying user accounts. | |
• Keyboard Layout | How the system interprets key strokes. | |
• Locales | Language and cultural convention settings. | |
• Services | Specifying system services. | |
• Setuid Programs | Programs running with root privileges. | |
• X.509 Certificates | Authenticating HTTPS servers. | |
• Name Service Switch | Configuring libc’s name service switch. | |
• Initial RAM Disk | Linux-Libre bootstrapping. | |
• Bootloader Configuration | Configuring the boot loader. | |
• Invoking guix system | Instantiating a system configuration. | |
• Invoking guix deploy | Deploying a system configuration to a remote host. | |
• Running Guix in a VM | How to run Guix System in a virtual machine. | |
• Defining Services | Adding new service definitions. | |
Home Environment Configuration | ||
• Invoking guix home | Instantiating a home environment configuration. | |
Services | ||
• Base Services | Essential system services. | |
• Scheduled Job Execution | The mcron service. | |
• Log Rotation | The rottlog service. | |
• Networking Services | Network setup, SSH daemon, etc. | |
• Unattended Upgrades | Automated system upgrades. | |
• X Window | Graphical display. | |
• Printing Services | Local and remote printer support. | |
• Desktop Services | D-Bus and desktop services. | |
• Sound Services | ALSA and Pulseaudio services. | |
• Database Services | SQL databases, key-value stores, etc. | |
• Mail Services | IMAP, POP3, SMTP, and all that. | |
• Messaging Services | Messaging services. | |
• Telephony Services | Telephony services. | |
• Monitoring Services | Monitoring services. | |
• Kerberos Services | Kerberos services. | |
• LDAP Services | LDAP services. | |
• Web Services | Web servers. | |
• Certificate Services | TLS certificates via Let’s Encrypt. | |
• DNS Services | DNS daemons. | |
• VPN Services | VPN daemons. | |
• Network File System | NFS related services. | |
• Continuous Integration | Cuirass and Laminar services. | |
• Power Management Services | Extending battery life. | |
• Audio Services | The MPD. | |
• Virtualization Services | Virtualization services. | |
• Version Control Services | Providing remote access to Git repositories. | |
• Game Services | Game servers. | |
• PAM Mount Service | Service to mount volumes when logging in. | |
• Guix Services | Services relating specifically to Guix. | |
• Linux Services | Services tied to the Linux kernel. | |
• Hurd Services | Services specific for a Hurd System. | |
• Miscellaneous Services | Other services. | |
Defining Services | ||
• Service Composition | The model for composing services. | |
• Service Types and Services | Types and services. | |
• Service Reference | API reference. | |
• Shepherd Services | A particular type of service. | |
Installing Debugging Files | ||
• Separate Debug Info | Installing ’debug’ outputs. | |
• Rebuilding Debug Info | Building missing debug info. | |
Bootstrapping | ||
• Reduced Binary Seed Bootstrap | A Bootstrap worthy of GNU. | |
• Preparing to Use the Bootstrap Binaries | Building that what matters most. | |
Next: Introduction [Contents][Index]