Next: Utilitários, Previous: Desenvolvimento, Up: Top [Contents][Index]
GNU Guix provides several Scheme programming interfaces (APIs) to define, build, and query packages. The first interface allows users to write high-level package definitions. These definitions refer to familiar packaging concepts, such as the name and version of a package, its build system, and its dependencies. These definitions can then be turned into concrete build actions.
Build actions are performed by the Guix daemon, on behalf of users. In a standard setup, the daemon has write access to the store—the /gnu/store directory—whereas users do not. The recommended setup also has the daemon perform builds in chroots, under specific build users, to minimize interference with the rest of the system.
Lower-level APIs are available to interact with the daemon and the store. To instruct the daemon to perform a build action, users actually provide it with a derivation. A derivation is a low-level representation of the build actions to be taken, and the environment in which they should occur—derivations are to package definitions what assembly is to C programs. The term “derivation” comes from the fact that build results derive from them.
This chapter describes all these APIs in turn, starting from high-level package definitions.
• Módulos de pacote | Pacotes do ponto de vista do programador. | |
• Definindo pacotes | Definindo novos pacotes. | |
• Defining Package Variants | Customizing packages. | |
• Writing Manifests | The bill of materials of your environment. | |
• Sistemas de compilação | Especificando como pacotes são compilados. | |
• Build Phases | Phases of the build process of a package. | |
• Build Utilities | Helpers for your package definitions and more. | |
• Search Paths | Declaring search path environment variables. | |
• O armazém | Manipulação do armazém de pacotes. | |
• Derivações | Interface de baixo nível para derivações de pacotes. | |
• A mônada do armazém | Interface puramente funcional para o armazém. | |
• Expressões-G | Manipulação de expressões de compilação. | |
• Invocando guix repl | Programming Guix in Guile | |
• Using Guix Interactively | Fine-grain interaction at the REPL. |
Next: Utilitários, Previous: Desenvolvimento, Up: Top [Contents][Index]