B.5. Opcions avançades

B.5.1. Execució d'ordres personalitzades a la instal·lació

Una opció molt potent i flexible oferta per les eines de preconfiguració és la possibilitat d'executar ordres o guions en alguns punts de la instal·lació.

# Necessàriament, la configuració prèvia de l'instal·lador del Debian no pot
# ser segura. No hi ha res que comprove els intents de sobreeiximent de
# memòria intermèdia o d'altres abusos sobre els valors d'un fitxer de
# configuració prèvia com el present. Feu servir només aquests fitxers si
# provenen de llocs de confiança! Per raons de control, i perquè és útil
# en general, aquí teniu una manera d'executar de forma automàtica
# qualsevol ordre de l'interpret que vulgueu dins l'instal·lador.

# Aquesta primera ordre s'executa tan prompte com es pot, tot just després
# de llegir el fitxer de configuració prèvia.
#d-i preseed/early_command string anna-install some-udeb
# Aquesta ordre s'executa just abans d'iniciar l'eina de particionat.
# Pot ser útil per a aplicar dinàmicament una configuració prèvia de l'eina
# que depenga de l'estat dels discs (que potser no estiguen encara visibles
# en executar «preseed/early_command»).
#d-i partman/early_command \
#       string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
# Aquesta s'executa just abans que finalitzi la instal·lació, però
# quan encara es pot usar un directori de destí /target. Podeu fer chroot
# sobre /target i usar-lo directament, o fer servir les ordres apt-install
# i in-target per instal·lar paquets fàcilment i executar ordres al
# sistema de destinació.
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh

B.5.2. Ús de la configuració prèvia per canviar els valors predeterminats

És pot utilitzar la configuració prèvia per canviar la resposta predeterminada a una pregunta, però que encara es faci la pregunta. Per fer açò l'indicador seen s'ha de posar a “false” després de donar-li el valor a una pregunta.

d-i foo/bar string value
d-i foo/bar seen false

Podeu assolir el mateix efecte per a totes les preguntes si establiu el paràmetre preseed/interactive=true a l'indicador d'arrencada. També pot ser útil per provar o depurar el vostre fitxer de preconfiguració.

Adoneu-vos que el propietari “d-i” només s'ha d'emprar per a variables a usar pel propi instal·lador. Per a variables corresponents als paquets instal·lats al sistema de destinació cal que empreu el nom del paquet. Vegeu la nota al peu de Secció B.2.2, “Utilització dels paràmetres d'arrencada per complementar la configuració prèvia”.

Si esteu preconfigurant mitjançant els paràmetres d'arrencada, podeu fer que l'instal·lador pregunti una qüestió en concret utilitzant l'operador “?=”, p.ex. foo/bar?=valor (o propietari:foo/bar?=valor). Tingueu en compte que això només afectarà els paràmetres corresponents a les preguntes que realment es mostren durant el procés d'instal·lació, i no als paràmetres “interns”.

B.5.3. Càrrega en cadena de fitxers de configuració prèvia

En un fitxer de configuració prèvia se'n poden incloure d'altres. Qualsevol paràmetre d'aquests fitxers prevaldrà sobre els dels fitxers carregats primer. Això fa possible, per exemple, indicar la configuració general de la xarxa a un fitxer i els paràmetres més específics a altres.

# Es pot incloure més d'un fitxer, separat per espais; es carregaran tots.
# Els fitxers inclosos poden tenir directrius de configuració prèvia pròpies
# o bé incloure fitxers amb d'altres. Tingueu en compte que si els noms de
# fitxer són relatius, s'agafen del mateix directori que el del fitxer que
# els inclou.
#d-i preseed/include string x.cfg

# L'instal·lador pot comprovar sumes de verificació de fitxers de configuració
# prèvia abans de fer-los servir. Actualment sols es pot poden emprar md5sums.
# Indiqueu els md5sums en el mateix ordre que la llista de fitxers que s'ha
# d'incloure.
#d-i preseed/include/checksum string 5da499872becccfeda2c4872f9171c3d

# Més flexible que això és el següent, que executa una ordre a l'intepret i,
# si s'obté cap nom d'un fitxer de configuració prèvia, s'hi inclou.
#d-i preseed/include_command \
#      string if [ "`hostname`" = bob ]; then echo bob.cfg; fi

# El més flexible de tots, açò descarrega un programa i l'executa.
# El programa pot utilitzar ordres com debconf-set per manipular la base
# de dades debconf. Es pot llistar més d'un guió, separat per espais.
# Adoneu-vos que els noms de fitxers són relatius, s'agafen
# del mateix directori que el fitxer de preconfiguració que els executa.
#d-i preseed/run string foo.sh

És possible l'encadenament des de l'initrd o de la fase de configuració prèvia amb fitxer, a una configuració prèvia en xarxa donant el valor a preseed/url en els fitxers anteriors. Açò farà que la configuració prèvia de la xarxa es realitze quan la xarxa s'aixeque. Necessiteu anar en compte quan ho feu, ja que hi ha dos formes diferents de fer la configuració prèvia, que vol dir per exemple que tindreu l'oportunitat d'executar l'ordre preseed/early, la segona que es du a terme després d'aixecar la xarxa.