diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2021-11-27 21:54:49 -0500 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2021-11-27 21:54:49 -0500 |
commit | 78b1b83be0cf04b4cba707751b7ad4d97787fe37 (patch) | |
tree | 0260daae62c3c0c055b7ec73b274fa82b31b344f /markup/pod/live-manual/media/text/es/user_customization-packages.ssi |
track document samples used
Diffstat (limited to 'markup/pod/live-manual/media/text/es/user_customization-packages.ssi')
-rw-r--r-- | markup/pod/live-manual/media/text/es/user_customization-packages.ssi | 704 |
1 files changed, 704 insertions, 0 deletions
diff --git a/markup/pod/live-manual/media/text/es/user_customization-packages.ssi b/markup/pod/live-manual/media/text/es/user_customization-packages.ssi new file mode 100644 index 0000000..390d921 --- /dev/null +++ b/markup/pod/live-manual/media/text/es/user_customization-packages.ssi @@ -0,0 +1,704 @@ +:B~ Personalización de la instalación de paquetes + +1~customizing-package-installation Personalización de la instalación de +paquetes + +Quizás la tarea más básica de personalización de un sistema en vivo es la +selección de paquetes que serán incluidos en la imagen. Este capítulo +orienta a través de las diferentes opciones de live-build que, en el momento +de la creación de la imagen, personalizan la instalación de paquetes. Las +opciones que seleccionan la distribucion base y las áreas del archivo a +utilizar son las que más influyen a la hora de conocer qué paquetes estarán +disponibles para su instalación en la imagen. Para asegurar una buena +velocidad de descarga de paquetes, se debería elegir el repositorio más +cercano. Se pueden añadir repositorios para backports, experimentales, +paquetes personalizados o incluir ficheros de paquetes directamente. Se +pueden definir listas de paquetes personalizadas, incluyendo metapaquetes +que instalarán muchos paquetes relacionados, como por ejemplo paquetes de un +entorno de escritorio o lenguaje particular. Por último existen varias +opciones que dan algún control sobre cuando son instalados los paquetes por +la herramienta /{apt}/ o la herramienta /{aptitude}/, según sea la +elegida. Estas opciones pueden ser útiles si se utiliza un proxy, se quiere +desactivar la instalación de paquetes recomendados para ahorrar espacio o se +necesita controlar las versiones de los paquetes a instalar mediante APT +pinning, por nombrar algunas posibilidades. + +2~ Origen de los paquetes + +3~ Distribución, áreas de archivo y modo + +La distribución seleccionada tiene gran impacto en qué paquetes están +disponibles para incluir en la imagen. Se debe indicar el nombre en clave de +la distribución, que por defecto es ${testing} para la versión ${testing} de +live-build. Se puede especificar cualquier nombre de distribución disponible +en los repositorios indicando su nombre en clave. (Para más detalles ver +{Términos}#terms). La opción #{--distribution}# no solamente influencia la +fuente de los paquetes dentro del archivo, sino que instruye a live-build a +comportarse tal y como se necesita para construir cada una de las +distribuciones. Por ejemplo, para construir la versión *{inestable}*, sid, +se debe indicar: + +code{ + + $ lb config --distribution sid + +}code + +Las áreas del archivo Debian son la principal división de paquetes dentro de +una distribución dada. En Debian las áreas del archivo establecidas son +#{main}#, #{contrib}# y #{non-free}#. Solamente los paquetes contenidos en +#{main}# son parte de la distribución Debian. Ésta es el área definida por +defecto en live-build. Se pueden indicar uno o más valores tal y como se +muestra en el siguiente ejemplo: + +code{ + + $ lb config --archive-areas "main contrib non-free" + +}code + +Experimentalmente se da soporte a alguna distribución derivada de Debian +mediante la opción #{--mode}#. Por defecto, esta opción toma el valor +#{debian}# sólo si se está construyendo en un sistema Debian o en un sistema +desconocido. Si se utiliza #{lb config}# en cualquiera de las distribuciones +derivadas a las que se da soporte, por defecto se construirá una imagen de +esa distribución derivada. Por ejemplo, si #{lb config}# se ejecuta en modo +#{ubuntu}# se utilizará el nombre de esa distribución y las áreas de +archivos específicas de esa distribución derivada en lugar de los propios de +Debian y live-build modificará su comportamiento para adecuarlo al modo +seleccionado. + +*{Nota:}* La ayuda a los usuarios de las distribuciones para las cuales se añadieron estos modos son responsabilidad de los desarrolladores de dichas distribuciones. El ${project} proporciona ayuda al desarrollo de la mejor manera posible, basándose en la información recogida de dichas distribuciones derivadas a pesar de que no desarrolla ni da soporte a las mismas. + +3~ Réplicas de Distribución Debian + +Los repositorios de Debian están replicados en una gran red alrededor del +mundo, de manera que se puede seleccionar la réplica más cercana con el fin +de obtener la mejor velocidad de descarga. Cada una de las opciones +#{--mirror-*}# gobierna qué réplica de repositorio Debian se utiliza en las +diferentes etapas de creación. Si se recuerda de {Etapas de la +creación}#stages-of-the-build, en la etapa *{bootstrap}* es cuando se crea +el directorio chroot con un sistema mínimo mediante la herramienta +/{debootstrap}/, y en la etapa *{chroot}* es cuando el directorio chroot es +completado con los paquetes necesarios para crear el sistema de ficheros que +será utilizado en el sistema en vivo. A cada una de estas etapas le +corresponde su propia opción #{--mirror-*}#. Posteriormente, en la etapa +*{binary}* se utilizarán las réplicas Debian indicadas en los valores de las +opciones #{--mirror-binary}# y #{--mirror-binary-security}# en lugar de +utilizar los indicados para las etapas anteriores. + +3~distribution-mirrors-build-time Réplicas de Distribution utilizadas +durante la creación + +Para indicar qué réplicas deben ser utilizadas en el momento de crear la +imagen es suficiente con utilizar las opciones #{--mirror-bootstrap}# y +#{--mirror-chroot-security}# como se muestra a continuación. + +code{ + + $ lb config --mirror-bootstrap http://localhost/debian/ \ + --mirror-chroot-security http://localhost/debian-security/ + +}code + +El valor indicado en #{--mirror-chroot}# es utilizado como valor por defecto +para la opción #{--mirror-bootstrap}# si esta no es especificada. + +3~ Réplicas de distribución Debian utilizadas en la ejecución. + +Las opciones #{--mirror-binary*}# gobiernan las réplicas configuradas en la +imagen binaria que serán utilizadas para instalar paquetes adicionales +mientras se ejecuta el sistema en vivo. Por defecto se utiliza +#{httpredir.debian.org}#, que es un servicio que selecciona la réplica más +cercana basándose, entre otras cosas, en la familia de la IP del usuario y +de la disponibilidad de la réplica. Es una elección bastante acertada +siempre que no se pueda predecir que réplica será la mejor para todos los +usuarios. También se puede especificar valores personalizados como se +muestra en el siguiente ejemplo. Una imagen construida con esta +configuración solamente sería accesible a los usuarios de una red donde +"#{mirror}#" fuese alcanzable. + +code{ + + $ lb config --mirror-binary http://mirror/debian/ \ + --mirror-binary-security http://mirror/debian-security/ \ + --mirror-binary-backports http://mirror/debian-backports/ + +}code + +3~additional-repositories Repositorios adicionales + +Se pueden añadir más repositorios, ampliando la lista de paquetes +seleccionables más alla de aquellos disponibles para la distribución +indicada, como pueden ser paquetes de backports, paquetes experimentales o +personalizados. Para configurar repositorios adicionales se debe crear los +ficheros #{config/archives/your-repository.list.chroot}# y/o +#{config/archives/your-repository.list.binary}#. Al igual que en las +opciones #{--mirror-*}#, estos ficheros gobiernan los repositorios +utilizados en las etapas *{chroot}* y *{binary}* respectivamente, esto es, +los repositorios que serán utilizados cuando se ejecute el sistema en vivo. + +Por ejemplo, #{config/archives/live.list.chroot}# permite instalar paquetes +de las instantáneas del repositorio Debian Live en el momento de crear la +imagen. + +code{ + + deb http://live-systems.org/ sid-snapshots main contrib non-free + +}code + +Si se añade la misma línea a #{config/archives/live.list.binary}#, el +repositorio será añadido al directorio #{/etc/apt/sources.list.d/}# del +sistema en vivo. + +Estos ficheros serán seleccionados automáticamente si existen. + +Se debería también incluir en el fichero +#{config/archives/your-repository.key.{binary,chroot}}# la clave GPG a +utilizar para firmar dicho repositorio. + +En caso de necesitar un APT pinning personalizado, las preferencias de APT +se pueden colocar mediante ficheros +#{config/archives/your-repository.pref.{binary,chroot}}#, y serán añadidos +automáticamente al sistema en vivo en el directorio +#{/etc/apt/preferences.d/}#. + +2~choosing-packages-to-install Selección de los paquetes a instalar + +Hay varias maneras de seleccionar qué paquetes serán instalados por +live-build en la imagen que cubren una variedad de necesidades diversas. Se +puede nombrar paquetes individuales para instalar en una lista de +paquetes. También se puede utilizar metapaquetes en esas listas, o +selecionarlas utilizando campos de ficheros de control de paquetes. Por +último, también se pueden utilizar ficheros de paquetes de prueba o +experimentales obtenidos antes de que aparezcan en los repositorios +oficiales simplemente depositando estos ficheros directamente en el árbol de +directorios #{config/}#. + +3~package-lists Listas de paquetes + +Las listas de paquetes proporcionan una potente forma de expresar qué +paquetes deberían ser instalados. La sintaxis de las listas soporta las +expresiones condicionales, que facilitan la creación de listas, adaptando su +utilización a diversas configuraciones. También se pueden añadir nombre de +paquetes en la listas utilizando shell helpers en tiempo de construcción. + +*{Nota:}* El comportamiento de live-build cuando se especifica un paquete que no existe es determinado por lo que se haya configurado en la utilidad APT. Para más detalles ver {Utilizar apt o aptitude}#choosing-apt-or-aptitude. + +3~using-metapackages Utilizar metapaquetes + +La manera más sencilla de rellenar una lista de paquetes es utilizar una +tarea metapaquete mantenida por una distribución. Por ejemplo: + +code{ + + $ lb config + $ echo task-gnome-desktop > config/package-lists/desktop.list.chroot + +}code + +Esto reemplaza el antiguo método de listas predefinidas compatible con +#{live-build}# 2.x. A diferencia de las listas predefinidas, los +metapaquetes de tareas no son específicos del proyecto Live Systems. Por el +contrario, son mantenidas por grupos de especialistas que trabajan en la +distribución y por lo tanto, reflejan el consenso de cada grupo acerca de +qué paquetes sirven mejor a las necesidades de los usuarios. Además, abarcan +una gama mucho más amplia de casos de uso que las listas predefinidas a las +que sustituyen. + +Todos los metapaquetes de tareas tienen el prefijo #{task-}#, por lo que +una forma rápida de determinar cuales están disponibles (aunque puede +contener un puñado de entradas falsas que coincidan con el nombre, pero que +no son metapaquetes) es buscar el nombre del paquete con: + +code{ + + $ apt-cache search --names-only ^task- + +}code + +Además de éstos, se encuentran otros metapaquetes con diversos +fines. Algunos son subconjuntos de paquetes de tareas más amplias, como +#{gnome-core}#, mientras que otros son partes especializadas individuales de +un Debian Pure Blend, como los metapaquetes #{education-*}#. Para tener una +lista de todos los metapaquetes en el archivo, instalar el paquete +#{debtags}# y listar todos los paquetes con la etiqueta +#{role::metapackage}# de la siguiente manera: + +code{ + + $ debtags search role::metapackage + +}code + +3~ Listas de paquetes locales + +Ya sea incluyendo metapaquetes en una lista, paquetes individuales, o una +combinación de ambos, todas las listas de paquetes locales se deben +almacenar en #{config/package-lists/}#. Ya que se puede utilizar más de una +lista, esto se presta muy bien a los diseños modulares. Por ejemplo, se +puede dedicar una lista a una elección particular de escritorio, la otra a +una colección de paquetes relacionados que puedan ser fácilmente utilizados +sobre un escritorio diferente. Esto permite experimentar con diferentes +combinaciones de conjuntos de paquetes con un mínimo esfuerzo, así como +compartir listas comunes entre diferentes proyectos de imágenes en vivo. + +Para que sean procesadas, las listas de paquetes que se depositen en este +directorio deben tener la extensión #{.list}# además de la extensión de la +etapa #{.chroot}# o #{.binary}# para indicar a qué etapa corresponde la +lista. + +*{Nota:}* Si no se especifica el sufijo, la lista será usada en las dos etapas. En consecuencia, es conveniente especificar #{.list.chroot}# de modo que los paquetes se instalen únicamente en el sistema en vivo y no exista otra copia extra del paquete #{.deb}#. + +3~ Listas de paquetes locales para la etapa binary + +Para crear una lista para la etapa «binary» crear un fichero con el sufijo +#{.list.binary}# en #{config/package-lists/}#. Estos paquetes no son +instalados en el sistema en vivo, pero son incluidos en #{pool/}#. El uso +típico de una de estas lista sería para una de las variantes de instalador +normal («non-live» N.del T.). Tal y como se mencionaba anteriormente, si se +desea usar la misma lista para la etapa «chroot» basta con solamente añadir +el sufijo #{.list}# + +3~generated-package-lists Generar listas de paquetes + +A veces ocurre que la mejor manera de crear una lista es generarla con un +script. Cualquier línea que comience con un signo de exclamación indica un +comando que se ejecutará dentro del chroot cuando la imagen se +construya. Por ejemplo, se podría incluir la línea #{! grep-aptavail -n +-sPackage -FPriority standard | sort}# en una lista de paquetes para +producir una lista ordenada de los paquetes disponibles con #{Priority: +standard}#. + +De hecho, la selección de paquetes con la orden #{grep-aptavail}# (del +paquete #{dctrl-tools}#) es tan útil que #{live-build}# proporciona un +script de ayuda llamado #{Packages}#. Este script acepta dos argumentos: +#{field}# y #{pattern}#. Por lo tanto, se puede crear una lista con los +siguientes contenidos: + +code{ + + $ lb config + $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot + +}code + +3~ Utilización de condiciones dentro de las listas de paquetes + +En las sentencias condicionales de las listas de paquetes pueden utilizarse +cualquier variable disponible en #{config/*}# (excepto las que tienen el +prefijo #{LB_}#). En general esto significa que puede utilizarse cualquier +opción válida para #{lb config}# cambiando las letras minúsculas por +mayúsculas y los guiones por barras bajas. En la práctica solamente tiene +sentido utilizar aquellas variables relacionadas con la selección de +paquetes, como pueden ser #{DISTRIBUTION}#, #{ARCHITECTURES}# o +#{ARCHIVE_AREAS}#. + +Por ejemplo, para instalar el paquete #{ia32-libs}# si se ha especificado la +arquitectura amd64 (#{--architectures amd64}#) se puede utilizar: + +code{ + + #if ARCHITECTURES amd64 + ia32-libs + #endif + +}code + +En la expresión condicional pueden utilizarse varios valores. Por ejemplo +para instalar el paquete /{memtest86+}/ si la arquitectura es i386 +(#{--architectures i386}#) o es amd64 (#{--architectures amd64}#) se puede +especificar: + +code{ + + #if ARCHITECTURES i386 amd64 + memtest86+ + #endif + +}code + +En la expresión condicional también pueden utilizarse variables que pueden +contener más de un valor. Por ejemplo para instalar /{vrms}/ si se utilizan +las áreas del archivo #{contrib}# o #{non-free}# mediante la opción +#{--archive-areas}# se puede indicar: + +code{ + + #if ARCHIVE_AREAS contrib non-free + vrms + #endif + +}code + +No se permite el anidamiento de estructuras condicionales. + +% FIXME: + +3~ Eliminación paquetes durante la instalación + +Se puede crear listas de paquetes en ficheros con los sufijos +#{.list.chroot_live}# y #{.list.chroot_install}# dentro del directorio +#{config/package-lists}#. Si existe una lista «live» y una lista «install» +los paquetes de la lista #{.list.chroot_live}# se eliminan con un script +gancho después de la instalación (si el usuario utiliza el instalador). Los +paquetes de la lista #{.list.chroot_install}# estarán presentes tanto en el +sistema en vivo como en el sistema instalado. Este es un caso especial para +el instalador y puede ser útil si se tiene #{--debian-installer live}# +establecido en la configuración y se desea eliminar paquetes específicos del +sistema en vivo durante la instalación. + +3~desktop-and-language-tasks Tareas de Escritorio e Idioma + +Las tareas de escritorio y de idioma son casos especiales que necesitan un +poco de planificación y configuración extra. Si el medio de instalación fue +preparado para una clase particular de entorno de escritorio, el Instalador +de Debian instalará automáticamente la tarea de entorno de escritorio +correspondiente. Para ello existen las tareas internas #{gnome-desktop}#, +#{kde-desktop}#, #{lxde-desktop}# y #{xfce-desktop}# pero ninguna de ellas +son presentadas en el menú de #{tasksel}#. De igual forma, las tareas para +idiomas tampoco son presentadas en el menú de #{tasksel}#, pero la selección +del idioma, al inicio de la instalación repercute en la selección de las +correspondientes tareas del idioma. + +Cuando se desarolla una imagen de escritorio, la imagen normalmente arranca +directamente a un escritorio de trabajo, las opciones de escritorio y de +idioma por defecto han sido elegidas en tiempo de creación, no en tiempo de +ejecución como en el caso del instalador de Debian. Eso no quiere decir que +una imagen en vivo no pueda ser creada para admitir múltiples escritorios o +varios idiomas y ofrecer al usuario una elección, pero ese no es un +comportamiento por defecto de live-build. + +Ya que no se ha previsto la instalación automática de tareas de idiomas, que +incluyen cosas tales como tipos de letra específicos de cada lengua o +paquetes de métodos de entrada, si se quiere incluirlos, es necesario +especificarlo en la configuración. Por ejemplo, una imagen de escritorio +GNOME que contenga soporte para el alemán podría incluir los siguientes +metapaquetes de tareas: + +code{ + + $ lb config + $ echo "task-gnome-desktop task-laptop" >> config/package-lists/my.list.chroot + $ echo "task-german task-german-desktop task-german-gnome-desktop" >> config/package-lists/my.list.chroot + +}code + +3~kernel-flavour-and-version Versión y tipo de kernel + +Dependiendo de la arquitectura, se incluyen por defecto en las imágenes uno +o más tipos de kernels. Se puede elegir entre diferentes tipos utilizando la +opción #{--linux-flavours}#. Cada tipo tiene el sufijo de la raíz +predeterminada #{linux-image}# para formar el nombre de cada metapaquete que +a su vez depende del paquete del kernel exacto que debe incluirse en la +imagen. + +Así, por defecto, una imagen de arquitectura #{amd64}# incluirá el +metapaquete #{linux-image-amd64}# y una imagen de arquitectura #{i386}# +incluirá el metapaquete #{linux-image-586}#. + +Cuando hay más de una versión diferente del paquete del kernel disponible en +los archivos configurados, se puede especificar el nombre de un paquete del +kernel diferente con la opción #{--linux-packages}#. Por ejemplo, suponer +que se está construyendo una image de arquitectura #{amd64}# y se quiere +añadir el archivo experimental a fin de realizar pruebas. Para que se pueda +instalar el kernel #{linux-image-3.18.0-trunk-amd64}#, se podría configurar +la imagen de la siguiente manera: + +code{ + + $ lb config --linux-packages linux-image-3.18.0-trunk + $ echo "deb http://ftp.debian.org/debian/ experimental main" > config/archives/experimental.list.chroot + +}code + +3~custom-kernels Kernels personalizados + +Se pueden crear e incluir kernels personalizados, pero hay que tener en +cuenta que live-build sólo soporta los kernels que se integran en el sistema +de gestión de paquetes de Debian y no es compatible con kernels que no esten +en paquetes #{.deb}#. + +La manera apropiada y recomendada de implementar los propios paquetes del +kernel es seguir las instrucciones del #{kernel-handbook}#. Recordar +modificar el ABI y los sufijos de los tipos del kernel e incluir los +paquetes del kernel completo en un repositorio que coincidan con los +paquetes #{linux}# y #{linux-latest}#. + +Si se opta por construir los paquetes del kernel sin los metapaquetes +adecuados, es necesario especificar una raíz #{--linux-packages}# apropiada +como se indica en {Versión y tipo de kernel}#kernel-flavour-and-version. Tal +y como se explica en {Instalar paquetes modificados o de +terceros}#installing-modified-or-third-party-packages, es mejor si se +incluyen los paquetes del kernel personalizado en un repositorio propio, +aunque las alternativas discutidas en esa sección también funcionan. + +Está más allá del alcance de este documento dar consejos sobre cómo +personalizar un kernel. Sin embargo, se debe por lo menos, asegurarse de que +la configuración cumple los siguientes requisitos mínimos: + +_* Utilizar un ramdisk inicial. + +_* Incluir el módulo de unión de sistemas de ficheros (normalmente +#{aufs}#). + +_* Incluir todos los módulos de sistemas de ficheros requeridos por la +configuración (normalmente #{squashfs}#). + +2~installing-modified-or-third-party-packages Instalar paquetes modificados +o de terceros + +Si bien está en contra de la filosofía de un sistema en vivo, en ocasiones +es necesario crear un sistema con versiones de paquetes modificados a partir +de los disponibles en el repositorio de Debian. Estos paquetes pueden +modificar características existentes o dar soporte a características +adicionales, idiomas y marcas, o eliminar elementos existentes en los +paquetes que no son de interes. De manera similar, se pueden incluir +paquetes «de terceros» para añadir funcionalidades a medida o propietarias. + +En esta sección no se describe la creación o mantenimiento de paquetes +personalizados. Puede ser interesante una lectura del método descrito por +Joachim Breitner 'How to fork privately' en +http://www.joachim-breitner.de/blog/archives/282-How-to-fork-privately.html. +La guía del nuevo desarrollador de Debian en +https://www.debian.org/doc/maint-guide/ describe la creación de paquetes a +medida. + +Existen dos formas de instalar paquetes personalizados: + +_* #{packages.chroot}# + +_* Utilizando un repositorio APT personalizado + +El método #{packages.chroot}# es el más simple para añadir paquetes +personalizados. Es muy útil para personalizaciones «rápidas» pero tiene unos +cuantos inconvenientes mientras que la utilización de un repositorio APT +personalizado es más lento de poner en marcha. + +3~ Método #{packages.chroot}# para instalar paquetes personalizados + +Para instalar paquetes personalizados solamente hay que copiar el paquete en +el directorio #{config/packages.chroot/}#. Los paquetes contenidos en este +directorio serán automáticamente instalados en el sistema en vivo durante el +proceso de creación. No es necesario especificar nada más. + +Los paquetes *{deben}* nombrarse de la forma prescrita. La forma más simple +es usar #{dpkg-name}#. + +El método #{packages.chroot}# para la instalación de paquetes personalizados +tiene desventajas: + +_* No es posible utilizar secure APT. + +_* Se deben depositar todos los paquetes apropiados en el directorio +#{config/packages.chroot/}#. + +_* No es adecuado para almacenar configuraciones en vivo en un control de +versiones. + +3~ Método de repositorio APT para instalar paquetes personalizados + +A diferencia del método #{packages.chroot}#, cuando se utiliza el método de +repositorio APT personalizado se debe asegurar que se especifica dónde se +deben buscar los paquetes a instalar. Para más información ver {Selección de +los paquetes a instalar}#choosing-packages-to-install. + +Aunque crear un repositorio APT para instalar paquetes personalizados puede +parecer un esfuerzo innecesaro, la infraestructurar puede ser fácilmente +reutilizada posteriormente para ofrecer nuevas versiones de los paquetes. + +3~ Paquetes personalizados y APT + +live-build utiliza APT para instalar todos los paquetes en el sistema en +vivo, así que hereda sus comportamientos. Un punto a resaltar es que +(asumiendo una configuración de APT por defecto) dado un paquete en dos +repositorios diferentes con diferentes números de versiones, APT +seleccionará para instalar el paquete con número de versión superior. + +Esta sería una buena razón para incrementar el número de version en los +ficheros #{debian/changelog}# de los paquetes personalizados y así asegurar +que serán estos los paquetes instalados en lugar de los contenidos en los +repositorios oficiales de Debian. Esto puede también lograrse alterando las +preferencias de pinning de APT del sistema en vivo. Para más información ver +{APT pinning}#apt-pinning. + +2~ Configurar APT en la creación + +Se puede configurar APT mediante varias opciones que se aplicarán en el +momento de crear la imagen. (La configuración que APT utilizará cuando se +ejecute el sistema en vivo puede ser configurada de la manera que +habitualmente se utiliza para introducir contenidos del sistema en vivo, +esto es, incluyendo las configuraciones apropiadas en el directorio +#{config/includes.chroot/}#.) Se puede encontrar una lista completa de las +opciones para configurar APT en la página de manual de #{lb_config}#. Son +aquellas opciones que comienzan con #{apt}#. + +3~choosing-apt-or-aptitude Utilizar apt o aptitude + +Se puede seleccionar qué herramienta se utilizará para instalar paquetes, +/{apt}/ o /{aptitude}/, en el momento de crear la imagen mediante la opción +#{--apt}# de #{lb config}#. Esta selección definirá el comportamiento +preferido en la instalación de paquetes, siendo la mayor diferencia la +manera de tratar los paquetes no disponibles. + +_* #{apt}#: Con este método, si se especifica un paquete no existente, la +instalación fallará. Es el comportamiento por defecto. + +_* #{aptitude}#: Con este método, si se especifica un paquete no existente, +la instalación continuará sin error. + +3~ Utilización de un proxy con APT + +Un problema habitual en la configuración de APT es tratar con la creación de +una imagen desde detras de un proxy. Se puede especificar dicho proxy con +las opciones #{--apt-ftp-proxy}# o #{--apt-http-proxy}#. Por ejemplo: + +code{ + + $ lb config --apt-http-proxy http://proxy/ + +}code + +3~tweaking-apt-to-save-space Ajuste de APT para ahorrar espacio + +En ocasiones es necesario ahorrar un poco de espacio en el medio de +instalación. Las dos opciones descritas a continuación pueden ser de +interes. + +Si no se desea incluir los índices de APT en la imagen creada se puede +utilizar la siguiente opción: + +code{ + + $ lb config --apt-indices false + +}code + +Esto no modificará el comportamiento de las entradas definidas en +#{/etc/apt/sources.list}#, sino que solo afecta a si exitirán o no ficheros +de índice en el directorio #{/var/lib/apt}#. El compromiso viene de que APT +necesita estos ficheros índices para funcionar en el sistema en vivo, así +que, si no existen, el usuario deberá ejecutar la orden #{apt-get update}# +para crear estos índices antes de poder ejecutar una orden del tipo +#{apt-cache search}# o #{apt-get install}#. + +Si la instalación de los paquetes recomendados aumenta demasiado el tamaño +de la imagen, siempre y cuando se esté preparado para hacer frente a las +consecuencias que se mencionan a continuación, se puede desactivar el valor +por defecto de esta opción de APT con: + +code{ + + $ lb config --apt-recommends false + +}code + +La consecuencia más importante de desactivar los «recommends» es que +#{live-boot}# y #{live-config}# recomiendan algunos paquetes que +proporcionan una funcionalidad importante y que son utilizados por la +mayoría de las configuraciones en vivo, como por ejemplo #{user-setup}# +recomendado por #{live-config}# que se utiliza para crear el usuario en +vivo. En todas menos en las circunstancias más excepcionales es necesario +volver a añadir por lo menos algunos de los «recommends» en las listas de +paquetes o de lo contrario la imagen no funcionará como se espera, si es que +funciona en lo más minimo. Mirar los paquetes recomendados por cada uno de +los paquetes #{live-*}# incluidos en la construcción y si no se está seguro +de que es lo que se puede omitir, volver a agregarlo utilizando las listas +de paquetes. + +La consecuencia más general es que, si no se instalan los paquetes +recomendados para un paquete dado, esto es «los paquetes que supuestamente +deberían encontrase intalados si un paquete ya lo está» (Debian Policy +Manual, seccion 7.2), algún paquete que supuestamente debería estar +instalado será omitido. Por lo tanto, se sugiere que si se desactiva esta +opción, se revise las diferencias en las listas de paquetes instalados (ver +el fichero #{binary.packages}# generado por #{lb build}#) y que se vuelva a +incluir en la lista cualquier paquete que deba ser instalado. Si se +considera que el número de paquetes a descartar es pequeño, se recomienda +que la opción se deje activada y que se utilice una prioridad pin negativa +de APT en dichos paquetes y así evitar que sean instalados tal y como se +explica en {APT pinning}#apt-pinning. + +3~ Pasar opciones a apt o a aptitude + +Si no hay una opción #{lb config}# para modificar el comportamiento de APT +en la forma que se necesita, utilizar #{--apt-options}# o +#{--aptitude-options}# para pasar opciones a la herramienta APT +configurada. Consultar las páginas de manual #{apt}# y #{aptitude}# para más +detalles. Tener en cuenta que ambas opciones tienen valores por defecto que +tendran que mantenerse, además de las opciones que se pueden +especificar. Así, por ejemplo, supongamos que se ha incluido algo con fines +de prueba de #{snapshot.debian.org}# y se desea especificar +#{Acquire::Check-Valid-Until=false}# para que APT esté feliz con el fichero +#{Release}# caducado, se haría como en el ejemplo siguiente, añadiendo la +opción de nuevo después del valor por defecto #{--yes}#: + +code{ + + $ lb config --apt-options "--yes -oAcquire::Check-Valid-Until=false" + +}code + +Consultar las páginas de manual para entender completamente estas opciones y +cuándo utilizarlas. Esto es sólo un ejemplo y no debe ser interpretado como +consejo para configurar la imagen. Esta opción no sería apropiada para, por +ejemplo, una versión final de una imagen en vivo. + +Para configuraciones más complicadas que implican opciones #{apt.conf}# +puede ser necesario crear un fichero #{config/apt/apt.conf}#. Ver tambien +las otras opciones #{apt-*}# para tener algunos atajos convenientes para las +opciones que se necesitan con frecuencia. + +3~apt-pinning APT pinning + +Como información básica, sería recomendable leer la página de manual +#{apt_preferences(5)}#. APT pinning puede ser configurado o en tiempo de +creación de la imagen, creando los ficheros #{config/archives/*.pref}#, +#{config/archives/*.pref.chroot}#, y #{config/apt/preferences}#. o en tiempo +de ejecución del sistema en vivo creando el fichero +#{config/includes.chroot/etc/apt/preferences}#. + +Supongamos que se está creando un sistema en vivo basado en ${testing} pero +se necesita instalar todos los paquetes "live" que terminan instalados en la +imagen binaria final desde la versión inestable «sid» en el momento de crear +la imagen. Se deberá añadir sid a los orígenes (sources) de APT y fijar +(pin) los paquetes live con una prioridad más alta pero todos los otros +paquetes con una prioridad más baja que la prioridad por defecto de manera +que solamente los paquetes fijados sean instalados desde sid mientras que el +resto será obtenido desde la distribución base, ${testing}. Esto se puede +realizar de la siguiente forma: + +code{ + + $ echo "deb http://mirror/debian/ sid main" > config/archives/sid.list.chroot + $ cat >> config/archives/sid.pref.chroot << EOF + Package: live-* + Pin: release n=sid + Pin-Priority: 600 + + Package: * + Pin: release n=sid + Pin-Priority: 1 + EOF + +}code + +Una prioridad pin negativa previene la instalación de un paquete, como puede +ser el caso de que no se desee que un paquete recomendado por otro sea +instalado al instalar el primero. Supongamos que se está creando una imagen +LXDE añadiendo #{task-lxde-desktop}# en +#{config/package-lists/desktop.list.chroot}#, pero no se desea preguntar al +usuario si desea almacenar las claves wifi en el keyring. Este metapaquete +depende de /{lxde-core}/, el cual recomienda /{gksu}/ que a su vez +recomienda /{gnome-keyring}/. Así que el objetivo es omitir la instalación +del paquete /{gnome-keyring}/, que puede conseguirse añadiendo un fichero +con el siguiente contenido a #{config/apt/preferences}#: + +code{ + + Package: gnome-keyring + Pin: version * + Pin-Priority: -1 + +}code |