Manual De Referencia De GNU Guix Uso Del Gestor De Paquetes Funcional GNU Guix
Total Page:16
File Type:pdf, Size:1020Kb
Manual de referencia de GNU Guix Uso del gestor de paquetes funcional GNU Guix. Las desarrolladoras de GNU Guix Edici´on1.3.0 20 May 2021 Copyright c 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Court`es Copyright c 2013, 2014, 2016 Andreas Enge Copyright c 2013 Nikita Karetnikov Copyright c 2014, 2015, 2016 Alex Kost Copyright c 2015, 2016 Mathieu Lirzin Copyright c 2014 Pierre-Antoine Rault Copyright c 2015 Taylan Ulrich Bayırlı/Kammer Copyright c 2015, 2016, 2017, 2019, 2020, 2021 Leo Famulari Copyright c 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus Copyright c 2016 Ben Woodcroft Copyright c 2016, 2017, 2018, 2021 Chris Marusich Copyright c 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner Copyright c 2016 John Darrington Copyright c 2016, 2017 Nikita Gillmann Copyright c 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen Copyright c 2016, 2017, 2018, 2019, 2020 Julien Lepiller Copyright c 2016 Alex ter Weele Copyright c 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines Copyright c 2017, 2018, 2019 Cl´ement Lassieur Copyright c 2017, 2018, 2020, 2021 Mathieu Othacehe Copyright c 2017 Federico Beffa Copyright c 2017, 2018 Carlo Zancanaro Copyright c 2017 Thomas Danckaert Copyright c 2017 humanitiesNerd Copyright c 2017, 2021 Christopher Lemmer Webber Copyright c 2017, 2018, 2019, 2020 Marius Bakke Copyright c 2017, 2019, 2020 Hartmut Goebel Copyright c 2017, 2019, 2020, 2021 Maxim Cournoyer Copyright c 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice Copyright c 2017 George Clemmer Copyright c 2017 Andy Wingo Copyright c 2017, 2018, 2019, 2020 Arun Isaac Copyright c 2017 nee Copyright c 2018 Rutger Helling Copyright c 2018, 2021 Oleg Pykhalov Copyright c 2018 Mike Gerwitz Copyright c 2018 Pierre-Antoine Rouby Copyright c 2018, 2019 G´abor Boskovits Copyright c 2018, 2019, 2020 Florian Pelz Copyright c 2018 Laura Lazzati Copyright c 2018 Alex Vong Copyright c 2019 Josh Holland Copyright c 2019, 2020 Diego Nicola Barbato Copyright c 2019 Ivan Petkov Copyright c 2019 Jakob L. Kreuze Copyright c 2019 Kyle Andrews Copyright c 2019 Alex Griffin Copyright c 2019, 2020 Guillaume Le Vaillant Copyright c 2020 Leo Prikler Copyright c 2019, 2020 Simon Tournier Copyright c 2020 Wiktor Zelazny_ Copyright c 2020 Damien Cassou Copyright c 2020 Jakub Kądziolka Copyright c 2020 Jack Hill Copyright c 2020 Naga Malleswari Copyright c 2020 Brice Waegeneire Copyright c 2020 R Veera Kumar Copyright c 2020 Pierre Langlois Copyright c 2020 pinoaffe Copyright c 2020 Andr´eBatista Copyright c 2020, 2021 Alexandru-Sergiu Marton Copyright c 2020 raingloom Copyright c 2020 Daniel Brooks Copyright c 2020 John Soo Copyright c 2020 Jonathan Brielmaier Copyright c 2020 Edgar Vincent Copyright c 2021 Maxime Devos Se garantiza el permiso de copia, distribuci´ony/o modificaci´onde este documento bajo los t´erminosde la licencia de documentaci´onlibre de GNU (GNU Free Documentation License), versi´on1.3 o cualquier versi´onposterior publicada por la Free Software Foundation; sin secciones invariantes, sin textos de cubierta delantera ni trasera. Una copia de la licencia est´aincluida en la secci´ontitulada \GNU Free Documentation License". i ´Indice General GNU Guix ::::::::::::::::::::::::::::::::::::::::::: 1 1 Introducci´on ::::::::::::::::::::::::::::::::::::: 2 1.1 Gesti´onde software con Guix ::::::::::::::::::::::::::::::::::: 2 1.2 Distribuci´onGNU :::::::::::::::::::::::::::::::::::::::::::::: 3 2 Instalaci´on ::::::::::::::::::::::::::::::::::::::: 5 2.1 Instalaci´onbinaria :::::::::::::::::::::::::::::::::::::::::::::: 5 2.2 Requisitos :::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.3 Ejecuci´onde la bater´ıade pruebas :::::::::::::::::::::::::::::: 9 2.4 Preparaci´ondel daemon ::::::::::::::::::::::::::::::::::::::: 10 2.4.1 Configuraci´ondel entorno de construcci´on::::::::::::::::: 10 2.4.2 Uso de la facilidad de delegaci´onde trabajo ::::::::::::::: 12 2.4.3 Soporte de SELinux :::::::::::::::::::::::::::::::::::::: 15 2.4.3.1 Instalaci´onde la pol´ıticade SELinux ::::::::::::::::: 15 2.4.3.2 Limitaciones ::::::::::::::::::::::::::::::::::::::::: 16 2.5 Invocaci´onde guix-daemon :::::::::::::::::::::::::::::::::::: 16 2.6 Configuraci´onde la aplicaci´on ::::::::::::::::::::::::::::::::: 21 2.6.1 Localizaciones :::::::::::::::::::::::::::::::::::::::::::: 21 2.6.2 Selector de servicios de nombres :::::::::::::::::::::::::: 22 2.6.3 Tipograf´ıasX11 :::::::::::::::::::::::::::::::::::::::::: 22 2.6.4 Certificados X.509 :::::::::::::::::::::::::::::::::::::::: 23 2.6.5 Paquetes Emacs :::::::::::::::::::::::::::::::::::::::::: 23 2.7 Actualizar Guix ::::::::::::::::::::::::::::::::::::::::::::::: 24 3 Instalaci´ondel sistema::::::::::::::::::::::::: 25 3.1 Limitaciones::::::::::::::::::::::::::::::::::::::::::::::::::: 25 3.2 Consideraciones sobre el hardware ::::::::::::::::::::::::::::: 25 3.3 Instalaci´ondesde memoria USB y DVD :::::::::::::::::::::::: 26 Copiado en una memoria USB ::::::::::::::::::::::::::::::::::: 26 Grabaci´onen un DVD ::::::::::::::::::::::::::::::::::::::::::: 26 Arranque :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 26 3.4 Preparaci´onpara la instalaci´on :::::::::::::::::::::::::::::::: 27 3.5 Instalaci´ongr´aficaguiada :::::::::::::::::::::::::::::::::::::: 27 3.6 Instalaci´onmanual :::::::::::::::::::::::::::::::::::::::::::: 30 3.6.1 Distribuci´onde teclado, red y particionado :::::::::::::::: 30 3.6.1.1 Distribuci´onde teclado :::::::::::::::::::::::::::::: 31 3.6.1.2 Red ::::::::::::::::::::::::::::::::::::::::::::::::: 31 3.6.1.3 Particionado de discos ::::::::::::::::::::::::::::::: 32 3.6.2 Procedimiento de instalaci´on:::::::::::::::::::::::::::::: 34 3.7 Tras la instalaci´ondel sistema ::::::::::::::::::::::::::::::::: 35 3.8 Instalaci´onde Guix en una m´aquinavirtual :::::::::::::::::::: 35 ii 3.9 Construcci´onde la imagen de instalaci´on::::::::::::::::::::::: 36 3.10 Construcci´onde la imagen de instalaci´onpara placas ARM ::: 36 4 Empezando ::::::::::::::::::::::::::::::::::::: 37 5 Gesti´onde paquetes ::::::::::::::::::::::::::: 40 5.1 Caracter´ısticas :::::::::::::::::::::::::::::::::::::::::::::::: 40 5.2 Invocaci´onde guix package ::::::::::::::::::::::::::::::::::: 41 5.3 Sustituciones :::::::::::::::::::::::::::::::::::::::::::::::::: 51 5.3.1 Servidor oficial de sustituciones.::::::::::::::::::::::::::: 51 5.3.2 Autorizaci´onde servidores de sustituciones :::::::::::::::: 52 5.3.3 Obtenci´onde sustiticiones desde otros servidores :::::::::: 53 5.3.4 Verificaci´onde sustituciones :::::::::::::::::::::::::::::: 54 5.3.5 Configuraci´onde la pasarela.:::::::::::::::::::::::::::::: 55 5.3.6 Fallos en las sustituciones ::::::::::::::::::::::::::::::::: 55 5.3.7 Sobre la confianza en binarios ::::::::::::::::::::::::::::: 55 5.4 Paquetes con m´ultiplessalidas ::::::::::::::::::::::::::::::::: 56 5.5 Invocaci´onde guix gc ::::::::::::::::::::::::::::::::::::::::: 56 5.6 Invocaci´onde guix pull::::::::::::::::::::::::::::::::::::::: 60 5.7 Invocaci´onde guix time-machine ::::::::::::::::::::::::::::: 63 5.8 Inferiores :::::::::::::::::::::::::::::::::::::::::::::::::::::: 64 5.9 Invocaci´onde guix describe :::::::::::::::::::::::::::::::::: 66 5.10 Invocaci´onde guix archive :::::::::::::::::::::::::::::::::: 68 6 Canales ::::::::::::::::::::::::::::::::::::::::: 71 6.1 Especificaci´onde canales adicionales ::::::::::::::::::::::::::: 71 6.2 Uso de un canal de Guix personalizado :::::::::::::::::::::::: 72 6.3 Replicaci´onde Guix ::::::::::::::::::::::::::::::::::::::::::: 72 6.4 Verificaci´onde canales ::::::::::::::::::::::::::::::::::::::::: 73 6.5 Channels with Substitutes ::::::::::::::::::::::::::::::::::::: 73 6.6 Creaci´onde un canal :::::::::::::::::::::::::::::::::::::::::: 74 6.7 M´odulosde paquetes en un subdirectorio :::::::::::::::::::::: 75 6.8 Declaraci´onde dependencias de canales :::::::::::::::::::::::: 75 6.9 Especificaci´onde autorizaciones del canal :::::::::::::::::::::: 75 6.10 URL primaria :::::::::::::::::::::::::::::::::::::::::::::::: 77 6.11 Escribir de noticias del canal ::::::::::::::::::::::::::::::::: 77 7 Desarrollo::::::::::::::::::::::::::::::::::::::: 79 7.1 Invocaci´onde guix environment :::::::::::::::::::::::::::::: 79 7.2 Invocaci´onde guix pack::::::::::::::::::::::::::::::::::::::: 84 7.3 La cadena de herramientas de GCC:::::::::::::::::::::::::::: 89 7.4 Invocaci´onde guix git authenticate ::::::::::::::::::::::::: 90 iii 8 Interfaz program´atica :::::::::::::::::::::::::: 91 8.1 M´odulosde paquetes :::::::::::::::::::::::::::::::::::::::::: 91 8.2 Definici´onde paquetes ::::::::::::::::::::::::::::::::::::::::: 92 8.2.1 Referencia de package :::::::::::::::::::::::::::::::::::: 95 8.2.2 Referencia de origin ::::::::::::::::::::::::::::::::::::: 98 8.3 Definici´onde variantes de paquetes ::::::::::::::::::::::::::: 101 8.4 Sistemas de construcci´on ::::::::::::::::::::::::::::::::::::: 104 8.5 Fases de construcci´on::::::::::::::::::::::::::::::::::::::::: 121 8.6 Utilidades de construcci´on :::::::::::::::::::::::::::::::::::: 124 8.6.1 Tratamiento de nombres de archivo del almac´en :::::::::: 125 8.6.2 Tipos de archivo::::::::::::::::::::::::::::::::::::::::: 125 8.6.3 Manipulaci´onde archivos :::::::::::::::::::::::::::::::: 126 8.6.4 B´usquedade archivos :::::::::::::::::::::::::::::::::::: 127 8.6.5 Fases de construcci´on :::::::::::::::::::::::::::::::::::: 128 8.7 El almac´en ::::::::::::::::::::::::::::::::::::::::::::::::::: 129 8.8 Derivaciones:::::::::::::::::::::::::::::::::::::::::::::::::: 131 8.9