Debian Live Manual Debian Live Project <debian-live@lists.debian.org>

Rights: Copyright: Copyright (C) 2006-2015 Live Systems Project, Copyright (C) 2016-2026 The Debian Live team
License: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-3 file.

# Debian Live Manual

# Sobre aquest manual

#### 1. Sobre aquest manual

##### 1.1 Per als impacients

##### 1.2 Termes

##### 1.3 Autors

##### 1.4 Contribuir a aquest document

###### 1.4.1 Aplicar canvis

###### 1.4.2 Traducció

# Sobre el Debian Live Project

#### 2. Sobre el Debian Live Project

##### 2.1 Motivació

###### 2.1.1 Què passa amb els sistemes vius actuals

###### 2.1.2 Per què crear el nostre pròpi sistema viu?

##### 2.2 Filosofia

###### 2.2.1 Only unchanged packages from Debian "main" and "non-free-firmware"

###### 2.2.2 Paquets del sistema viu sense cap configuració

##### 2.3 Contacte

# Usuari

# Instal·lació

#### 3. Instal·lació

##### 3.1 Requisits

##### 3.2 Instal·lació de live-build

###### 3.2.1 Des del repositori de Debian

###### 3.2.2 A partir del codi font

##### 3.3 Instal.lació de live-boot i live-config

###### 3.3.1 Des del repositori de Debian

###### 3.3.2 A partir del codi font

# Conceptes bàsics

#### 4. Conceptes bàsics

##### 4.1 Què és un sistema viu?

##### 4.2 Descàrrega d'imatges prefabricades

##### 4.3 Primers passos: construcció d'una imatge ISO híbrida

##### 4.4 Usar una imatge ISO híbrida en viu

###### 4.4.1 Gravar una imatge ISO en un medi físic

###### 4.4.2 Copiar una imatge ISO híbrida en un dispositiu USB

###### 4.4.3 Utilitzar l'espai lliure en una memòria USB

###### 4.4.4 Arrencar el medi en viu

##### 4.5 Utilitzar una màquina virtual per a fer proves

###### 4.5.1 Provar una imatge ISO amb QEMU

###### 4.5.2 Provar una imatge ISO amb VirtualBox

##### 4.6 Construir i utilitzar una imatge HDD

##### 4.7 Construir una imatge netboot

###### 4.7.1 Servidor DHCP

###### 4.7.2 Servidor TFTP

###### 4.7.3 Servidor NFS

###### 4.7.4 Com provar l'arrencada en xarxa

###### 4.7.5 Qemu

##### 4.8 Webbooting

###### 4.8.1 Obtenir els fitxers webboot

###### 4.8.2 Arrencar imatges webboot

# Descripció general de les eines

#### 5. Descripció general de les eines

##### 5.1 El paquet live-build

###### 5.1.1 L'ordre `lb config`

###### 5.1.2 L'ordre `lb build`

###### 5.1.3 L'ordre `lb clean`

##### 5.2 El paquet live-boot

##### 5.3 El paquet live-config

# Gestió d'una configuració

#### 6. Gestió d'una configuració

##### 6.1 Gestionar canvis en la configuració

###### 6.1.1 Per què utilitzar scripts auto? Què fan?

###### 6.1.2 Utilitzar scripts auto d'exemple

##### 6.2 Clonar una configuració publicada via Git

# Personalització dels continguts

#### 7. Visió general de la personalització

##### 7.1 Configuració durant la construcció vs. durant l'arrencada

##### 7.2 Etapes de la construcció

##### 7.3 Suplementar lb config amb fitxers

##### 7.4 Tasques de personalització

# Personalització de la instal·lació de paquets

#### 8. Personalització de la instal·lació de paquets

##### 8.1 Fonts dels paquets

###### 8.1.1 Distribució, àrees d'arxiu i mode

###### 8.1.2 Miralls de distribució

###### 8.1.3 Miralls de distribució utilitzats en temps de construcció

###### 8.1.4 Miralls de distribució utilitzats en temps d'execució

###### 8.1.5 Repositoris addicionals

##### 8.2 Selecció dels paquets a instal·lar

###### 8.2.1 Llistes de paquets

###### 8.2.2 Ús dels metapaquets

###### 8.2.3 Llistes locals de paquets

###### 8.2.4 Llistes locals de paquets per a l'etapa binary

###### 8.2.5 Generar llistes de paquets

###### 8.2.6 Ús de condicionals dins de les llistes de paquets

###### 8.2.7 Eliminar paquets durant la instal·lació

###### 8.2.8 Summary

###### 8.2.9 Tasques d'escriptori i llenguatge

###### 8.2.10 Tipus i versió del nucli

###### 8.2.11 Nuclis personalitzats

##### 8.3 Instal·lació de paquets modificats o de tercers

###### 8.3.1 Fer servir `packages.chroot` per a instaŀar paquets personalitzats

###### 8.3.2 Fer servir un repositori APT per a instal·lar paquets personalitzats

###### 8.3.3 Paquets personalitzats i APT

##### 8.4 Configurar APT en temps de construcció

###### 8.4.1 Elegir apt o aptitude

###### 8.4.2 L'ús d'un proxy amb APT

###### 8.4.3 Afinar APT per a estalviar espai

###### 8.4.4 Passar opcions per a apt o aptitude

###### 8.4.5 APT pinning

# Personalització dels continguts

#### 9. Personalització dels continguts

##### 9.1 Includes

###### 9.1.1 Live/chroot local includes

###### 9.1.2 Binary local includes

##### 9.2 Scripts ganxo (Hooks)

###### 9.2.1 Chroot local hooks

###### 9.2.2 Binary local hooks

###### 9.2.3 Scripts ganxo en temps d'arrencada

##### 9.3 Preconfiguració de les preguntes de Debconf

# Personalització dels comportaments en temps d'execució

#### 10. Personalització dels comportaments en temps d'execució

##### 10.1 Personalitzar l'usuari en viu

##### 10.2 Personalització de l'entorn local i el llenguatge

##### 10.3 Persistència

###### 10.3.1 El fitxer persistence.conf

###### 10.3.2 Utilitzar diversos medis persistents

###### 10.3.3 Persistència amb xifratge

# Personalització de la imatge binària

#### 11. Personalització de la imatge binària

##### 11.1 Carregadors d'arrencada

##### 11.2 metadades ISO

# Personalització de l'instal·lador de debian

#### 12. Personalització de l'instal·lador de debian

##### 12.1 Tipus d'instal·lador de Debian

##### 12.2 Personalització de l'instal·lador de Debian amb preconfiguració

##### 12.3 Personalitzar el contingut de l'instal·lador de Debian

# Projecte

# Contribuir al projecte

#### 13. Contribuir al projecte

##### 13.1 Traducció de pàgines dels manuals

# Informar dels errors

#### 14. Informar dels errors

##### 14.1 Problemes coneguts

##### 14.2 Fer la recerca

##### 14.3 Reconstruir des de zero

##### 14.4 Fer servir paquets actualitzats

##### 14.5 Recopilar informació

##### 14.6 Aïllar el cas que falla, si és possible

##### 14.7 Utilitzar el paquet correcte per a informar de l'error

###### 14.7.1 A l'hora de construir mentre bootstrapping

###### 14.7.2 A l'hora de construir, durant la instal·lació de paquets

###### 14.7.3 En el moment d'arrencar

###### 14.7.4 En temps d'execució

##### 14.8 On informar dels errors

# Estil de Codi

#### 15. Estil de Codi

##### 15.1 Compatibilitat

##### 15.2 Indentació

##### 15.3 Ajust de línia

##### 15.4 Variables

##### 15.5 Miscel·lània

# Exemples

#### 16. Exemples

##### 16.1 Ús dels exemples

##### 16.2 Tutorial 1: Una imatge per defecte

##### 16.3 Tutorial 2: Una utilitat de navegador web

##### 16.4 Tutorial 3: Una imatge personalitzada

###### 16.4.1 Primera revisió

###### 16.4.2 Segona revisió

##### 16.5 Un client per a un quiosc VNC

##### 16.6 A minimal image for a 512MB USB key

##### 16.7 Un escriptori GNOME localitzat i amb instal·lador

# Apèndix

# Style guide

#### 17. Guia d'estil

##### 17.1 Instruccions per als autors

###### 17.1.1 Característiques lingüístiques

###### 17.1.2 Procediments

##### 17.2 Directrius per als traductors

###### 17.2.1 Consells de traducció

1

# Debian Live Manual

2

# Sobre aquest manual

3

# Sobre aquest manual

4

#### 1. Sobre aquest manual

5

This manual serves as a single access point to all documentation related to the Debian Live Project and in particular applies to the software produced by the project for the Debian "bookworm" release. An up-to-date version can always be found at ‹https://live-team.pages.debian.net/live-manual/›

6

Si bé live-manual es centra principalment en ajudar a construir un sistema viu i no en temes dels usuaris finals, un usuari final pot trobar informació útil en aquestes seccions: Conceptes bàsics abasta la descàrrega d'imatges prefabricades i la preparació de les imatges per a ser arrencades des dels dispositius o la xarxa, ja sigui utilitzant el servei de construcció d'imatges web o executant live-build directament en el sistema. Personalització dels comportaments en temps d'execució descriu algunes de les opcions que es poden especificar durant l'arrencada del sistema, com ara la selecció de la disposició del teclat, la configuració regional i l'ús de la persistència.

7

Algunes de les ordres esmentades en el text s'han d'executar amb privilegis de superusuari que es poden obtenir esdevenint l'usuari root amb `su` o mitjançant l'ús de `sudo`. Per a distingir entre les ordres que poden ser executades per un usuari sense privilegis i aquelles que requereixen privilegis de superusuari, s'anteposa `$` o `#` respectivament. Aquest símbol no és part de l'ordre.

8

##### 1.1 Per als impacients

9

Si bé creiem que tot el que hi ha en aquest manual és important, si més no, per a alguns dels nostres usuaris, ens adonem que hi ha una gran quantitat de material per a cobrir i que és possible que es vulgui experimentar l'èxit amb el programari aviat, abans d'aprofundir en els detalls. Per tant, us recomanem llegir en el següent ordre.

10

En primer lloc, llegir aquest capítol, Sobre aquest manual, des del principi i acabant amb els Termes. A continuació, saltar als tres tutorials abans dels Exemples, secció pensada per a ensenyar com fer la construcció d'una imatge i alguns aspectes bàsics de la personalització. Llegir en primer lloc Ús dels exemples seguit pel Tutorial 1: Una imatge per defecte, Tutorial 2: Una utilitat de navegador web i finalment, Tutorial 3: Una image personalitzada. Al final d'aquests tutorials, es tindrà una idea del que es pot fer amb els sistemes en viu.

11

Us animem a tornar i a fer un estudi del manual en profunditat, la propera lectura pot ser Conceptes bàsics, fregant o saltant Construir una imatge netboot, i acabant amb la lectura de la Visió general de la personalització i els capítols que segueixen. En aquest punt, esperem que estigueu ben emocionats pel que es pot fer amb els sistemes en viu i motivats per llegir la resta del manual, de principi a fi.

12

##### 1.2 Termes

13

- Sistema viu: Un sistema operatiu que pot arrencar sense necessitat d'instal·lació en un disc dur. Els sistemes vius no alteren el sistema operatiu local(s) o els fitxer(s) ja instal·lats al disc dur de l'ordinador a menys que així se'ls ho indiqui. Els sistemes vius normalment s'inician des de dispositius, com ara CDs, DVDs o memòries USB. Alguns també poden arrencar des de la xarxa (amb les imatges netboot, veure Construir una imatge netboot), o mitjançant internet (amb el parametre `fetch=URL`, veure Webbooting).

14

- Medi en viu: A diferència de sistema en viu, el medi en viu es refereix al CD, DVD o memòria USB on es copia el fitxer binari produït per live-build i utilitzat per a arrencar el sistema en viu. Més àmpliament, el terme també es refereix a qualsevol lloc on resideix el fitxer binari als efectes d'iniciar el sistema en viu, com ara la ubicació dels fitxers per a arrencar en xarxa.

15

- Debian Live Project: El projecte que manté, entre altres, els paquets live-boot, live-build, live-config, live-tools i live-manual.

16

- Sistema amfitrió: L'entorn utilitzat per a crear el sistema en viu.

17

- Sistema objectiu: L'entorn que s'utilitza per a executar el sistema en viu.

18

- live-boot: Una col·lecció de scripts per a arrencar els sistemes vius.

19

- live-build: Una col·lecció d'scripts utilitzats per a construir sistemes en viu personalitzats.

20

- live-config: Una col·lecció de scripts utilitzats per a configurar un sistema en viu durant el procés d'arrencada.

21

- live-tools: Una col·lecció d'scripts addicionals que s'utilitzen per a realitzar tasques útils en un sistema viu en execució.

22

- live-manual: Aquest document és mantingut en un paquet anomenat live-manual

23

- Instal·lador de Debian (d-i): El sistema oficial d'instal·lació de la distribució Debian.

24

- Paràmeters d'arrencada: Els paràmetres que es poden introduir a l'indicador del carregador d'arrencada per a influir en el nucli o live-config

25

- chroot: El programa chroot, `chroot(8)`, ens permet executar diferentes instàncies d'un entorn GNU/Linux a la vegada en un sol sistema sense reiniciar.

26

- Binary image: A file containing the live system, such as live-image-amd64.hybrid.iso or live-image-amd64.img.

27

- Distribució objectiu: La distribució en què es basa el sistema en viu. Que pot diferir de la distribució del sistema amfitrió.

28

- stable/testing/unstable: La distribució stable, actualment anomenada bookworm, conté l'última distribució de Debian llençada oficialment. La distribució testing, temporalment anomenada trixie, és l'àrea d'assaig per a la pròxima versió stable. Un avantatge important de l'ús d'aquesta distribució és que té versions més recents del programari en relació amb l'edició stable. La distribució unstable, permanentment anomenada sid, és on es produeix el desenvolupament actiu de Debian. En general, aquesta distribució és utilitzada pels desenvolupadors i els que els agrada viure en risc. Al llarg del manual, es tendeix a utilitzar els seus noms en clau, com ara trixie o sid, ja que és el que fan servir les pròpies eines.

29

##### 1.3 Autors

30

Llistat d'autors (en ordre alfabètic)

31

- Ben Armstrong

32

- Brendan Sleight

33

- Carlos Zuferri

34

- Chris Lamb

35

- Daniel Baumann

36

- Franklin Piat

37

- Jonas Stein

38

- Kai Hendry

39

- Marco Amadori

40

- Mathieu Geli

41

- Matthias Kirschner

42

- Richard Nelson

43

- Roland Clobus

44

- Trent W. Buck

45

##### 1.4 Contribuir a aquest document

46

Aquest manual està pensat com un projecte comunitari i totes les propostes per a millorar-lo i les contribucions són molt benvingudes. Veure la secció Contribuir al projecte per a obtenir informació detallada sobre com obtenir la clau i fer bons commits.

47

###### 1.4.1 Aplicar canvis

48

Per tal de realitzar canvis en el manual anglès s'ha d'editar els fitxers adequats a `manual/en/` però abans de presentar una contribució, s'ha de previsualitzar el treball. Per a previsualitzar el live-manual, assegurar-se que s'han instal·lat els paquets necessaris per a la seva construcció mitjançant l'execució de:

49

# apt-get install make po4a ruby ruby-nokogiri sisu-complete

50

Es pot crear el live-manual des del directori de nivell superior del arbre Git mitjançant l'execució de:

51

$ make build

52

Tenint en compte que es necessita un cert temps per construir el manual en tots els idiomes suportats, els autors poden utilitzar un dels mètodes abreujats per fer revisions ràpides de la nova documentació que han afegit al manual en anglès. Amb `PROOF=1` es construeix live-manual en format html, però sense els fitxers html segmentats, i amb `PROOF=2` es construeix live-manual en format pdf, però només el retrat A4 i carta. És per això que amb l'ús de qualsevol de les possibilitats `PROOF=` es pot estalviar una quantitat considerable de temps, per exemple:

53

$ make build PROOF=1

54

Quan es revisa una de les traduccions, és possible construir un sol idioma mitjançant l'execució de, per exemple:

55

$ make build LANGUAGES=de

56

També es possible crear per tipus de document, per exemple:

57

$ make build FORMATS=pdf

58

O combinar tot dos, per exemple:

59

$ make build LANGUAGES=de FORMATS=html

60

Després de revisar el treball i assegurar-se que tot està bé, no fer un `make commit` a menys que s'actualitzin les traduccions al mateix temps, i en aquest cas, no barrejar els canvis al manual anglès i les traduccions en el mateix commit, fer-ne un altre separat per a cada canvi. Veure la secció Traducció per a més detalls.

61

###### 1.4.2 Traducció

62

Nota: Per traduir les pàgines dels manuals, veure Traducció de pàgines dels manuals

63

Per a traduir live-manual, seguir aquests passos, depenent de si s'està començant una traducció des de zero o si es segueix treballant en una ja existent:

64

- Començar una nova traducció des de zero

65

- Traduir els fitxers about_manual.ssi.pot, about_project.ssi.pot i index.html.in.pot de `manual/pot/` a la vostra llengua amb el vostre editor favorit (per exemple poedit) . Enviar els fitxers `.po` traduïts a la llista de correu per comprovar la seva integritat. La comprovació d'integritat de live-manual garanteix que els fitxers `.po` són traduïts al 100% però també detecta possibles errors.

66

- Once checked, to enable a new language in the autobuild it is enough to add the initial translated files to `manual/po/${LANGUAGE}/` and edit `manual/_sisu/home/index.html` adding the name of the language and its name in English between brackets. And then, add the folder `manual/${LANGUAGE}/` to the file `.gitignore`. Finally, run `make commit`.

67

- Continuar amb una traducció ja començada

68

- Una vegada que s'ha afegit la nova llengua, es pot continuar traduint la resta de fitxers .po dins de `manual/po/${LANGUAGE}/` a l'atzar amb l'editor favorit (com per exemple poedit) .

69

- No oblidar que es necessari fer un `make commit` per a garantir que els manuals traduïts s'actualitzin a partir dels fitxers .po i llavors es poden revisar els canvis executant `make build` abans de `git add .`, `git commit -m "Translating..."` i `git push`. Recordar que `make build` pot trigar una quantitat considerable de temps, però es poden revisar els idiomes de forma individual com s'explica a la secció Aplicar canvis

70

Després d'executar `make commit` es podrà veure bastant text a la pantalla. Bàsicament són missatges informatius sobre l'estat del procés i també algunes pistes sobre el que es pot fer per a millorar live-manual. Si no es veu cap error fatal, generalment es pot procedir i enviar la contribució.

71

live-manual ve amb dues utilitats que poden ser de gran ajuda pels traductors a l'hora de trobar missatges sense traduir i difusos. La primera és "make translate". Aquesta activa un script que diu en detall quants missatges sense traduir hi ha a cada fitxer .po. La segona, "make fixfuzzy", només actua sobre els missatges difusos però ajuda a trobar-los i corregir-los un per un.

72

Tenir en compte que tot i que aquestes utilitats poden ser molt útils per a fer traduccions en la línia d'ordres, l'ús d'una eina especialitzada com poedit és la manera recomanada de fer la tasca. També és una bona idea llegir la documentació de localització de debian (l10n) i, específicament dins live-manual, les Directrius per a traductors.

73

Nota: Es pot utilitzar `make clean` per a netejar l'arbre git abans de fer un push. Aquest pas no és obligatori, gràcies al fitxer .gitignore, però és una bona pràctica per a evitar enviar fitxers de forma involuntària.

74

# Sobre el Debian Live Project

75

#### 2. Sobre el Debian Live Project

76

##### 2.1 Motivació

77

###### 2.1.1 Què passa amb els sistemes vius actuals

78

When Debian Live Project was initiated (around 2006), there were already several Debian based live systems available and they are doing a great job. From the Debian perspective most of them have one or more of the following disadvantages:

79

- No són projectes de Debian i per tant no tenen suport des de Debian.

80

- Es barregen diferents distribucions, per exemple testing i unstable.

81

- Només donen suport a i386.

82

- Es modifique el comportament i/o l'aparença dels paquets, per a estalviar espai.

83

- S'inclouen paquets de fora de l'arxiu de Debian.

84

- Inclouen nuclis personalitzats amb pedaços addicionals que no són part de Debian.

85

- Són grans i lents a causa de la seva mida i per tant no aptes com a sistemes de rescat.

86

- No estan disponibles en diferents formats, per exemple, CD, DVD, memòries USB i imatges netboot.

87

###### 2.1.2 Per què crear el nostre pròpi sistema viu?

88

Debian és el sistema operatiu universal: Debian té un sistema viu per a mostrar arreu i per a representar acuradament el sistema Debian amb els següents avantatges:

89

- Es tracta d'un subprojecte de Debian.

90

- Reflecteix l'estat (actual) d'una distribució.

91

- Funciona en tantes arquitectures com és possible.

92

- Es tracta només de paquets Debian sense modificacions.

93

- No conté paquets que no són a l'arxiu de Debian.

94

- S'utilitza un nucli Debian sense alteracions i sense pedaços addicionals.

95

##### 2.2 Filosofia

96

###### 2.2.1 Only unchanged packages from Debian "main" and "non-free-firmware"

97

Només farem servir els paquets del repositori de Debian de la secció "main". La secció non-free no és part de Debian i per tant no es pot utilitzar per a les imatges oficials del sistema viu.

98

Starting with Debian 12 bookworm we added the "non-free-firmware" section for better support of modern hardware.

99

No canviarem cap paquet. Cada vegada que hàgim de canviar alguna cosa, ho farem en coordinació amb el mantenidor del paquet a Debian.

100

Com a excepció, els nostres propis paquets, com ara live-boot, live-build o live-config poden ser utilitzats temporalment des del nostre propi repositori per raons de desenvolupament (per exemple, per a crear instantànies de desenvolupament). Aquests paquets es pujaran a Debian de forma regular.

101

###### 2.2.2 Paquets del sistema viu sense cap configuració

102

En aquesta fase no es publicarà o s'instal·larà cap configuració alternativa o d'exemple. Tots els paquets són utilitzats en la seva configuració per defecte, tal com són després d'una instal·lació normal de Debian.

103

Cada vegada que ens calgui una configuració per defecte diferent, ho farem en coordinació amb el mantenidor del paquet Debian.

104

S'hi inclou un sistema per a configurar paquets mitjançant debconf que permet instal·lar paquets configurats de forma personalitzada dins d'una imatge en viu, però per a les imatges en viu prefabricades només utilitzarem una configuració per defecte, a menys que sigui absolutament necessari per a poder treballar en l'entorn en viu. Sempre que sigui possible, preferim adaptar els paquets a l'arxiu de Debian perquè funcionin en un sistema en viu abans que realitzar canvis en la cadena d'eines en viu o en les configuracions de les imatges prefabricades. per a obtenir més informació, veure Visió general de la personalització.

105

##### 2.3 Contacte

106

- Mailing list: The primary contact for the project is the mailing list at ‹https://lists.debian.org/debian-live/›. You can email the list directly by addressing your mail to ‹debian-live@lists.debian.org›​. The list archives are available at ‹https://lists.debian.org/debian-live/›.

107

- IRC: Un nombre d'usuaris i desenvolupadors estan presents al canal #debian-live a irc.debian.org (OFTC). Quan es pregunta al IRC, s'ha de tenir paciència esperant una resposta, si no hi ha cap resposta, es pot enviar un correu a la llista.

108

- BTS : El Sistema de seguiment d'errors de Debian (BTS) conté detalls d'errors notificats per usuaris i desenvolupadors. A cada error se li assigna un número i es manté a l'arxiu fins que es marca com tractat. Per a obtenir més informació, vegeu Informar dels errors.

109

# Usuari

110

# Instal·lació

111

#### 3. Instal·lació

112

##### 3.1 Requisits

113

Building live system images has very few system requirements for the host system:

114

- Accés de superusuari (root)

115

- Una versió actualitzada de live-build

116

- Una shell compatible amb POSIX, com ara bash o dash

117

- debootstrap

118

- Linux 2.6 or newer

119

- A mount point with dev and exec rights.

120

# mount <your_mount_point> -odev,exec,remount

121

Tenir en compte que no cal usar Debian o una distribució derivada de Debian ja que live-build funcionarà en gairebé qualsevol distribució amb els requisits anteriors.

122

##### 3.2 Instal·lació de live-build

123

Es pot instal·lar live-build en un nombre de maneres diferentes:

124

- Des del repositori Debian

125

- A partir del codi font

126

- A partir d'instantànies

127

Si s'utilitza Debian, la manera recomanada és instal·lar live-build des del repositori de Debian.

128

###### 3.2.1 Des del repositori de Debian

129

Només cal instal·lar live-build com qualsevol altre paquet:

130

# apt-get install live-build

131

###### 3.2.2 A partir del codi font

132

live-build es desenvolupa utilitzant el sistema de control de versions Git. En els sistemes basats en Debian, això és proporcionat pel paquet git. Per a comprovar l'últim codi, executar:

133

$ git clone https://salsa.debian.org/live-team/live-build.git

134

Es pot construir i instal·lar un paquet Debian pròpi mitjançant l'execució de:

135

$ cd live-build
$ dpkg-buildpackage -b -uc -us
$ cd ..

136

Ara instal·lar qualsevol dels fitxers `.deb` recent construïts que ens interessen, per exemple,

137

# dpkg -i live-build_4.0-1_all.deb

138

Es pot instal·lar live-build directament al sistema mitjançant l'execució de:

139

# make install

140

i desinstal·lar amb:

141

# make uninstall

142

##### 3.3 Instal.lació de live-boot i live-config

143

Nota: No cal instal·lar live-boot o live-config en el sistema per a crear sistemes personalitzats en viu. No obstant, això no farà cap mal i és útil per a fins de referència. Si només es vol la documentació, ara es poden instal·lar els paquets live-boot-doc i live-config-doc per separat.

144

###### 3.3.1 Des del repositori de Debian

145

Tots dos, live-boot i live-config, estan disponibles al arxiu de Debian, d'una manera similar a Instal·lació de live-build.

146

###### 3.3.2 A partir del codi font

147

Per a utilitzar les darreres fonts del git, es pot seguir el procés seguent. Assegurar-se d'estar familiaritzat amb els termes esmentats a Termes.

148

- Clonar les fonts de live-boot i live-config

149

$ git clone https://salsa.debian.org/live-team/live-boot.git
$ git clone https://salsa.debian.org/live-team/live-config.git

150

Consultar les pàgines del manual de live-boot i live-config per a més detalls sobre la seva personalització si aquesta és la raó per a construir aquests paquets a partir de les fonts.

151

- Crear els fitxers .deb de live-boot i live-config

152

S'ha de crear ja sigui en la distribució de destinació o en un chroot que contingui la plataforma de destinació: és a dir, si el objectiu és trixie llavors s'ha de construir contra trixie.

153

Es pot utilitzar un constructor personal, com ara pbuilder o sbuild si es necessita crear live-boot per a una distribució de destinació diferenta del sistema de construcció. Per exemple, per a les imatges en viu de trixie, crear live-boot en un chroot trixie. Si la distribució de destinació per casualitat coincideix amb la distribució del sistema de construcció, es pot construir directament en el sistema de construcció amb `dpkg-buildpackage` (proporcionat pel paquet dpkg-dev) :

154

$ cd live-boot
$ dpkg-buildpackage -b -uc -us
$ cd ../live-config
$ dpkg-buildpackage -b -uc -us

155

- Utilitzar tots el fitxers .deb generats que calguin

156

Com live-boot i live-config són instal·lats per el sistema de construcció live-build, instal·lar els paquets en el sistema amfitrió no és suficient: s'ha de tractar els .deb generats com si fossin uns paquets personalitzats. Ja que el propòsit per a construir aquests paquets a partir del codi font és per a provar coses noves a curt termini abans del llançament oficial, seguir els pasos de Instal·lació de paquets modificats o de tercers per a incloure temporalment els paquets rellevants en la configuració. En particular, cal observar que ambdós paquets es divideixen en una part genèrica, una part de documentació i un o més back-ends. Incloure la part genèrica, només un dels back-ends que coincideixi amb la configuració, i, opcionalment, la documentació. Suposant que s'està construint una imatge en viu en el directori actual i que s'han generat tots els .deb per a una única versió dels dos paquets al directori superior, aquestes ordres de bash són per a copiar tots els paquets importants, incloent-hi els back-ends per defecte:

157

$ cp ../live-boot{_,-initramfs-tools,-doc}*.deb config/packages.chroot/
$ cp ../live-config{_,-sysvinit,-doc}*.deb config/packages.chroot/

158

# Conceptes bàsics

159

#### 4. Conceptes bàsics

160

Aquest capítol conté una breu descripció del procés de construcció i les instruccions per a l'utilització dels tres tipus d'imatge més comunes. El tipus d'imatge més versàtil `iso-hybrid` es pot utilitzar en una màquina virtual, en un medi òptic o qualsevol altre dispositiu d'emmagatzematge USB. En certs casos especials, com s'explica més endavant, el tipus `hdd` pot ser el més adequat. El capítol conté instruccions detallades per a la construcció d'una imatge tipus `netboot`, que és una mica més complicat a causa de la configuració necessària en el servidor. Aquest és un tema una mica avançat per a algú que no està familiaritzat ja amb l'arrencada en xarxa, però s'inclou aquí perquè un cop que la configuració es porta a terme, es tracta d'una manera molt convenient per a provar i desplegar imatges per a l'arrencada en xarxa local sense la molèstia de tractar amb els dispositius de les imatges.

161

La secció acaba amb una breu introducció al webbooting que és, potser, la forma més fàcil d'utilitzar imatges diferents per a diferents propòsits, canviant d'una a l'altra segons sigui necessari, utilitzant internet com un mitjà.

162

Al llarg del capítol, sovint es fa referència als noms dels fitxers produïts per defecte per live-build. Si es descarrega una imatge prefabricada, els noms dels fitxers poden ser direrents.

163

##### 4.1 Què és un sistema viu?

164

Un sistema viu és un sistema operatiu que arrenca en un equip des d'un dispositiu extraïble, com un CD-ROM o una memòria USB o des d'una xarxa, a punt per a fer servir sense cap tipus d'instal·lació en la unitat(s) habitual(s), amb una configuració automàtica feta en temps d'execució (veure Termes).

165

With live systems, it's an operating system, built for one of the supported architectures (currently amd64 and arm64). It is made from the following parts:

166

- Imatge del nucli Linux, generalment s'anomena `vmlinuz*`

167

- Imatge del disc RAM inicial (initrd): un disc RAM configurat per a l'arrencada de Linux, que conté els mòduls que possiblement es necessitaran per a muntar la imatge del sistema i algunes seqüències d'ordres per a fer-ho.

168

- Imatge del sistema: Imatge del sistema de fitxers del sistema operatiu. Normalment, s'utilitza un sistema de fitxers comprimit SquashFS per a minimitzar la mida de la imatge. Tenir en compte que és de només lectura. Així, durant l'arrencada, el sistema Debian Live utilitzarà el disc RAM i un mecanisme de "unió" per a permetre l'escriptura de fitxers en el sistema en funcionament. No obstant això, totes les modificacions es perdran al apagar l'equip si no és que s'utilitza la persistència opcional (vegeu Persistència).

169

- Carregador d'arrencada : Una petita peça de codi dissenyat per a arrencar des del medi triat, possiblement presentant un indicador d'arrencada o un menú per a permetre la selecció d'opcions/configuració. Carrega el nucli de Linux i el seu initrd per a funcionar amb un sistema de fitxers del sistema associat. Es poden utilitzar diverses solucions, en funció del medi de destinació i el format del sistema de fitxers que conté els components esmentats anteriorment: isolinux per a arrencar des de CD o DVD en format ISO9660, syslinux per a una unitat USB o HDD que s'iniciarà des de particions VFAT, extlinux per a particions ext2/3/4 i btrfs, pxelinux per a PXE netboot, GRUB per a particions ext2/3/4, etc.

170

You can use live-build to build the system image from your specifications, set up a Linux kernel, its initrd, and a bootloader to run them, all in one medium-dependent format (ISO9660 image, disk image, etc.).

171

##### 4.2 Descàrrega d'imatges prefabricades

172

You can download one of the prebuilt images from ‹https://www.debian.org/CD/live/›. For many of the popular desktop environments (GNOME, Xfce, KDE, etc.) a specific live image is prepared.

173

If you are unsure which file to download, use the 'Live GNOME' image from the 'stable' release. You can then skip reading the next sections and run the image in a virtual machine.

174

##### 4.3 Primers passos: construcció d'una imatge ISO híbrida

175

Independentment del tipus d'imatge, s'haurà de fer els mateixos passos bàsics per a construir una imatge cada vegada. Com a primer exemple, crear un directori de treball, canviar a aquest directori i executar la següent seqüència d'ordres live-build per a crear una imatge ISO híbrida de base que conté només el sistema per defecte de Debian sense X.org. És adequat per a gravar en un CD o DVD, i també per a copiar en una memòria USB.

176

El nom del directori de treball és absolutament indiferent, però si es fa un cop d'ull als exemples utilitzats a live-manual, és una bona idea utilitzar un nom que ajudi a identificar la imatge amb que s'està treballant en cada directori, especialment si s'està treballant o experimentant amb diferents tipus d'imatges. En aquest cas, anem a construir un sistema per defecte així que l'anomenarem, per exemple, live-default.

177

$ mkdir live-default && cd live-default

178

Aleshores, executar l'ordre `lb config`. Això crearà una jerarquia «config/» en el directori actual per a ser utilitzada per altres ordres:

179

$ lb config

180

Aquí no es passa cap paràmetre a aquestes ordres, per tant s'utilitzaran les opcions per defecte. Veure L'ordre lb config per a més detalls.

181

Ara que la jerarquia «config/» ja existeix, crear la imatge amb l'ordre `lb build`:

182

# lb build

183

This process can take a while, depending on the speed of your computer and your network connection. When it is complete, there should be a `live-image-amd64.hybrid.iso` image file, ready to use, in the current directory.

184

Nota: Si s'està construint en un sistema amd64 el nom de la imatge resultant serà `live-image-amd64.hybrid.iso`. Tenir en compte aquesta convenció al llarg del manual.

185

##### 4.4 Usar una imatge ISO híbrida en viu

186

After either building or downloading an ISO hybrid image the usual next step is to prepare your medium for booting, either CD-R(W) or DVD-R(W) optical media or a USB stick.

187

###### 4.4.1 Gravar una imatge ISO en un medi físic

188

Gravar una imatge ISO és fàcil. Simplement cal instal·lar xorriso i utilitzar-lo des de la línia d'ordres per a gravar la imatge. Per exemple:

189

# apt-get install xorriso
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed live-image-amd64.hybrid.iso

190

###### 4.4.2 Copiar una imatge ISO híbrida en un dispositiu USB

191

Les imatges ISO preparades amb `xorriso`, és poden copiar directament a una memòria USB utilitzant el programa `cp` o un altre d'equivalent. Connectar una memòria USB amb una mida prou gran per al fitxer de la imatge i determinar quin dispositiu és, que d'ara endavant anomenarem `${USBSTICK}`. Aquest és el dispositiu de la memòria, com per exemple `/dev/sdb`, i no una partició, com ara `/dev/sdb1`! Es pot trobar el nom del dispositiu correcte mirant la sortida de `dmesg` després de connectar la memòria usb, o encara millor, `ls -l /dev/disk/by-id`.

192

Quan s'estigui segur de tenir el nom del dispositiu correcte, utilitzar l'ordre `cp` per a copiar la imatge a la memòria. Fent això es perdran definitivament tots els continguts anteriors de la memòria usb!

193

$ cp live-image-amd64.hybrid.iso ${USBSTICK}
$ sync

194

Nota: L'ordre sync s'utilitza per a assegurar-se que totes les dades, que el nucli emmagatzema en la memòria durant la còpia de la imatge, s'escriuen en el dispositiu USB.

195

###### 4.4.3 Utilitzar l'espai lliure en una memòria USB

196

After copying the `live-image-amd64.hybrid.iso` to a USB stick, the first partition on the device will be filled up by the live system. To use the remaining free space, use a partitioning tool such as gparted or parted to create a new partition on the stick.

197

# gparted ${USBSTICK}

198

Després de crear la partició, on `${PARTITION}` és el nom de la partició, com ara `/dev/sdb2`, s'ha de crear un sistema de fitxers. Una opció possible seria ext4.

199

# mkfs.ext4 ${PARTITION}

200

Nota: Si es vol utilitzar l'espai addicional amb Windows, pel que sembla, aquest sistema operatiu normalment no pot accedir a altres particions més que a la primera. Algunes solucions a aquest problema han estat discutides a la nostra llista de correu, però sembla que no hi ha respostes fàcils.

201

Remember: Every time you install a new live-image-amd64.hybrid.iso on the stick, all data on the stick will be lost because the partition table is overwritten by the contents of the image, so back up your extra partition first to restore again after updating the live image.

202

###### 4.4.4 Arrencar el medi en viu

203

La primera vegada que s'arrenqui el medi en viu, ja sigui des de CD, DVD, memòria USB, o PXE, pot ser necessaria alguna petita configuració al BIOS del ordinador en primer lloc. Atès que les BIOS varien molt en les seves funcions i dreceres de teclat, no podem entrar en el tema en profunditat aquí. Algunes BIOS proporcionen una tecla per a obrir un menú de dispositius d'arrencada, que és la manera més fàcil si es troba disponible al sistema. En cas contrari, cal entrar al menú de configuració del BIOS i canviar l'ordre d'arrencada per a situar el dispositiu del sistema en viu abans que el dispositiu d'arrencada normal.

204

Després d'arrencar des del dispositiu, es veurà un menu d'inici. Si es prem «entrer» el sistema s'iniciarà amb l'entrada `Live` i les seves opcions per defecte. Per a obtenir més informació sobre les opcions d'arrencada, llegir «l'ajuda» (help) al menú i també les pàgines del manual de live-boot i live-config que es troben dins del sistema en viu.

205

Assuming you've selected `Live` and booted a default desktop live image, after the boot messages scroll by, you should be automatically logged into the `user` account and see a desktop, ready to use. If you have booted a console-only image, you should be automatically logged in on the console to the `user` account and see a shell prompt, ready to use.

206

##### 4.5 Utilitzar una màquina virtual per a fer proves

207

Pot ser un gran estalvi de temps per al desenvolupament d'imatges en viu executar-les en una màquina virtual (VM). Això no està exempt d'advertiments:

208

- L'execució d'una màquina virtual requereix de suficient memòria RAM, tant per al sistema operatiu convidat i l'amfitrió i es recomana una CPU amb suport de maquinari per a la virtualització.

209

- Hi ha algunes limitacions inherents a l'execució en una màquina virtual, per exemple, rendiment de vídeo pobre, opcions limitadades de maquinari emulat.

210

- En el desenvolupament per a un maquinari específic, no hi ha cap substitut millor que el propi maquinari.

211

- De tant en tant hi ha errors que només sorgeixen durant l'execució en una màquina virtual. En cas de dubte, comprovar la imatge directament al maquinari.

212

Sempre que es pugui treballar dins d'aquestes limitacions, examinar el programari de màquina virtual disponible i triar un que sigui adequat per a les necessitats pròpies.

213

###### 4.5.1 Provar una imatge ISO amb QEMU

214

La màquina virtual més versàtil dins Debian és QEMU. Si el processador té suport de maquinari per a la virtualització, utilitzar el paquet qemu-kvm; la descripció del paquet qemu-kvm enumera breument els requisits.

215

Primer, instal·lar qemu-kvm si el processador ho suporta. Si no, instal·lar qemu, en aquest cas el nom del programa és `qemu` en lloc de `kvm` en els exemples següents. El paquet qemu-utils també és valuós per a la creació d'imatges de disc virtuals amb `qemu-img`.

216

# apt-get install qemu-kvm qemu-utils

217

Arrencar una imatge ISO és senzill:

218

$ kvm -cdrom live-image-amd64.hybrid.iso -m 4G

219

Veure les pàgines del manual per a més detalls

220

Note: For live systems containing a desktop environment that you want to test with qemu, you may wish to include the spice-vdagent package in your live-build configuration. This will automatically adjust the resolution and enable the clipboard between the virtual machine and the host.

221

$ echo "spice-vdagent" >> config/package-lists/spice.list.chroot

222

###### 4.5.2 Provar una imatge ISO amb VirtualBox

223

Per a provar la ISO amb virtualbox:

224

# apt-get install virtualbox virtualbox-qt virtualbox-dkms
$ virtualbox

225

Create a new virtual machine, change the storage settings to use `live-image-amd64.hybrid.iso` as the CD/DVD device, and start the machine.

226

Nota: Per a provar sistemes vius que contenen X.org amb virtualbox, segurament es assenyat incloure el paquet del driver VirtualBox X.org, virtualbox-guest-dkms i virtualbox-guest-x11, en la configuració de live-build. En cas contrari, la resolució es limita a 800x600.

227

$ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-lists/my.list.chroot

228

Per tal de fer que el paquet dkms funcioni, s'han d'instal·lar també les capçaleres del nucli per a la variant del nucli de la imatge. En lloc d'enumerar manualment el paquet linux-headers correcte en la llista de paquets creat anteriorment, la selecció del paquet adequat es pot fer automàticament amb live-build.

229

$ lb config --linux-packages "linux-image linux-headers"

230

##### 4.6 Construir i utilitzar una imatge HDD

231

Building an HDD image is similar to an ISO hybrid one in all respects except you specify `-b hdd` and the resulting filename is `live-image-amd64.img` which cannot be burnt to optical media. It is suitable for booting from USB sticks, USB hard drives, and various other portable storage devices. Normally, an ISO hybrid image can be used for this purpose instead, but if you have a BIOS which does not handle hybrid images properly, you need an HDD image.

232

Nota: si s'ha creat una imatge ISO híbrida amb l'exemple anterior, s'haurà de netejar el directori de treball amb l'ordre `lb clean` (veure L'ordre lb clean):

233

# lb clean --binary

234

Executar l'ordre `lb config` com abans, excepte que aquesta vegada especificant el tipus d'imatge HDD:

235

$ lb config -b hdd

236

Ara construir la imatge amb l'ordre `lb build`:

237

# lb build

238

When the build finishes, a `live-image-amd64.img` file should be present in the current directory.

239

The generated binary image contains a VFAT partition and the syslinux bootloader, ready to be directly written on a USB device. Once again, using an HDD image is just like using an ISO hybrid one on USB. Follow the instructions in Using an ISO hybrid live image, except use the filename `live-image-amd64.img` instead of `live-image-amd64.hybrid.iso`.

240

Likewise, to test an HDD image with Qemu, install qemu as described above in Testing an ISO image with QEMU. Then run `kvm` or `qemu`, depending on which version your host system needs, specifying `live-image-amd64.img` as the first hard drive.

241

$ kvm -hda live-image-amd64.img

242

##### 4.7 Construir una imatge netboot

243

La següent seqüència d'ordres crearà una imatge netboot bàsica que conté el sistema per defecte de Debian sense X.org. És adequada per a l'arrencada en xarxa.

244

Nota: si s'ha realitzat algun dels exemples anteriors, s'haurà de netejar el directori de treball amb l'ordre `lb clean`:

245

# lb clean

246

En aquest cas concret, un `lb clean --binary` no seria suficient per a netejar les etapes necessàries. La causa d'això és que en les configuracions d'arrencada en xarxa, es necessita una configuració initramfs diferent que live-build realitza automàticament quan es construeixen imatges netboot. Ja que la creació del initramfs pertany a l'etapa chroot, fer el canvi a netboot en un directori de construcció existent significa reconstruir l'etapa chroot també. Per tant, s'ha de fer un `lb clean` (que eliminarà l'etapa chroot, també)

247

Executar l'ordre següent per a configurar la imatge per a arrencar en xarxa:

248

$ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.0.2"

249

A diferència de les imatges ISO i HDD, l'arrencada en xarxa no serveix el sistema de fitxers al client, per tant els fitxers han de ser servits a través de NFS. Amb lb config es poden elegir diferents sistemes de fitxers de xarxa. Les opcions `--net-root-path` i `--net-root-server` especifiquen la ubicació i el servidor, respectivament, del servidor NFS on es troba la imatge del sistema de fitxers a l'hora d'arrencar. Assegurar-se que aquests s'ajusten als valors adequats per a la xarxa i el servidor.

250

Ara construir la imatge amb l'ordre `lb build`:

251

# lb build

252

En l'arrencada en xarxa, el client executa una petita peça de programari que normalment es troba a la EPROM de la targeta Ethernet. Aquest programa envia una petició DHCP per a obtenir una adreça IP i la informació sobre què fer a continuació. Per regla general, el següent pas és aconseguir un carregador d'arrencada de més alt nivell a través del protocol TFTP. Podria ser GRUB, pxelinux o fins i tot arrencar directament a un sistema operatiu com Linux.

253

For example, if you unpack the generated `live-image-amd64.netboot.tar` archive in the `/srv/debian-live` directory, you'll find the filesystem image in `live/filesystem.squashfs` and the kernel, initrd and pxelinux bootloader in `tftpboot/`.

254

Ara hem de configurar els tres serveis al servidor per a l'arrencada en xarxa: el servidor DHCP, servidor TFTP i el servidor NFS.

255

###### 4.7.1 Servidor DHCP

256

S'ha de configurar el servidor DHCP de la xarxa per a assegurar-se que dona una adreça IP per al client del sistema d'arrencada en xarxa, i per a anunciar la ubicació del carregador d'arrencada PXE.

257

Heus aquí un exemple per a servir d'inspiració, escrit per al servidor ISC DHCP `isc-dhcp-server` al fitxer de configuració `/etc/dhcp/dhcpd.conf`:

258

# /etc/dhcp/dhcpd.conf - configuration file for isc-dhcp-server
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.254;
filename "pxelinux.0";
next-server 192.168.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}

259

###### 4.7.2 Servidor TFTP

260

Aquest serveix el nucli i el disc ram inicial per al sistema en temps d'execució.

261

S'ha d'instal·lar el paquet tftpd-hpa. Aquest pot servir tots els fitxers continguts dins d'un directori arrel, per regla general `/srv/tftp`. Per tal que es serveixin els fitxers dins de `/srv/debian-live/tftpboot`, s'ha d'executar com a superusuari la següent ordre:

262

# dpkg-reconfigure -plow tftpd-hpa

263

i omplir el nou directori del servidor tftp quan ho hàgim de fer.

264

###### 4.7.3 Servidor NFS

265

Un cop l'ordinador ha descarregat, ha arrencat el nucli de Linux i ha carregat el initrd, intentarà muntar la imatge del sistema de fitxers en viu a través d'un servidor NFS.

266

S'ha d'instal·lar el paquet nfs-kernel-server

267

Llavors, fer que la imatge del sistema de fitxers estigui disponible a través de NFS afegint una línia com la següent a `/etc/exports`:

268

/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)

269

i informar al servidor NFS sobre aquesta nova exportació amb la següent ordre:

270

# exportfs -rv

271

Setting up these three services can be a little tricky. You might need some patience to get all of them working together. For more information, see the syslinux wiki at ‹https://wiki.syslinux.org/wiki/index.php?title=PXELINUX› or the Debian Installer Manual's TFTP Net Booting section at ‹https://www.debian.org/releases/stable/amd64/ch04s05.en.html›. They might help, as their processes are very similar.

272

###### 4.7.4 Com provar l'arrencada en xarxa

273

La creació d'imatges d'arrencada en xarxa es senzilla amb live-build, però provar les imatges en màquines físiques pot costar molt de temps.

274

Per a fer la nostra vida més fàcil, podem utilitzar la virtualització.

275

###### 4.7.5 Qemu

276

- Instal·lar qemu, bridge-utils, sudo.

277

Editar `/etc/qemu-ifup`:

278

#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2

279

Descarregar o crear un `grub-floppy-netboot`.

280

Llançar `qemu` amb "`-net nic,vlan=0 -net tap,vlan=0,ifname=tun0`"

281

##### 4.8 Webbooting

282

Webbooting és una manera convenient d'aconseguir i arrencar sistemes vius utilitzant internet com un mitjà. Els requisits per fer webbooting són molt pocs. D'una banda, es necessita un dispositiu amb un carregador d'arrencada, un disc ram inicial i un nucli. D'altra banda, un servidor web per emmagatzemar els fitxers squashfs que contenen el sistema de fitxers.

283

###### 4.8.1 Obtenir els fitxers webboot

284

As usual, you can build the images yourself or use the prebuilt files. Using prebuilt images would be handy for doing initial testing until one can fine tune their own needs. If you have built a live image you will find the files needed for webbooting in the build directory under `binary/live/`. The files are called `vmlinuz`, `initrd.img` and `filesystem.squashfs`.

285

També és possible extreure els fitxers d'una imatge iso ja existent. Per tal d'aconseguir això, muntar la imatge de la següent manera:

286

# mount -o loop image.iso /mnt

287

The files are to be found under the `live/` directory. In this specific case, it would be `/mnt/live/`. This method has the disadvantage that you need to be root to be able to mount the image. However, it has the advantage that it is easily scriptable and thus, easily automated.

288

Però, sens dubte, la forma més fàcil d'extreure els fitxers d'una imatge iso i pujar-los al servidor web a la vegada, és utilitzant el midnight commander o mc. Si es té el paquet genisoimage instal·lat, aquest gestor de fitxers de dos panells permet examinar el contingut d'un arxiu iso en un panell i pujar els fitxers via ftp en l'altre panell. Tot i que aquest mètode requereix fer un treball manual, no requereix privilegis de root.

289

###### 4.8.2 Arrencar imatges webboot

290

Mentre que alguns usuaris prefereixen utilitzar la virtualització per prova el webbooting, en aquest cas utilitzem maquinari real perquè coincideixi amb el següent cas d'ús, que només ha de ser considerat com un exemple.

291

Per a arrencar una imatge webboot és suficient tenir els components esmentats anteriorment, és a dir, `vmlinuz` i `initrd.img` en una memòria usb dins d'un directori anomenat `live/` i instal·lar syslinux com a gestor d'arrencada. Després, arrencar des de la memòria usb i escriure `fetch=URL/RUTA/AL/FITXER` a les opcions d'arrencada. live-boot descarregarà l'arxiu squashfs i l'emmagatzemarà en la memòria ram. D'aquesta manera, és possible utilitzar el sistema de fitxers comprimit descarregat com si fos un sistema viu normal. Per exemple:

292

append boot=live components fetch=http://192.168.2.50/images/webboot/filesystem.squashfs

293

Cas d'ús: Tenir un servidor web en el qual s'ha emmagatzemat dos arxius squashfs, un que conté un escriptori complet, com ara gnome, i un standard. Si es necessita un entorn gràfic per a una màquina, es pot connectar la memòria usb i arrencar la imatge gnome. Si es necessita una de les eines que s'inclouen en el segon tipus d'imatge, potser per a una altra màquina, arrencar des de internet la imatge standard.

294

# Descripció general de les eines

295

#### 5. Descripció general de les eines

296

Aquest capítol conté un resum de les tres eines principals utilitzades en la construcció dels sistemes en viu: live-build, live-boot i live-config.

297

##### 5.1 El paquet live-build

298

live-build és un conjunt de scripts per a crear sistemes en viu. Aquests scripts també s'anomenen «ordres».

299

La idea darrere de live-build és ser un marc que utilitza un directori de configuració per automatitzar completament i personalitzar tots els aspectes de la construcció d'una imatge en viu.

300

Molts conceptes són similars als utilitzats per a crear paquets Debian amb debhelper:

301

- Els scripts tenen una ubicació central per a la configuració del seu funcionament. Amb debhelper aquest és el subdirectori `debian/` d'un arbre de paquets. Per exemple, dh_install buscarà, entre altres, un fitxer anomenat `debian/install` per a determinar quins fitxers han d'existir en un paquet binari en particular. De la mateixa manera, live-build emmagatzema la seva configuració per complet sota un subdirectori `config/`.

302

- Els scripts són independents - és a dir, sempre és segur executar cada ordre.

303

A diferència de debhelper, live-build proporciona les eines per a generar un directori de configuració en esquelet. Això podria ser considerat similar a eines com ara dh-make. Per a més informació sobre aquestes eines, seguiu llegint, ja que la resta d'aquesta secció discuteix les quatre ordres més importants. Tenir en compte que van precedices de `lb` que és una funció genèrica per a les ordres de live-build.

304

- lb config: Responsable d'inicialitzar un directori de configuració per al sistema en viu. Consultar L'ordre lb config per a més informació.

305

- lb build: Responsable d'iniciar la creació d'un sistema en viu. Consultar L'ordre lb build per a més informació.

306

- lb clean: Responsable d'eliminar parts de la construcció d'un sistema viu. Consultar L'ordre lb clean per a més informació.

307

###### 5.1.1 L'ordre `lb config`

308

Com s'ha dit a live-build, les seqüències d'ordres que formen part de live-build llegeixen la seva configuració amb l'ordre `source` d'un únic directori anomenat `config/`. Com la construcció d'aquest directori a mà, seria molt costós i propens a errors, es pot utilitzar l'ordre `lb config` per a crear l'arbre inicial de configuració en esquelet.

309

Executar `lb config` sense arguments crea el subdirectori `config/` que s'omple amb alguns paràmetres per defecte en fitxers de configuració, i dos arbres de subdirectoris en esquelet que s'anomenen `auto/` i `local/`.

310

$ lb config
[2025-02-15 12:34:56] lb config
P: Using http proxy: http://127.0.0.1:3142
P: Creating config tree for a debian/testing/amd64 system
P: Symlinking hooks...

311

Utilitzar `lb config` sense cap tipus d'arguments seria convenient per als usuaris que necessiten una imatge molt bàsica, o que tinguin la intenció de proporcionar una configuració més completa més tard mitjançant `auto/config` (Veure Gestió d'una configuració per a més detalls).

312

Normalment, s'haurà d'especificar algunes opcions. Per exemple, per a especificar quin gestor de paquets utilitzar durant la construcció de la imatge:

313

$ lb config --apt aptitude

314

És possible especificar diverses opcions, com ara:

315

$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...

316

Una llista completa d'opcions està disponible a la pàgina del manual `lb_config`.

317

###### 5.1.2 L'ordre `lb build`

318

L'ordre `lb build` llegeix la configuració del directori `config/`. A continuació, executa les ordres de nivell inferior necessàries per a construir el sistema en viu.

319

###### 5.1.3 L'ordre `lb clean`

320

L'ordre `lb clean` s'encarrega d'eliminar diverses parts d'una construcció per a que altres construccions posteriors puguin començar des d'un estat net. Per defecte, es netegen les etapes `chroot`, `binary` i `source`, però la caché es manté intacta. A més, es poden netejar etapes individuals. Per exemple, si s'han fet canvis que només afecten a la fase binary, utilitzar `lb clean --binary` abans de construir un nou binary. Si els canvis modifiquen el bootstrap i/o la caché de paquets, per exemple, canvis en les opcions `--mode`, `--architecture` o `--bootstrap`, s'ha d'utilitzar `lb clean --purge`. Veure la pàgina del manual de `lb_clean` per a una llista completa d'opcions.

321

##### 5.2 El paquet live-boot

322

live-boot és un conjunt de scripts per a proporcionar hooks a initramfs-tools, que s'utilitzen per a generar un initramfs capaç d'arrencar sistemes vius, com ara els creats per live-build. Això inclou les ISOs dels sistemes en viu, netboot tarballs i imatges per a memòries USB.

323

At boot time it will look for read-only media containing a `/live/` directory where a root filesystem (often a compressed filesystem image like squashfs) is stored. If found, it will create a writable environment, using OverlayFS, for Debian like systems to boot from.

324

More information on initial ramfs in Debian can be found in the Debian Linux Kernel Handbook at ‹https://kernel-team.pages.debian.net/kernel-handbook/› in the chapter on initramfs.

325

##### 5.3 El paquet live-config

326

live-config consta dels scripts que s'executen durant l'arrencada després de live-boot per a configurar el sistema en viu de forma automàtica. S'ocupa de tasques com ara l'establiment de les locales, el nom d'amfitrió, la zona horària, crear l'usuari en viu, l'inhibició de tasques de cron i l'inici automàtic de sessió per a l'usuari en viu.

327

# Gestió d'una configuració

328

#### 6. Gestió d'una configuració

329

En aquest capítol s'explica com gestionar una configuració d'un sistema en viu des de la seva creació inicial, a través de revisions i versions successives de tant el programari live-build com de la imatge en viu en si mateixa.

330

##### 6.1 Gestionar canvis en la configuració

331

Les configuracions de sistemes en viu poques vegades són perfectes al primer intent. Passar opcions a `lb config` des de la línea d'ordres pot estar be per a construir una imatge una vegada, però és més típic revisar aquestes opcions i construir de nou fins que se'n estigui satisfet. Per a donar suport a aquests canvis, es poden utilitzar scripts auto que assegurin que la configuració es manté en un estat consistent.

332

###### 6.1.1 Per què utilitzar scripts auto? Què fan?

333

L'ordre `lb config` emmagatzema les opcions que se li passen als fitxers de `config/*`, juntament amb moltes altres opcions que estan establertes als valors per defecte. Si s'executa un cop més, `lb config` no es restablirà cap de les opcios dependents basades en les opcions inicials. Així, per exemple, si s'executa de nou `lb config` amb un nou valor per a `--binary-images`, totes les opcions que en depenen que es van omplir per al tipus de imatge per defecte ja no poden funcionar amb la nova. Aquests fitxers no estan destinats a ser llegits o editats. S'emmagatzemen els valors de més de cent opcions, i ningú pot veure les opcions que s'han especificat realment. I finalment, si s'executa `lb config` i a continuació s'actualitza live-build i el nom d'una opció canvia, `config/*` encara contindrà les variables de l'opció vella que ja no són vàlides.

334

Per totes aquestes raons, els scripts `auto/*` ens fan la vida més fàcil. Són simples embolcalls per les ordres `lb config`, `lb build` i `lb clean` dissenyats per ajudar a gestionar una configuració. Només cal crear un script `auto/config` que contingui totes les opcions que es desitgin per a `lb config`, i un `auto/clean` que elimini els fitxers que continguin diversos valors de variables de configuració, i el script `auto/build` guarda un `build.log` de cada construcció. Cada vegada que s'executi l'ordre `lb` corresponent, aquests fitxers seran executats automàticament. L'ús d'aquests scripts assegurarà que la configuració sigui més senzilla de llegir i que guardi una coherència interna d'una reversió a una altra. A més a més serà més fàcil identificar i solucionar les opcions que s'han de canviar al actualitzar d'una versió de live-build a la següent després de llegir la documentació.

335

###### 6.1.2 Utilitzar scripts auto d'exemple

336

Per a més comoditat, live-build ve amb uns scripts d'exemple per a copiar i editar. Iniciar una nova configuració per defecte, i a continuació, copiar els exemples:

337

$ mkdir mylive && cd mylive && lb config
$ mkdir auto
$ cp /usr/share/doc/live-build/examples/auto/* auto/

338

Editar `auto/config`, afegint les opcions més adients. Per exemple:

339

#!/bin/sh
lb config noauto \
--distribution stable \
--binary-images hdd \
--mirror-bootstrap http://ftp.ch.debian.org/debian/ \
--mirror-binary http://ftp.ch.debian.org/debian/ \
"${@}"

340

Ara, cada vegada que s'utilitzi `lb config`, `auto/config` restablirà la configuració basada en aquestes opcions. Quan es vulgui fer canvis, editar les opcions d'aquest fitxer en lloc de passar-les a `lb config`. Quan s'utilitza `lb clean`, `auto/clean` netejarà els fitxers de `config/*` juntament amb els altres productes de construcció. I, finalment, quan s'utilitza `lb build`, es crea un log de la construcció mitjançant `auto/build` anomenat `build.log`.

341

Nota: Aquí s'utilitza un paràmetre especial `noauto` per a suprimir un altra crida a `auto/config`, la qual cosa impedeix la recursivitat infinita. Assegurar-se de no eliminarlo accidentalment fent canvis. També, tenir cura de que quan es divideix l'ordre `lb config` a través de diverses línies per a facilitar la lectura, com es mostra en l'exemple anterior, no s'oblidi la barra invertida (\) al final de cada línia que segueix a la següent.

342

##### 6.2 Clonar una configuració publicada via Git

343

Use the `lb config --config` option to clone a Git repository that contains a live system configuration. If you would like to base your configuration on one maintained by the Debian Live Project, look at ‹https://salsa.debian.org/live-team/› for the repository named `live-images` in the category `Subgroups and projects`. This repository contains the configurations for the live systems prebuilt images.

344

Per exemple, per a construir una imatge standard, utilitzar el repositori `live-images` de la manera següent:

345

$ mkdir live-images && cd live-images
$ lb config --config https://salsa.debian.org/live-team/live-images.git::debian
$ cd images/standard

346

Editar `auto/config` i qualsevol altra cosa necessària dins l'arbre `config` per a satisfer les necessitats pròpies. Per exemple, per a fer les imatges prefabricades no oficials que contenen paquets de la secció non-free simplement s'afegeix `--archive-areas "main contrib non-free"`.

347

Si es desitja, es pot definir una drecera en la configuració de Git, afegint el següent a `${HOME}/.gitconfig`:

348

[url "https://salsa.debian.org/live-team/"]
insteadOf = lso:

349

This enables you to use `lso:` anywhere you need to specify the address of a `salsa.debian.org` git repository. If you also drop the optional `.git` suffix, starting a new image using this configuration is as easy as:

350

$ lb config --config lso:live-images::debian

351

Clonar tot el repositori `live-images` còpia les configuracions utilitzades per diverses imatges. Si es vol construir una imatge diferent després d'haver acabat amb la primera, canviar a un altre directori i un altre cop i, opcionalment, fer els canvis per a adaptar-les a les necessitats pròpies.

352

En qualsevol cas, recordar que cada vegada que s'ha de construir una imatge, s'ha de fer com a superusuari: `lb build`

353

# Personalització dels continguts

354

#### 7. Visió general de la personalització

355

En aquest capítol s'ofereix una visió general de les diverses formes en què es pot personalitzar un sistema en viu.

356

##### 7.1 Configuració durant la construcció vs. durant l'arrencada

357

La configuració de un sistema en viu es divideix en opcions en temps de construcció que són les opcions que s'apliquen durant la seva creació i les opcions d'arrencada del sistema que s'apliquen durant l'arrencada. Les opcions d'arrencada es divideixen en les què ocorren al principi de l'arrencada, aplicades pel paquet live-boot, i les que ocorren més tard en l'arrencada, aplicades per live-config. Qualsevol opció durant l'arrencada pot ser modificada per l'usuari, especificant-la a l'indicador d'arrencada. La imatge també pot ser construïda amb els paràmetres d'arrencada per defecte perquè els usuaris puguin simplement arrencar el sistema en viu sense especificar cap altra opció, ja que tots els valors per defecte són adequats. En particular, l'argument `lb --bootappend-live` consta de les opcions de línia d'ordres per defecte del nucli per al sistema en viu, com ara la persistència, la distribució del teclat o la zona horària. Veure Personalització de l'entorn local i el llenguatge, per exemple.

358

Les opcions de configuració durant la construcció es descriuen a la pàgina del manual de `lb config`. Les opcions durant l'arrencada es descriuen a les pàgines del manual de live-boot i live-config. Malgrat que els paquets live-boot i live-config s'instal·len en el sistema en viu que s'està construint, és recomana instal·lar-los en el sistema de construcció per a tenir una referència fàcil quan s'està treballant en la configuració. És segur fer-ho, ja que cap dels scripts continguts en ells s'executen a menys que el sistema s'hagi configurat com a sistema viu.

359

##### 7.2 Etapes de la construcció

360

El procés de construcció es divideix en etapes, amb personalitzacions diferentes aplicades successivament en cada una. La primera etapa que s'executa es la fase bootstrap. Aquesta és la fase inicial de poblar el directori chroot amb paquets per a fer un sistema Debian bàsic. Això és seguit per l'etapa chroot, que completa la construcció del directori chroot, omplint-lo amb tots els paquets que s'indiquen en la configuració, juntament amb qualsevol altre material. La majoria de personalitzacions dels continguts es produeixen en aquesta etapa. L'etapa final de preparació de la imatge en viu és l'etapa binary, quan es construeix una imatge capaç d'arrencar, amb el contingut del directori chroot per a construir el sistema de fitxers arrel per al sistema en viu, i que inclou el programa de instal·lació i qualsevol altre material addicional en el medi de destinació fora del sistema de fitxers del sistema en viu. Després de construir la imatge en viu, si està habilitat, s'inclou el codi font original a l'etapa source.

361

Dins de cadascuna d'aquestes etapes, hi ha una seqüència particular en la qual s'apliquen les ordres. Això es fa de manera que es garanteixi que les personalitzacions es poden superposar de manera raonable. Per exemple, dins l'etapa chroot, les preconfiguracions (preseeds) s'apliquen abans que s'instal·lin els paquets, els paquets s'instal·len abans que es copiïn els fitxers locals, i els ganxos s'executen més tard, després que tots els materials estiguin al seu lloc.

362

##### 7.3 Suplementar lb config amb fitxers

363

Encara que `lb config` crea una configuració en esquelet al directori `config/`, per a aconseguir els objectius, pot ser necessari proporcionar fitxers addicionals en els subdirectoris de `config/`. Depenent d'on s'emmagatzemen els fitxers en la configuració, poden ser copiats en el sistema de fitxers del sistema en viu o en el sistema de fitxers de la imatge binària, o es pot proporcionar configuracions en temps de construcció del sistema que serien engorroses de passar com opcions de línia d'ordres. Es pot incloure coses com ara llistes personalitzades de paquets, art personalitzat o scripts ganxo per a ser executats ja sigui en temps de construcció o en temps d'arrencada, augmentant la flexibilitat ja considerable de debian-live amb codi propi.

364

##### 7.4 Tasques de personalització

365

Els següents capítols s'organitzen pel tipus de tasques de personalització que els usuaris solen realitzar: Personalització de la instal·lació de paquets, Personalització dels continguts i Personalització de l'entorn local i el llenguatge cobreixen només algunes de les coses que es poden fer.

366

# Personalització de la instal·lació de paquets

367

#### 8. Personalització de la instal·lació de paquets

368

La personalització més bàsica d'un sistema en viu pot ser la selecció dels paquets que seran inclosos en la imatge. Aquest capítol explica les diverses opcions de live-build per a personalitzar la instal·lació de paquets durant la construcció. Les opcions més importants que influeixen en els paquets que estan disponibles per a ser instal·lats en la imatge són les àrees de distribució i el arxiu. Per a garantir velocitats de descàrrega decents, s'ha de triar un mirall de distribució proper. També es pot incloure repositoris de backports, paquets experimentals o personalitzats, o incloure paquets directament com si fossin fitxers. Es poden definir llistes de paquets, incloent-hi els metapaquets que instal·laran diversos paquets relacionats alhora, com ara paquets per a un ordinador d'escriptori o un llenguatge en particular. Finalment, una sèrie d'opcions donen un cert control sobre apt o si es prefereix aptitude, quan s'instal·len els paquets durant la construcció. Això pot ser útil si s'utilitza un proxy, es vol desactivar la instal·lació de paquets recomanats per a estalviar espai, o hi ha la necessitat de controlar quines versions dels paquets s'instal·len mitjançant la tècnica pinning d'APT, per nomenar algunes possibilitats.

369

##### 8.1 Fonts dels paquets

370

###### 8.1.1 Distribució, àrees d'arxiu i mode

371

The distribution you choose has the broadest impact on which packages are available to include in your live image. Specify the codename, which defaults to testing. Any current distribution carried in the archive may be specified by its codename here. (See Terms for more details.) The `--distribution` option not only influences the source of packages within the archive, but also instructs live-build to enable other sources.

372

For example, to build against the stable release, with security, updates (enabled per default) and additionally proposed-updates and backports, specify:

373

$ lb config --distribution stable --proposed-updates true --backports true

374

Similarly, for the unstable release, sid, which has neither security nor updates, specify:

375

$ lb config --distribution sid

376

A l'arxiu de la distribució, les àrees són les divisions principals de l'arxiu. A Debian, es tracta de `main`, `contrib` i `non-free`. Només `main` conté el programari que és part de la distribució Debian, per tant és el valor per defecte. Es poden especificar un o més valors, per exemple:

377

$ lb config --archive-areas "main contrib non-free"

378

És dona suport experimental a alguns derivats de Debian a través de l'opció `--mode`. Per defecte, aquesta opció és `debian` però només si s'està construint en un sistema Debian o en un sistema desconegut. Si s'especifica amb `lb config` que es vol construir un dels derivats suportats alehores es modificaran les opcions per a crear aquest derivat. Si per exemple s'utilitza `lb config` amb el mode `ubuntu`, s'utilitzarà el nom de la distribució i les àrees dels arxius del derivat especificat en lloc dels de Debian. El «mode» també modifica el comportament de live-build per a adaptar-lo als derivats.

379

Nota: Els projectes per als quals s'han afegit aquests modes són els principals responsables de donar suport als usuaris d'aquestes opcions. El Debian Live Project, al seu torn, dona suport de desenvolupament només sobre una base de millor esforç, basada en les informacions proporcionades pels projectes derivats ja que nosaltres no desenvolupem ni donem suport a aquests derivats.

380

###### 8.1.2 Miralls de distribució

381

L'arxiu de Debian es replica a través d'una àmplia xarxa de miralls a tot el món perquè la gent de cada regió pugui triar un mirall proper amb la millor velocitat de descàrrega. Cadascuna de les opcions `--mirror-*` governa quin mirall de distribució s'utilitzarà en les diverses etapes de la construcció. Recordar de Etapes de la construcció que l'etapa bootstrap es quan el chroot s'omple inicialment per debootstrap amb un sistema mínim i l'etapa chroot és quan s'utilitza el chroot per a la construcció del sistema de fitxers del sistema en viu. D'aquesta manera, s'utilitzen els miralls corresponents per a aquestes etapes, i més tard, durant l'etapa binary s'utilitzen els valors `--mirror-binary` i `--mirror-binary-security` substituint qualsevol mirall utilitzat en una etapa anterior.

382

###### 8.1.3 Miralls de distribució utilitzats en temps de construcció

383

Per a establir els miralls de la distrubució utilitzats en temps de construcció perquè apuntin a una rèplica local, és suficient establir `--mirror-bootstrap` i `--mirror-chroot-security` de la manera següent.

384

$ lb config --mirror-bootstrap http://localhost/debian/ \
--mirror-chroot-security http://localhost/debian-security/

385

El mirall per al chroot, especificat per l'opció `--mirror-chroot`, per defecte pren el mateix valor que `--mirror-bootstrap`

386

###### 8.1.4 Miralls de distribució utilitzats en temps d'execució

387

The `--mirror-binary*` options govern the distribution mirrors placed in the binary image. These may be used to install additional packages while running the live system. The defaults employ `deb.debian.org`, a service that chooses a geographically close mirror based, among other things, on the user's IP family and the availability of the mirrors. This is a suitable choice when you cannot predict which mirror will be best for all of your users. Or you may specify your own values as shown in the example below. An image built from this configuration would only be suitable for users on a network where "`mirror`" is reachable.

388

$ lb config --mirror-binary http://mirror/debian/ \
--mirror-binary-security http://mirror/debian-security/ \
--mirror-binary-backports http://mirror/debian-backports/

389

###### 8.1.5 Repositoris addicionals

390

És possible afegir més repositoris, ampliant les opcions de paquets més enllà dels disponibles en la pròpia distribució de destinació. Aquests poden ser, per exemple, per a backports, experimentals o paquets personalitzats. Per a configurar repositoris addicionals, crear els fitxers `config/archives/your-repository.list.chroot`, i/o `config/archives/your-repository.list.binary`. Igual que amb les opcions `--mirror-*` aquest regeix els repositoris utilitzats en l'étapa chroot durant la construcció de la imatge, i a l'étapa binary, és a dir, per a ser utilitzades quan s'executa el sistema en viu.

391

Per exemple, `config/archives/live.list.chroot` permet instal·lar paquets des del repositori d'instantànies de debian-live en el moment de construcció del sistema viu.

392

deb http://debian-live.alioth.debian.org/ sid-snapshots main contrib non-free

393

Si s'afegeix la mateixa línia a `config/archives/live.list.binary`, el repositori sera afegit al directori `/etc/apt/sources.list.d/` del sistema viu.

394

Si aquests fitxers existeixen, són utilitzats de forma automàtica.

395

You should also put the ASCII-armored GPG key used to sign the repository into `config/archives/your-repository.key.{binary,chroot}` files.

396

En cas de necessitar un APT pinning personalitzat, es poden col·locar les preferències APT en fitxers `config/archives/your-repository.pref.{binary,chroot}`, que seran afegits automàticament al sistema en viu al directori `/etc/apt/preferences.d/`.

397

Similarly, if you need custom APT_AUTH.CONF(5) authentication configuration, this can be placed in `config/archives/your-repository.auth.{binary,chroot}` files and will be automatically added to your live system's `/etc/apt/auth.conf.d/` directory

398

##### 8.2 Selecció dels paquets a instal·lar

399

Hi ha una sèrie de formes de triar els paquets que live-build instal·larà en la imatge, que abasta una varietat de necessitats diferents. Es pot simplement anomenar paquets individualment per a instal·lar en una llista de paquets. També es pot optar per utilitzar metapaquets a les llistes, o seleccionar-los utilitzant camps de control de fitxers de paquets. I, finalment, es poden copiar paquets com si fossin fitxers dins del arbre `config/`, que és un mètode que s'adapta perfectament a fer proves amb paquets nous o experimentals abans de afegirlos a un repositori.

400

###### 8.2.1 Llistes de paquets

401

Les llistes de paquets són una forma eficaç d'expressar quins paquets han de ser instal·lats. La sintaxi de la llista suporta seccions condicionals que fa que sigui fàcil construir llistes i adaptar-les per al propi ús en múltiples configuracions. Els noms dels paquets també poden ser injectats a la llista amb ajudants de l'intèrpret d'ordres en temps de construcció.

402

Nota: El comportament de live-build a l'hora d'especificar un paquet que no existeix està determinat per la elecció que es faci de l'eina APT. Veure Elegir apt or aptitude per a més detalls.

403

###### 8.2.2 Ús dels metapaquets

404

La forma més senzilla per a omplir la llista de paquets és utilitzar una tasca metapaquet mantinguda per una distribució. Per exemple:

405

$ lb config
$ echo task-gnome-desktop > config/package-lists/desktop.list.chroot

406

This supersedes the older predefined list method supported in `live-build` 2.x. Unlike predefined lists, task metapackages are not specific to the Live System project. Instead, they are maintained by specialist working groups within the distribution and therefore reflect the consensus of each group about which packages best serve the needs of the intended users. They also cover a much broader range of use cases than the predefined lists they replace.

407

Tots els metapaquets tenen el prefix `task-`, de manera que una forma ràpida de determinar quins estan disponibles (encara que pot contenir un grapat d'entrades falses que coincideixin amb el nom, però que no són metapaquets) és fer coincidir el nom del paquet amb:

408

$ apt-cache search --names-only ^task-

409

A més d'aquests, es troben altres metapaquets amb diverses finalitats. Alguns són subconjunts de paquets de tasques més àmplies, com `gnome-core`, mentre que altres són parts individuals especialitzades de un Debian Pure Blend, com els metapaquets `education-*`. Per a obtenir una llista de tots els metapaquets que hi ha a l'arxiu, instal·lar el paquet `debtags` i llistar tots els paquets amb l'etiqueta `role::metapackage` de la següent manera:

410

$ debtags search role::metapackage

411

###### 8.2.3 Llistes locals de paquets

412

Ja sigui afegint metapaquets a una llista, paquets individuals, o una combinació d'ambdós, totes les llistes de paquets locals s'emmagatzemen a `config/package-lists/`. Es pot utilitzar més d'una llista i això es presta molt bé als dissenys modulars. Per exemple, es pot decidir dedicar una llista a una elecció particular d'escriptori, l'altra a una col·lecció de paquets relacionats que puguin ser fàcilment utilitzats al damunt d'un escriptori diferent. Això permet experimentar amb diferents combinacions de conjunts de paquets amb un mínim d'esforç, intercanviant llistes comunes entre els diferents projectes d'imatges en viu.

413

Les llistes de paquets que es troben en aquest directori han de tenir el sufix `.list` per a ser processades, i a més a més un sufix d'etapa adicional `.chroot` o `.binary` per a indicar per a quina etapa és la llista.

414

The packages in the `.list.chroot_install` list are present both in the live system and in the installed system.

415

Nota: Si no s'especifica el sufix d'etapa, la llista s'utilitzarà per a ambdues etapes. Normalment, s'especifica `.list.chroot` de manera que els paquets només s'instal·laran al sistema de fitxers en viu i no hi haura una còpia extra del `.deb` en el medi.

416

###### 8.2.4 Llistes locals de paquets per a l'etapa binary

417

Per a crear una llista per a l'etapa binary, crear un fitxer amb el sufix `.list.binary` a `config/package-lists/`. Aquests paquets no s'instal·len al sistema de fitxers en viu però s'inclouen en el medi en viu al directori `pool/`. Un ús típic d'aquesta llista seria amb una de les variants del instal·lador non-live. Com s'ha esmentat anteriorment, si es vol que aquesta llista sigui la mateixa que la llista de l'etapa chroot, simplement utilitzar el sufix `.list`.

418

###### 8.2.5 Generar llistes de paquets

419

De vegades passa que la millor manera de crear una llista és generar-la amb un script. Qualsevol línia que comença amb un signe d'exclamació indica una ordre que s'executarà dins del chroot quan la imatge es construeix. Per exemple, es podria incloure la línia `! grep-aptavail -n -sPackage -FPriority standard | sort` en una llista de paquets per a produir una llista ordenada de paquets disponibles amb `Priority: standard`.

420

De fet, la selecció de paquets amb l'ordre `grep-aptavail` (del paquet `dctrl-tools`) és tan útil que `live-build` proporciona un script `Packages` d'ajuda per motius de comoditat. Aquest script accepta dos arguments: `field` i `pattern`. Per tant, es pot crear una llista amb els següents continguts:

421

$ lb config
$ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot

422

###### 8.2.6 Ús de condicionals dins de les llistes de paquets

423

Qualsevol de les variables de configuració de live-build emmagatzemades a `config/*` (menys el prefix `LB_`) poden ser utilitzades en sentències condicionals en les llistes de paquets. En general, això significa qualsevol opció `lb config` en lletres majuscules i amb guions canviats a guions baixos. Però a la pràctica, només tenen sentit les que influeixen en la selecció de paquets, com ara `DISTRIBUTION`, `ARCHITECTURES` o `ARCHIVE_AREAS`.

424

Per exemple, per a instal·lar `ia32-libs` si s'especifica `--architectures amd64`:

425

#if ARCHITECTURES amd64
ia32-libs
#endif

426

És possible fer un test d'un nombre de valors, per exemple per a instal·lar memtest86+ si s'especifica `--architectures i386` o `--architectures amd64`:

427

#if ARCHITECTURES i386 amd64
memtest86+
#endif

428

També es pot provar amb variables que poden contenir més d'un valor, per exemple, per a instal·lar vrms si s'especifica o `contrib` o `non-free` a través de l'opció `--archive-areas`:

429

#if ARCHIVE_AREAS contrib non-free
vrms
#endif

430

No és possible el anidament dels condicionals.

431

###### 8.2.7 Eliminar paquets durant la instal·lació

432

Es pot crear llistes de paquets en fitxers amb els sufixos `.list.chroot_live` i `.list.chroot_install` dins del directori `config/package-lists`. Si hi ha una llista «live» i una llista «install» els paquets de la llista `.list.chroot_live` s'eliminaran amb un script ganxo després de la instal·lació (si l'usuari utilitza l'instal·lador). Els paquets de la llista `.list.chroot_install` seran presents tant en el sistema en viu com en el sistema instal·lat. Aquest és un cas especial per al programa d'instal·lació i pot ser útil si es té `--debian-installer live` establert en la configuració i es desitja eliminar paquets específics del sistema en viu durant la instal·lació.

433

###### 8.2.8 Summary

434

The table below shows which configuration files are required to achieve the desired availability of the package.

435

| X.chroot | X.chroot_live | X | X.binary
--- | --- | --- | --- | ---
Package is installed in the live system | Yes | Yes | Yes | No
Package is removed after installing the live system | No | Yes | No | N/A
Package can be installed from the live system without network | N/A | N/A | Yes *1 | Yes

436

*1: Because the installer needs this package

437

`X` = `config/package-lists/custom_name.list`

438

###### 8.2.9 Tasques d'escriptori i llenguatge

439

Les tasques d'escriptori i el llenguatge són casos especials que necessiten una mica de planificació i configuració extra. Les imatges en viu són diferentes de les imatges de l'instal·lador de Debian en aquest sentit. A l'instal·lador de Debian, si el medi es va preparar per a obtenir un tipus d'entorn d'escriptori en particular, la tasca corresponent s'instal·larà automàticament. Per tant hi ha tasques internes `gnome-desktop`, `kde-desktop`, `lxde-desktop` i `xfce-desktop`, cap de les quals s'ofereixen al menú de `tasksel`. De la mateixa manera, no hi ha cap entrada de menú per a tasques de llengües, però l'elecció del idioma de l'usuari durant la instal·lació influeix en la selecció de les tasques de les llengües corresponents.

440

En el desenvolupament d'una imatge en viu d'escriptori, la imatge sol arrencar directament a un escriptori de treball, les opcions d'escriptori i de llengua han estat fetes en temps de construcció, no en temps d'execució com en el cas del instal·lador de Debian. Això no vol dir que una imatge en viu no es pugui construir per a donar suport a diversos equips d'escriptori o diversos idiomes i oferir a l'usuari una opció, però això no és el comportament de live-build per defecte.

441

Com que no hi ha cap ajust automàtic per a les tasques de llengua que incloguin coses com ara tipus de lletres específics per a una llengua o paquets de mètode d'entrada, si es vol, cal especificar-ho en la configuració. Per exemple, una imatge d'escriptori GNOME que contingui suport per al alemany podrie incloure les següents tasques metapaquets:

442

$ 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

443

###### 8.2.10 Tipus i versió del nucli

444

Depenent de l'arquitectura, s'inclouran per defecte en la imatge un o més tipus de nuclis. Es pot triar diferents tipus a través de l'opció `--linux-flavours`. Cada tipus té un sufix per a l'arrel per defecte `linux-image` per a formar el nom de cada metapaquet que al seu torn depèn d'un paquet del nucli exacte que s'ha d'incloure en la imatge.

445

Així, per defecte, una imatge per a l'arquitectura `amd64` inclourà el metapaquet `linux-image-amd64` i una imatge per a l'arquitectura `i386` inclourà el metapaquet `linux-image-586`.

446

Quan hi ha més d'una versió del paquet del nucli disponible en els arxius configurats, es pot especificar el nom d'un paquet del nucli amb l'opció `--linux-packages`. Per exemple, suposem que s'està construint una imatge d'arquitectura `amd64` i es vol afegir l'arxiu experimental amb propòsits de fer proves. Perquè es pugui instal·lar el nucli `linux-image-3.18.0-trunk-amd64` es podria configurar la imatge de la següent manera:

447

$ lb config --linux-packages linux-image-3.18.0-trunk
$ echo "deb http://deb.debian.org/debian/ experimental main" > config/archives/experimental.list.chroot

448

###### 8.2.11 Nuclis personalitzats

449

Es pot construir i incloure nuclis propis personalitzats, sempre que s'integrin en el sistema de gestió de paquets de Debian. El sistema de live-build no és compatible amb nuclis no construïts com paquets `.deb`.

450

La manera apropiada i recomanable d'implementar els propis paquets del nucli és seguir les instruccions del `kernel-handbook`. Recordar que s'ha de modificar l'ABI i els sufixos del tipus apropiadament, i a continuació, incloure un conjunt complet dels packets que corresponen amb `linux` i `linux-latest` al repositori.

451

Si s'opta per construir els paquets del nucli sense els metapaquets a joc, cal especificar una arrel `--linux-packages` apropiada com s'indica a Tipus i versió del nucli. Com expliquem a Instal·lació de paquets modificats o de tercers, és millor si s'inclouen els paquets del nucli personalitzat en un repositori propi, tot i que les alternatives discutides en aquella secció també funcionen.

452

Està més enllà de l'abast d'aquest document donar consells sobre com personalitzar un nucli. No obstant això, cal, almenys, assegurar-se que la configuració compleix els següents requisits mínims:

453

- Utilitzar una ramdisk inicial.

454

- Include the union filesystem module (i.e. usually `OverlayFS`).

455

- Incloure tots els mòduls del sistema d'arxius requerits per la configuració (normalment `squashfs`).

456

##### 8.3 Instal·lació de paquets modificats o de tercers

457

Si bé està en contra de la filosofia d'un sistema en viu, de vegades pot ser necessària la construcció d'un sistema amb versions modificades dels paquets que es troben al arxiu de Debian. Pot ser per a modificar o donar suport a funcions addicionals, les llengües o les marques, o fins i tot per a eliminar elements dels paquets existents que són indesitjables. De la mateixa manera, es poden utilitzar paquets de tercers per a afegir alguna funcionalitat personalitzada i/o propietària.

458

This section does not cover advice regarding building or maintaining modified packages. Joachim Breitner's 'How to fork privately' method from ‹http://www.joachim-breitner.de/blog/archives/282-How-to-fork-privately.html› may be of interest, however. The creation of bespoke packages is covered in the Debian New Maintainers' Guide at ‹https://www.debian.org/doc/manuals/maint-guide/› and elsewhere.

459

Hi ha dues formes d'instal·lar paquets personalitzats modificats:

460

- `packages.chroot`

461

- L'ús d'un repositori APT personalitzat

462

Utilitzar `packages.chroot` és més fàcil d'aconseguir i útil per a personalitzacions "ràpides", però té una sèrie d'inconvenients, mentre que l'ús d'un repositori APT personalitzat és més costós en la quantitat de temps necessari per a posar-lo en marxa.

463

###### 8.3.1 Fer servir `packages.chroot` per a instaŀar paquets personalitzats

464

Per a instaŀar un paquet personalitzat, només s'ha de copiar al directori `config/packages.chroot/`. Els paquets que es troben dins d'aquest directori s'instal·laran automàticament en el sistema en viu durant la construcció - no cal especificar res més en cap altre lloc.

465

Els paquets han de ser nomenats en la forma prescrita. Una manera simple de fer això és utilitzar `dpkg-name`.

466

Utilitzar `packages.chroot` per a la instal·lació de paquets personalitzats té els seus desavantatges:

467

- No és possible utilitzar APT segur.

468

- Cal posar tots els paquets apropiats al directori `config/packages.chroot/`.

469

- No es adient per a l'emmagatzematge de configuracions de sistemes en viu en el control de revisió.

470

###### 8.3.2 Fer servir un repositori APT per a instal·lar paquets personalitzats

471

A diferència de `packages.chroot`, quan s'utilitza un repositori APT personalitzat s'ha d'assegurar que s'especifiquen els paquets en un altre lloc. Veure Selecció dels paquets a instal·lar per a més detalls.

472

Si bé crear un repositori APT per a instal·lar paquets personalitzats pot semblar un esforç innecessari, la infraestructura pot ser fàcilment reutilitzada en una data posterior per a oferir actualitzacions dels paquets modificats.

473

The APT repository does not necessarily need to be online, you can use a local repository instead. However, in both cases the repository needs to be signed.

474

Example:

475

$ gpg --armor --output config/archives/custom_repo.gpg.key${EXTENSION} --export-options export-minimal --export ${SIGNING_KEY}
$ cat << EOF > config/archives/custom_repo.list${EXTENSION}
deb [signed-by=/etc/apt/trusted.gpg.d/custom_repo.gpg.key${EXTENSION}.asc] ${URI} ${SUITE} ${COMPONENTS}
EOF
$ echo "${PACKAGES_FROM_REPOSITORY}" > config/package-lists/custom_repo.list${EXTENSION}

476

Where:

477

- `${EXTENSION}` : the optional stage suffix, see the summary

478

- `${SIGNING_KEY}`: the keyID of the signature of the repository

479

- `${URI}`: the URI to the repository, e.g. `http://deb.debian.org/debian/` or `file://$(pwd)/my_local_repository`

480

- `${SUITE}`: the suite within the repository, e.g. `my-debian-based-distro`

481

- `${COMPONENTS}`: the components within the repository, e.g. `main`

482

- `${PACKAGES_FROM_REPOSITORY}`: the names of the packages to install (dependencies will automatically be installed as well)

483

###### 8.3.3 Paquets personalitzats i APT

484

live-build utilitza APT per a instal·lar tots els paquets al sistema en viu, per tant, heretarà els comportaments d'aquest programa. Un exemple rellevant és que (assumint una configuració per defecte) si es dóna el cas que un paquet està disponible en dos repositoris diferents, amb diferents números de versió, APT triarà per a instal·lar el paquet amb la versió més alta.

485

A causa d'això, s'aconsella augmentar el nombre de la versió dels paquets personalitzats als fixers `debian/changelog` per a assegurar-se que la versió modificada és la que s'instal·la en lloc d'una dels repositoris oficials de Debian. Això també es pot aconseguir mitjançant l'alteració de les preferències d'APT del sistema en viu - veure APT pinning per a més informació.

486

##### 8.4 Configurar APT en temps de construcció

487

Es pot configurar APT a través d'una sèrie d'opcions que només s'apliquen en temps de construcció. (La configuració d'APT al sistema en funcionament en viu es pot fer de forma normal per als continguts del sistema en viu, és a dir, mitjançant la inclusió de les configuracions adequades a través de `config/includes.chroot/`.) Per a obtenir una llista completa, buscar les opcions que comencen amb `apt` a la pàgina del manual de `lb_config`.

488

###### 8.4.1 Elegir apt o aptitude

489

Es pot optar per utilitzar apt o aptitude a l'hora d'instal·lar paquets en temps de construcció. Quina utilitat s'usa es configura gràcies al argument `--apt` de `lb config`. Escollir el mètode d'implementació per al comportament preferit durant la instal·lació de paquets, la diferència notable és la forma en que es manegen els paquets que falten.

490

- `apt`: Amb aquest mètode, si un paquet que s'especifica falta, l'instal·lació de paquets fallarà. Aquesta és la configuració per defecte.

491

- `aptitude`: Amb aquest mètode, si s'especifica un paquet que falta, l'instal·lació de paquets tindrà èxit.

492

###### 8.4.2 L'ús d'un proxy amb APT

493

One commonly required APT configuration is to deal with building an image behind a proxy. You may specify your APT proxy with the `--apt-http-proxy` option as needed, e.g.

494

$ lb config --apt-http-proxy http://proxy/

495

###### 8.4.3 Afinar APT per a estalviar espai

496

Pot ser necessari estalviar espai en el medi destinat a la imatge, en aquest cas una o altra o ambdós de les següentes opcions poden ser d'interès.

497

Si no es vol incloure els índexs d'APT en la imatge, es poden omitir amb:

498

$ lb config --apt-indices false

499

Això no influirà en les entrades de `/etc/apt/sources.list`, sinó simplement si `/var/lib/apt` conté els fitxers dels índexs o no. El desavantatge és que APT necessita aquests índexs per tal d'operar en el sistema en viu, així que abans d'executar per exemple `apt-cache search` o `apt-get install`, l'usuari primer ha fer un `apt-get update` per a crear aquests índexs.

500

Si es considera que la instal·lació de tots els paquets recomanats infla massa la imatge, sempre que s'estigui preparat per a fer front a les conseqüències que s'analitzen a continuació, es pot desactivar aquesta opció per defecte d'APT amb:

501

$ lb config --apt-recommends false

502

The most important consequence of turning off recommends is that `live-boot` and `live-config` themselves recommend some packages that provide important functionality used by most Live configurations.

503

Two packages which you most probably will want to add again are:

504

- `user-setup` which `live-config` recommends is used to create the live user.

505

- `sudo` which `live-config` recommends is used to obtain root access in the live-image, which is needed to shutdown the computer.

506

$ lb config --apt-recommends false
$ echo "user-setup sudo" > config/package-lists/recommends.list.chroot

507

In all but the most exceptional circumstances you need to add back at least some of these recommends to your package lists or else your image will not work as expected, if at all. Look at the recommended packages for each of the `live-*` packages included in your build and if you are not certain you can omit them, add them back into your package lists.

508

The more general consequence is that if you don't install recommended packages for any given package, that is, "packages that would be found together with this one in all but unusual installations" ( Debian Policy Manual, section 7.2 ), some packages that users of your Live system actually need may be omitted. Therefore, we suggest you review the difference turning off recommends makes to your packages list (see the `binary.packages` file generated by `lb build`) and re-include in your list any missing packages that you still want installed. Alternatively, if you find you only want a small number of recommended packages left out, leave recommends enabled and set a negative APT pin priority on selected packages to prevent them from being installed, as explained in APT pinning.

509

###### 8.4.4 Passar opcions per a apt o aptitude

510

Si no hi ha cap opció `lb config` per a modificar el comportament d'APT de la manera què es necessita, es pot utilitzar `--apt-options` o `--aptitude-options` per a passar opcions a l'eina APT configurada. Consultar les pàgines dels manual `apt` i `aptitude` per a més detalls. Tenir en compte que ambdues opcions tenen valors per defecte que s'hauran de mantenir, a més de les opcions que es proporcionen. Així, per exemple, suposant que s'ha inclòs algun paquet de `snapshot.debian.org` per a fer proves i es vol especificar `Acquire::Check-Valid-Until=false` perquè APT no es queixe de que el fitxer `Release` ja ha caducat es podria fer com en el exemple següent, afegint la nova opció després del valor per defecte `--yes`:

511

$ lb config --apt-options "--yes -oAcquire::Check-Valid-Until=false"

512

Consultar les pàgines del manual per a entendre completament aquestes opcions i quan utilitzar-les. Això és només un exemple i no s'ha d'interpretar com un consell per a configurar la imatge. Aquesta opció no seria adequada, per exemple, per a una versió final d'una imatge en viu.

513

Per a configuracions més complicades que impliquen opcions `apt.conf` pot ser adequat crear un fitxer `config/apt/apt.conf`. Consultar també les altres opcions `apt-*` per a tenir algunes dreceres convenients per a les opcions que es necessiten amb freqüència.

514

###### 8.4.5 APT pinning

515

Com a referència, llegir primer la pàgina del manual `apt_preferences(5)`. Es pot configurar APT pinning durant la construcció, o bé durant l'execució. En el primer cas, crear `config/archives/*.pref`, `config/archives/*.pref.chroot`, i `config/apt/preferences`. Per al segon cas, crear `config/includes.chroot/etc/apt/preferences`.

516

Suposem que s'està construint un sistema en viu trixie però es necessita que tots els paquets «live-» que acaben dins de la imatge binària s'instal·lin desde sid en temps de construcció. Cal afegir sid a les fonts d'APT i fer un pin dels paquets live amb una prioritat més alta, però tots els altres paquets amb una prioritat més baixa que la prioritat per defecte de manera que només els paquets que es vol s'instal·lin desde sid en el moment de la construcció i tots els altres es prenguin de la distribució de destinació, trixie. Això es pot aconseguir de la manera següent:

517

$ 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

518

Una prioritat pin negativa evitarà que un paquet s'instal·li, com en el cas que no es vulgui un paquet que és recomanat per un altre paquet. Suposem que s'està construint una imatge LXDE afegint `task-lxde-desktop` a `config/package-lists/desktop.list.chroot` però no es desitja que al usuari se li demani que guardi les contrasenyes wifi al keyring. Aquesta llista depèn de lxde-core, que recomana gksu, que al seu torn recomana gnome-keyring. Si es vol omitir el paquet recomanat gnome-keyring, es pot fer mitjançant l'addició de les següents línies a `config/apt/preferences`:

519

Package: gnome-keyring
Pin: version *
Pin-Priority: -1

520

# Personalització dels continguts

521

#### 9. Personalització dels continguts

522

Aquest capítol tracta d'afinar la personalització dels continguts del sistema en viu més enllà de simplement triar els paquets que es desitja incloure. Els «includes» permeten afegir o reemplaçar fitxers arbitraris en la imatge en viu, els scripts ganxo (hooks) permeten executar ordres arbitràries en diferents etapes de la construcció i en el moment d'arrencar, i la preconfiguració (preseeding) permet configurar els paquets quan s'instal·len proporcionant respostes a les preguntes de debconf .

523

##### 9.1 Includes

524

Tot i que l'ideal seria un sistema en viu que inclogués només fitxers proporcionats per paquets Debian sense modificació, de vegades és convenient proporcionar o modificar part del contingut a través de fitxers. Amb els includes, és possible afegir (o substituir) fitxers arbitraris en la imatge en viu. live-build ofereix dos mecanismes per al seu ús:

525

- Chroot local includes: Aquests permeten afegir o substituir fitxers dintre de chroot/Live en el sistema de fitxers. Consultar Live/chroot local includes per a més informació.

526

- Binary local includes: Aquests permeten afegir o substituir fitxers dins la imatge binària. Consultar Binary local includes per a més informació.

527

Consultar Termes per a més informació sobre la distinció entre les imatges "Live" and "binary".

528

###### 9.1.1 Live/chroot local includes

529

Es poden utilitzar els chroot local includes per a afegir o reemplaçar fitxers en el sistema de fitxers chroot/Live perquè puguin ser utilitzats en el sistema en viu. Un ús típic és per a omplir l'esquelet del directori de l'usuari (`/etc/skel`) utilitzat pel sistema en viu per a crear el directori home de l'usuari en viu. Un altre és el de subministrar fitxers de configuració que poden ser simplement afegits o reemplaçats en la imatge sense processar; veure Chroot local hooks si es necessita processar-los.

530

Per a incloure fitxers, només s'han d'afegir al directori `config/includes.chroot`. Aquest directori es correspon amb el directori arrel `/` del sistema en viu. Per exemple, per a afegir un fitxer `/var/www/index.html` en el sistema en viu, fer:

531

$ mkdir -p config/includes.chroot/var/www
$ cp /path/to/my/index.html config/includes.chroot/var/www

532

La configuració tindrà llavors l'estructura següent:

533

-- config
[...]
|-- includes.chroot
| `-- var
| `-- www
| `-- index.html
[...]

534

Els chroot local includes s'instal·len després de la instal·lació del paquets de tal manera que es sobreescriuen els fitxers instal·lats pels paquets.

535

###### 9.1.2 Binary local includes

536

Per a incloure material com documentació o vídeos en el sistema de fitxers del medi en viu de manera que sigui accessible immediatament després de la inserció del medi sense haver de arrencar el sistema en viu, es pot utilitzar els binary local includes. Això funciona de manera similar als chroot local includes. Per exemple, si els fitxers `~/video_demo.*` són vídeos de demostració del sistema en viu descrits i lligats per una pàgina d'índex HTML. Només cal copiar el material a `config/includes.binary/` de la següent manera:

537

$ cp ~/video_demo.* config/includes.binary/

538

Aquests fitxers apareixeran ara en el directori arrel del medi en viu.

539

##### 9.2 Scripts ganxo (Hooks)

540

Els scripts ganxo permeten executar ordres en les etapes de la construcció chroot i binary per tal de personalitzar la imatge. Depenent de si es vol construir una imatge en viu o una d'un sistema normal s'han de col·locar els ganxos a `config/hooks/live` o `config/hooks/normal` respectivament. Aquests ganxos s'anomenen amb freqüència "ganxos locals", ja que s'executen dins de l'entorn de construcció.

541

També hi ha ganxos en temps d'arrencada que permeten executar ordres una vegada que la imatge ja s'ha construït, durant el procés d'arrencada.

542

###### 9.2.1 Chroot local hooks

543

Per a executar ordres durant l'etapa chroot, crear un script ganxo que contingui les ordres amb el sufix `.hook.chroot` i afegir-lo bé al directori `config/hooks/live` o a `config/hooks/normal`. El ganxo s'executarà en el chroot després que la resta de la configuració del chroot s'hagi aplicat, assegurar-se que la configuració inclou tots els paquets i els fitxers que el ganxo necessita per a funcionar. Veure els scripts chroot d'exemple per a diverses tasques comunes de personalització que es poden trobar a `/usr/share/doc/live-build/examples/hooks` que es poden copiar o fer un enllaç simbòlic per a utilitzar-los en la pròpia configuració.

544

###### 9.2.2 Binary local hooks

545

Per a executar ordres durant l'etapa binary, crear un script ganxo que contingui les ordres amb un sufix `.hook.binary` i afegir-lo bé al directori `config/hooks/live` o a `config/hooks/normal`. El ganxo s'executarà després que s'executin totes les ordres de l'etapa binary però abans dels binary_checksums, la darrera ordre de l'etapa binary. Les ordres del ganxo no s'executen al chroot, per tant tenir cura de no modificar cap fitxer de fora del arbre de construcció, o es pot fer malbé el sistema de construcció! Veure els scripts ganxo binary d'exemple per a diverses tasques comunes de personalització a `/usr/share/doc/live-build/examples/hooks` que es poden copiar o fer un enllaç simbòlic per a utilitzar-los en la pròpia configuració.

546

###### 9.2.3 Scripts ganxo en temps d'arrencada

547

Per a executar ordres durant l'arrencada, es pot proporcionar scripts ganxo per a live-config com s'explica a la secció "Personalització" de la seva pàgina del manual. Es poden afegir els ganxos de live-config a `/lib/live/config/`, tenint en compte la seqüència dels números. A continuació, afegir el script ganxo propi amb un número de seqüència apropiat com a prefix, ja sigui com a un chroot local include a `config/includes.chroot/lib/live/config/`, o com un paquet personalitzat com es va discutir a Instal·lació de paquets modificats o de tercers.

548

##### 9.3 Preconfiguració de les preguntes de Debconf

549

Els fitxers del directory `config/preseed/` amb el sufix `.cfg` seguits del sufix de l'etapa (`.chroot` o `.binary`) son considerats fitxers de preconfiguració de debconf i són instal·lats per live-build utilitzant `debconf-set-selections` durant l'etapa corresponent.

550

Per a més informació sobre debconf, veure `debconf(7)` del paquet debconf.

551

# Personalització dels comportaments en temps d'execució

552

#### 10. Personalització dels comportaments en temps d'execució

553

Tota la configuració que es fa durant l'execució es feta per live-config. Aquestes són algunes de les opcions més comunes de live-config en que els usuaris estan interessats. Una llista completa de totes les possibilitats es poden trobar a la pàgina del manual de live-config.

554

##### 10.1 Personalitzar l'usuari en viu

555

Una consideració important és que l'usuari en viu es creat per live-boot durant l'arrencada i no per live-build en temps de construcció. Això influeix no només en on s'han de introduir els materials relacionats amb l'usuari durant la construcció, tal i com es va explicar a Live/chroot local includes, sinó també en els grups i els permisos associats amb l'usuari.

556

You can specify additional groups that the live user will belong to by using any of the possibilities to configure live-config. For example, to add the live user to the `fuse` group, you can either add the following file in `config/includes.chroot/etc/live/config.conf.d/10-user-setup.conf`:

557

LIVE_USER_DEFAULT_GROUPS="audio cdrom dip floppy video plugdev netdev powerdev scanner bluetooth fuse"

558

o utilitzar `live-config.user-default-groups=audio,cdrom,dip,floppy,video,plugdev,netdev,powerdev,scanner,bluetooth,fuse` com paràmetre d'arrencada.

559

També és possible canviar el nom de l'usuari per defecte "user" i la contrasenya per defecte "live". Si es vol fer això per alguna raó, es pot aconseguir fàcilment de la següent manera:

560

Per a canviar el nom de l'usuari per defecte només s'ha d'especificar en la configuració:

561

$ lb config --bootappend-live "boot=live components username=live-user"

562

Una forma possible de canviar la contrasenya per defecte és per mitjà d'un ganxo com s'explica a Scripts ganxo durant l'arrencada. Per a fer això, es pot utilitzar el script ganxo "passwd" de `/usr/share/doc/live-config/examples/hooks`, posar-li un prefix adequat (per exemple 2000-passwd) i afegir-lo a `config/includes.chroot/lib/live/config/`

563

##### 10.2 Personalització de l'entorn local i el llenguatge

564

Quan el sistema en viu arrenca, el llenguatge està implicat en dos passos:

565

- la generació de locales

566

- establir la configuració del teclat

567

La configuració local per defecte en la construcció d'un sistema viu és `locales=en_US.UTF-8`. Per a definir la locale que s'ha de generar, utilitzar el paràmetre `locales` de la opció `--bootappend-live` de `lb config`, per exemple.

568

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8"

569

Es poden especificar diverses locales en una llista separada per comes.

570

Aquest paràmetre, així com els paràmetres de configuració del teclat que s'indiquen a continuació, també es pot utilitzar en la línia d'ordres del nucli. Es pot especificar una configuració regional mitjançant `language_country` (en aquest cas s'utilitza la codificació per defecte) o la forma completa `language_country.encoding`. Una llista de locales suportades i la codificació per a cadascuna es poden trobar a `/usr/share/i18n/SUPPORTED`.

571

`live-config` s'encarrega de la configuració del teclat per a X i per a la consola utilitzant el paquet `console-setup`. Per a la seva configuració es pot fer servir els paràmetres d'arrencada `keyboard-layouts`, `keyboard-variants`, `keyboard-options` i `keyboard-model` mitjançant l'opció `--bootappend-live`. Es poden trobar opcions vàlides per a aquests a `/usr/share/X11/xkb/rules/base.lst`. Per a trobar distribucions de teclat i variants per a un idioma determinat, s'ha d'intentar cercar el nom en anglès de la llengua i/o el país on es parla l'idioma, per exemple:

572

$ egrep -i '(^!|german.*switzerland)' /usr/share/X11/xkb/rules/base.lst
! model
! layout
ch German (Switzerland)
! variant
legacy ch: German (Switzerland, legacy)
de_nodeadkeys ch: German (Switzerland, eliminate dead keys)
de_sundeadkeys ch: German (Switzerland, Sun dead keys)
de_mac ch: German (Switzerland, Macintosh)
! option

573

Tinir en compte que cada variant mostra la distribució que s'aplica en la descripció.

574

Sovint, només la distribució necessita ser configurada. Per exemple, per a obtenir els fitxers de configuració regional per a la distribució del teclat alemany i suís-alemany per a l'entorn gràfic X:

575

$ lb config --bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch"

576

No obstant això, per als casos d'ús molt específics, potser es vol incloure altres paràmetres. Per exemple, per a establir un sistema francès, amb una distribució de teclat French-Dvorak (anomenat Bepo) en un teclat USB TypeMatrix EZ-Reach 2030, utilitzar:

577

$ lb config --bootappend-live \
"boot=live components locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-variants=bepo keyboard-model=tm2030usb"

578

Es poden especificar diversos valors per a cada una de les opcions `keyboard-*` en una llista separada per comes amb l'excepció de `keyboard-model`, que només accepta un valor. Veure la pàgina del manual `keyboard(5)` per a més detalls i exemples de les variables `XKBMODEL`, `XKBLAYOUT`, `XKBVARIANT` i `XKBOPTIONS`. Si s'especifiquen diversos valors de `keyboard-variants` es correspondran un a un amb els valors `keyboard-layouts` (veure `setxkbmap(1)` opció `-variant`). Es poden utilitzar valors buits, per exemple, per a definir dos dissenys, el valor predeterminat US QWERTY i l'altre US Dvorak:

579

$ lb config --bootappend-live \
"boot=live components keyboard-layouts=us,us keyboard-variants=,dvorak"

580

##### 10.3 Persistència

581

Un paradigma d'un live cd és ser un sistema pre-instal·lat, que arrenca desde medis de només lectura, com un cdrom, on les modificacions no sobreviuen als reinicis del maquinari que l'executa.

582

Un sistema en viu és una generalització d'aquest paradigma i per tant, compatible amb altres medis, a més dels CDs, però tot i així, en el seu comportament per defecte, s'ha de considerar de només lectura i totes les evolucions en temps d'execució del sistema es perden al apagar l'equip.

583

La "Persistència" és un nom comú per a nomenar els diferents tipus de solucions per a guardar després de reiniciar algunes, o totes, les dades d'aquesta evolució en temps d'execució del sistema. Per a entendre com funciona, seria útil saber que, encara que el sistema s'inicia i s'executa des de medis de només lectura, les modificacions als fitxers i directoris s'escriuen ens medis d'escriptura, en general un ramdisk (tmpfs) i les dades dels discos ram no sobreviuen als reinicis.

584

Les dades emmagatzemades en aquest disc ram han de ser guardades en un suport d'escriptura persistent com medis d'emmagatzematge locals, un recurs compartit de xarxa o fins i tot una sessió d'una multisessió de un CD/DVD (re)grabable. Tots aquests medis són compatibles amb el sistemes en viu de diferents maneres, i tots menys l'últim, requereixen un paràmetre especial que s'especifica en l'arrencada: `persistence`.

585

Si s'utilitza el paràmetre d'arrencada `persistence` (i no s'utilitza `nopersistence`) es proven els medis locals d'emmagatzematge (per exemple, discs durs, unitats USB) buscant volums amb persistència durant l'arrencada. És possible restringir els tipus de volums amb persistència que s'utilitzarà mitjançant l'especificació de certs paràmetres d'arrencada que es descriuen a la pàgina del manual de live-boot(7). Un volum amb persistència és qualsevol dels següents:

586

- una partició, identificada pel seu nom GPT.

587

- un sistema de fitxers, identificat per la seva etiqueta de sistema de fitxers.

588

- un fitxer imatge situat en l'arrel de qualsevol sistema de fitxers llegibles (fins i tot una partició NTFS d'un altre SO), identificat pel seu nom de fitxer.

589

L'etiqueta de volum per als overlays ha de ser `persistence` però serà passat per alt a menys que contingui un fitxer anomenat `persistence.conf` que s'utilitza per a personalitzar completament la persistència del volum, és a dir, especificar els directoris que es volen conservar en el volum de persistència després de reiniciar. Veure El fitxer persistence.conf per a més detalls.

590

Aquests són alguns exemples de com preparar un volum que s'utilitzarà per a la persistència. Pot ser, per exemple, una partició ext4 en un disc dur o en una clau USB creat amb, per exemple:

591

# mkfs.ext4 -L persistence /dev/sdb1

592

Veure també Utilitzar l'espai lliure en una memòria USB.

593

Si ja hi ha una partició al dispositiu, és pot canviar l'etiqueta amb un dels següents:

594

# tune2fs -L persistence /dev/sdb1 # for ext2,3,4 filesystems

595

Heus aquí un exemple de com crear un fitxer imatge basat en ext4 per a ser utilitzat per a la persistència:

596

$ dd if=/dev/null of=persistence bs=1 count=0 seek=1G # for a 1GB sized image file
$ /sbin/mkfs.ext4 -F persistence

597

Un cop s'ha creat el fitxer imatge, per exemple, per a fer `/usr` persistent però només guardant els canvis que es fan en aquest directori i no tots els continguts de `/usr`, es pot utilitzar l'opció "union". Si el fitxer imatge es troba en el directori home, copiar-lo a l'arrel del sistema de fitxers del disc dur i muntar-lo a `/mnt` de la següent manera:

598

# cp persistence /
# mount -t ext4 /persistence /mnt

599

A continuació, crear el fitxer `persistence.conf` afegint contingut i desmuntar el fitxer imatge.

600

# echo "/usr union" >> /mnt/persistence.conf
# umount /mnt

601

Ara, reiniciar el sistema i arrencar el medi en viu amb el paràmetre d'arrencada "persistence".

602

###### 10.3.1 El fitxer persistence.conf

603

Un volum amb l'etiqueta `persistence` ha de ser configurat mitjançant un fitxer `persistence.conf` per a fer directoris arbitraris persistents. Aquest fitxer, ubicat a l'arrel del sistema de fitxers del volum, controla els directoris que fa persistents, i de quina manera.

604

A la pàgina del manual de persistence.conf(5) s'explica en detall com es configuran els muntatges de les overlays, però un simple exemple hauria de ser suficient per a la majoria d'usos. Si es vol fer el directori home i el directori del cache d'APT persistents en un sistema de fitxers ext4 a la partició /dev/sdb1:

605

# mkfs.ext4 -L persistence /dev/sdb1
# mount -t ext4 /dev/sdb1 /mnt
# echo "/home" >> /mnt/persistence.conf
# echo "/var/cache/apt" >> /mnt/persistence.conf
# umount /mnt

606

Després es reinicia el sistema. Durant la primera arrencada els continguts de `/home` i `/var/cache/apt` es copiaran en el volum de la persistència, i d'aquí en endavant tots els canvis en aquests directoris es guardaran en aquest volum. Tenir en compte que les rutes que apareixen en el fitxer `persistence.conf` no poden contenir espais en blanc o els components especials `.` i `..`. A més, ni `/lib`, `/lib/live` (o qualsevol dels seus subdirectoris) ni `/` es poden fer persistents utilitzant muntatges personalitzats. Com a solució per a aquesta limitació es pot afegir `/ union` al fitxer `persistence.conf` per a aconseguir una persistència completa.

607

###### 10.3.2 Utilitzar diversos medis persistents

608

Hi ha diferents mètodes per utilitzar múltiples volums de persistència per a diferents casos d'ús. Per exemple, utilitzar diversos volums al mateix temps o seleccionar-ne només un, entre varis, per a fins molt específics.

609

Es poden utilitzar diversos volums diferents de muntatges personalitzats (amb els seus propis fitxers `persistence.conf` però si diversos volums fan que el mateix directori sigui persistent, només s'utilitzarà un d'ells. Si qualsevol dels dos muntatges són "imbricats" (és a dir, un és un sub-directori de l'altre) el directori pare es muntarà abans que el directori fill per a evitar que amb el muntatge un directori no sigui ocultat per l'altre. Els muntatges personalitzats imbricats són problemàtics si estan enumerats en el mateix fitxer `persistence.conf`. Veure la pàgina del manual persistence.conf(5) per a saber com manejar aquest cas, si realment es necessita (una pista: en general no cal fer-ho).

610

Un possible cas d'ús: Per a guardar les dades de l'usuari, és a dir `/home` i les dades del superusuari, és a dir `/root` en diferents particions, crear dues particions amb l'etiqueta `persistence` i afegir un fitxer `persistence.conf` en cadascuna d'aquesta manera `# echo "/home" > persistence.conf` per a la primera partició que guardarà els fitxers de l'usuari i `# echo "/root" > persistence.conf` per a la segona partició que emmagatzemarà els fitxers del superusuari. Finalment, utilitzar el paràmetre d'arrencada `persistence`.

611

Si un usuari necessita múltiples volums de persistència del mateix tipus per a diferents ubicacions o proves, com `private` i `work`, el paràmetre d'arrencada `persistence-label` utilitzat juntament amb el paràmetre d'arrencada `persistence` permetrà tenir diversos dispositius amb la mateixa, però única, persistència. Un exemple seria si un usuari vol utilitzar una partició amb persistència amb l'etiqueta `private` per a dades personals com els marcadors d'un navegador, utilitzaria els paràmetres d'arrencada: `persistence` `persistence-label=private`. I per emmagatzemar dades relacionades amb el treball, com a documents, projectes de recerca o d'un altre tipus, utilitzaria els paràmetres d'arrencada: `persistence` `persistence-label=work`.

612

És important recordar que aquests volums, `private` i `work`, també necessiten tenir un fitxer `persistence.conf` en la seva arrel. La pàgina de manual de live-boot conté més informació sobre com utilitzar aquestes etiquetes amb els noms més antics.

613

###### 10.3.3 Persistència amb xifratge

614

Utilitzar la persistència vol dir que algunes dades sensibles poden quedar exposades a risc. Especialment si les dades persistents s'emmagatzemen en un dispositiu portàtil com una memòria USB o un disc dur extern. És llavors quan el xifrat entra en joc. Fins i tot si el procediment pot semblar complicat a causa de la quantitat de passos que s'han de fer, és molt fàcil manejar particions xifrades amb live-boot. Per a utilitzar luks, que és el tipus de xifrat compatible, es necessita instal·lar cryptsetup tant en la màquina que crearà la partició xifrada com en el sistema en viu amb que es va a utilitzar la partició persistent xifrada.

615

Per a instal·lar cryptsetup a la nostra màquina:

616

# apt-get install cryptsetup

617

Per a instal·lar cryptsetup en el sistema viu, afegir-lo a una package-lists:

618

$ lb config
$ echo "cryptsetup cryptsetup-initramfs" > config/package-lists/encryption.list.chroot

619

Una cop tinguem el nostre sistema en viu amb cryptsetup, bàsicament, només hem de crear una nova partició, xifrar-la i arrencar amb els paràmetres `persistence` i `persistence-encryption=luks`. Podríem haver anticipat aquest pas i afegit els paràmetres d'arrencada seguint el procediment habitual:

620

$ lb config --bootappend-live "boot=live components persistence persistence-encryption=luks"

621

Anem a entrar en els detalls per a tothom que no està familiaritzat amb el xifrat. En el següent exemple utilitzarem una partició en un dispositiu USB que correspon a `/dev/sdc2`. Tenir en compte que cal determinar quina partició és la que es va a utilitzar en cada cas específic.

622

El primer pas és connectar la memòria usb i determinar de quin dispositiu es tracta. La manera més recomanable per a llistar dispositius és utilitzar `ls -l /dev/disk/by-id`. Després d'això, crear una nova partició i, a continuació, xifrar-la amb una frase de contrasenya de la següent manera:

623

# cryptsetup --verify-passphrase luksFormat /dev/sdc2

624

A continuació, obrir la partició luks al mapeador de dispositius virtuals. Es pot utilitzar qualsevol nom que es desitgi. Aquí utilitzem live com a exemple:

625

# cryptsetup luksOpen /dev/sdc2 live

626

El següent pas és omplir el dispositiu amb zeros abans de crear el sistema de fitxers:

627

# dd if=/dev/zero of=/dev/mapper/live

628

Ara, estem preparats per a crear el sistema de fitxers. Noteu que estem afegint l'etiqueta `persistence` perquè el dispositiu es munti com a magatzem de persistència durant l'arrencada.

629

# mkfs.ext4 -L persistence /dev/mapper/live

630

Per continuar amb la nostra configuració, necessitem muntar el dispositiu, per exemple, a `/mnt`.

631

# mount /dev/mapper/live /mnt

632

I crear el fitxer `persistence.conf` a l'arrel de la partició. Això és, com s'ha explicat abans, estrictament necessari. Veure El fitxer persistence.conf.

633

# echo "/ union" > /mnt/persistence.conf

634

Desmuntar el punt de muntatge:

635

# umount /mnt

636

I opcionalment, encara que podria ser una bona manera de protegir les dades que acabem d'agregar a la partició, podem tancar el dispositiu:

637

# cryptsetup luksClose live

638

Anem a resumir el procés. Fins ara, hem creat un sistema viu capaç de manejar xifratge, que es pot copiar a una memòria USB com s'explica a Copiar una imatge ISO híbrida en un dispositiu USB. També hem creat una partició xifrada, que es pot situar en la mateixa memòria USB per portar a tot arreu i hem configurat la partició xifrada per ser utilitzada com a magatzem de persistència. Així que ara, només hem de arrencar el sistema en viu. En el moment d'arrencar, live-boot ens preguntarà la frase de contrasenya i muntarà la partició xifrada per a ser utilitzada per a la persistència.

639

# Personalització de la imatge binària

640

#### 11. Personalització de la imatge binària

641

##### 11.1 Carregadors d'arrencada

642

live-build utilitza syslinux i alguns dels seus derivats (depenent del tipus d'imatge) com carregadors d'arrencada per defecte. Es poden personalitzar fàcilment per satisfer totes les necessitats.

643

Per a utilitzar un tema complet, copiar `/usr/share/live/build/bootloaders` a `config/bootloaders` i editar els fitxers allí. Si no es vol modificar totes les configuracions dels carregadors d'arrencada disponibles, només cal utilitzar una còpia local personalitzada d'un dels carregadors, per exemple, copiar la configuració d'isolinux a `config/bootloaders/isolinux` ja és suficient, depenent del cas d'ús.

644

Quan es modifica un dels temes per defecte, si es vol utilitzar una imatge de fons personalitzada que es mostrarà juntament amb el menú d'arrencada, es pot afegir una imatge de 640x480 píxels. Aleshores, esborrar el fitxer splash.svg.

645

Hi ha moltes possibilitats a l'hora de fer canvis. Per exemple, els derivats de syslinux estan configurats per defecte amb un temps d'espera de 0 (zero) el que significa que faran una pausa indefinida en la seva pantalla inicial fins que es premi una tecla.

646

Per a modificar el temps d'espera d'arrencada d'una imatge `iso-hybrid` es pot editar el fitxer isolinux.cfg especificant el temps d'espera en unitats de segons 1/10. Un fitxer isolinux.cfg modificat per a arrencar després de cinc segons seria semblant a aquest:

647

include menu.cfg
default vesamenu.c32
prompt 0
timeout 50

648

##### 11.2 metadades ISO

649

Quan es crea una imatge binària ISO9660, es poden utilitzar les següents opcions per a afegir diverses metadades textuals. Això pot ajudar a identificar fàcilment la versió o la configuració d'una imatge sense arrencar-la.

650

- `LB_ISO_APPLICATION/--iso-application NAME`: Ha de descriure l'aplicació que serà a la imatge. La longitud màxima per a aquest camp és de 128 caràcters.

651

- `LB_ISO_PREPARER/--iso-preparer NAME`: Ha de descriure al preparador de la imatge, en general amb algunes dades de contacte. El valor per defecte per a aquesta opció és la versió de live-build utilitzada, la qual cosa pot ajudar amb la depuració d'errors posterior. La longitud màxima per a aquest camp és de 128 caràcters.

652

- `LB_ISO_PUBLISHER/--iso-publisher NAME`: Ha de descriure l'editor de la imatge, en general amb algunes dades de contacte. La longitud màxima per a aquest camp és de 128 caràcters.

653

- `LB_ISO_VOLUME/--iso-volume NAME`: Això ha d'especificar l'ID de volum de la imatge. Això s'utilitza com una etiqueta visible per a l'usuari en algunes plataformes com Windows i Apple Mac OS. La longitud màxima per a aquest camp és de 32 caràcters.

654

# Personalització de l'instal·lador de debian

655

#### 12. Personalització de l'instal·lador de debian

656

Les imatges del sistema en viu es poden integrar amb l'instal·lador de Debian. Hi ha un nombre de diferents tipus d'instal·lació, que varien en el que s'inclou i en com opera l'instal·lador.

657

Tenir en compte l'ús acurat de les lletres majúscules quan es refereix a "l'instal·lador de Debian" en aquesta secció - quan s'utilitza així ens referim explícitament a l'instal·lador normal del sistema Debian, i no a una altra cosa. Es veu sovint abreujat com "d-i".

658

##### 12.1 Tipus d'instal·lador de Debian

659

Els tres principals tipus d'instal·lador són els següents:

660

Instal·lador de Debian "Normal": Aquesta és una imatge normal de sistema en viu amb un nucli i initrd independents que (quan es seleccionen des del carregador d'arrencada adequat) realitzen una instal·lació estàndard de Debian, igual que si s'hagués descarregat i arrencat una imatge de Debian des d'un CD. Les imatges que contenen un sistema viu i aquest tipus d'instal·lador independent s'anomenen sovint "imatges combinades".

661

Amb aquest tipus d'imatges, Debian s'instal·la descarregant i instal·lant paquets .deb mitjançant debootstrap, des dels medis locals o alguna xarxa, aixó resulta en un sistema Debian per defecte instal·lat al disc dur.

662

Tot aquest procés pot ser preconfigurat i personalitzadat de moltes formes, veure les pàgines corresponents al manual de l'instal·lador de Debian per a més informació. Quan es té un fitxer de preconfiguració que funcioni, live-build pot posar-lo automàticament a la imatge i activar-lo.

663

Instal·lador de Debian "Live": Aquesta és una imatge en viu amb un nucli i initrd independents que (quan es seleccionen des del carregador d'arrencada adequat) llancen un instal·lador de Debian.

664

La instal·lació continuarà de forma idèntica a l'instal·lació que s'ha descrit anteriorment, però en la fase d'instal·lació dels paquets, en lloc d'utilitzar debootstrap per a buscar-los i instalar-los, es copia el sistema de fitxers viu a la destinació. Això s'aconsegueix amb un udeb especial anomenat live-installer.

665

Després d'aquesta etapa, l'instal·lador de Debian continua de forma normal, instal·lant i configurant elements com ara els gestors d'arrencada i els usuaris locals, etc

666

Nota: per a donar suport a les entrades de l'instal·lador normal i live en el gestor d'arrencada del mateix medi s'ha de desactivar el live-installer mitjançant la preconfiguració `live-installer/enable=false`.

667

Instal·lador de Debian "d'escriptori": Independentment del tipus d'instal·lador de Debian inclòs, es pot iniciar el `d-i` des de l'escriptori fent clic damunt una icona. Aixó és senzill per a l'usuari però perquè funcioni s'ha d'afegir el paquet debian-installer-launcher.

668

Tenir en compte que, per defecte, live-build no inclou imatges de l'instal·lador de Debian en les imatges, ha de ser específicament activat amb `lb config`. A més, tenir en compte que per a que funcioni l'instal·lador "d'escriptori" el nucli del sistema viu ha de coincidir amb el nucli que el `d-i` utilitza per a l'arquitectura especificada. Per exemple:

669

$ lb config --debian-installer live
$ echo debian-installer-launcher >> config/package-lists/my.list.chroot

670

##### 12.2 Personalització de l'instal·lador de Debian amb preconfiguració

671

As described in the Debian Installer Manual, Appendix B at ‹https://www.debian.org/releases/stable/amd64/apb.en.html›, "Preseeding provides a way to set answers to questions asked during the installation process, without having to manually enter the answers while the installation is running. This makes it possible to fully automate most types of installation and even offers some features not available during normal installations." This kind of customization is best accomplished with live-build by placing the configuration in a `preseed.cfg` file included in `config/includes.installer/`. For example, to preseed setting the locale to `en_US`:

672

$ echo "d-i debian-installer/locale string en_US" \
>> config/includes.installer/preseed.cfg

673

##### 12.3 Personalitzar el contingut de l'instal·lador de Debian

674

Per motius experimentals o de depuració d'errors, és possible que es vulgui incloure paquets udeb creats localment per al `d-i`. Per a afegir-los a la imatge posar-los a `config/packages.binary/`. Es poden incloure fitxers addicionals o de substitució i alguns directoris a l'initrd de l'instal·lador d'una manera similar a Live/chroot local includes, posant el material a `config/includes.installer/`.

675

# Projecte

676

# Contribuir al projecte

677

#### 13. Contribuir al projecte

678

Quan s'envia una contribució, s'ha d'identificar clarament el titular dels drets d'autor i incloure la declaració de concessió de llicències aplicables. Recordar que per a ser acceptada, la contribució ha de tenir una llicencia igual que la resta del document, a saber, la versió de la GPL 3 o superior.

679

Contributions to the project, such as translations and patches, are greatly welcome. Anyone can send merge requests. The projects are hosted on Salsa: ‹https://salsa.debian.org/live-team› follow Salsa's documentation for instructions on how to contribute.

680

Tot i que tots els lliuraments poden ser revisats, demanem que s'utilitzi el sentit comú i es facin bons lliuraments amb bons missatges.

681

- Escriure missatges de lliurament que consisteixen en oracions completes i significatives en anglès, començant amb una lletra majúscula i acabant amb un punt. En general, aquests començaran amb la forma 'Fixing/Adding/Removing/Correcting/Translating/...'.

682

- Escriure bons missatges de lliurament. La primera línia ha de ser un resum exacte dels continguts del lliurament, que s'inclourà en la llista de canvis. Si es necessita fer algunes explicacions més, escriure a sota deixant una línia en blanc després de la primera línea i després una altra línia en blanc després de cada paràgraf. Les línies dels paràgrafs no han de superar els 80 caràcters de longitud.

683

- Fer lliuraments de manera atòmica, és a dir, no barrejar coses no relacionades en el mateix lliurament. Fer un lliurament diferent per a cada canvi que es faci.

684

##### 13.1 Traducció de pàgines dels manuals

685

També es pot contribuir al projecte treballant en la traducció de les pàgines dels manuals dels diferents paquets live-* que el projecte manté. El procediment pot ser diferent, depenent de si s'està començant una traducció des de zero o si es segueix treballant en una ja existent:

686

- Continuar amb una traducció ja començada

687

Si es vol treballar en la traducció d'una llengua ja existent s'ha de fer els canvis als fitxers que hi ha dins `manpages/po/${LANGUAGE}/*.po` i després executar `make rebuild` des de dins del directori `manpages/`. Això actualitzarà les pàgines a `manpages/${LANGUAGE}/*`

688

- Començar una nova traducció des de zero

689

Per afegir una nova traducció de qualsevol de les pàgines dels manuals del projecte s'ha de seguir un procediment similar. Es podria resumir de la següent manera:

690

- Obrir el fitxer o fitxers que hi ha a `manpages/pot/` en el teu editor preferit, com per exemple poedit, i guardar-lo com un fitxer .po a `manpages/po/${LANGUAGE}/`. (S'haurà de crear el directori del `${LANGUAGE}/` corresponent).

691

- Executar `make rebuild` dins el directori `manpages/` per a crear els fitxers a `manpages/${LANGUAGE}/` que contindran les pàgines dels manuals.

692

Recordar que cal afegir tots els directoris i fitxers, i després fer el commit i finalment fer un git push al servidor git.

693

# Informar dels errors

694

#### 14. Informar dels errors

695

Live systems està lluny de ser perfecte, però volem que sigui el més perfecte possible - amb la vostra ajuda. No dubtar d'informar sobre un error. És millor omplir un informe dues vegades que mai. No obstant això, aquest capítol inclou recomanacions sobre com presentar bons informes d'errors.

696

Per als impacients

697

- First check whether the bugs has been reported already. You can see the full list of bugs that are assigned to the live-team at ‹https://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=debian-live%40lists.debian.org›.

698

- Before submitting a bug report always try to reproduce the bug with the most recent versions of the packages of live-build, live-boot, live-config and live-tools that you're using.

699

- Intentar donar la informació més específica possible sobre l'error. Això inclou (almenys) la versió de live-build, live-boot, live-config i live-tools i la distribució del sistema en viu que s'està construint.

700

##### 14.1 Problemes coneguts

701

Currently known issues are listed in the BTS at ‹https://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=debian-live%40lists.debian.org›.

702

Note: Since Debian testing and Debian unstable distributions are moving targets, when you specify either of them as the target system distribution, a successful build may not always be possible.

703

Si això és massa difícil, no construir un sistema basat en testing o unstable, sinó més aviat, utilitzar stable. live-build sempre construeix la versió stable per defecte.

704

It is out of the scope of this manual to train you to correctly identify and fix problems in packages of the development distributions, however, you can always try the following: If a build fails when the target distribution is testing, try unstable. If unstable does work, revert to testing and pin the newer version of the failing package from unstable (see APT pinning for details).

705

##### 14.2 Fer la recerca

706

Abans de presentar l'informe d'errors, cercar a la web el missatge d'error o símptoma que s'està rebent. Ja que és molt poc probable que sigui l'única persona que té un problema en particular. Sempre hi ha una possibilitat que hagi estat discutit en un altre lloc i hi hagi una possible solució, pegat o s'hagi proposat una solució alternativa.

707

S'ha de prestar especial atenció a la llista de correu dels sistemes en viu, així com a la pàgina web, ja que és probable que continguin la informació més actualitzada. Si aquesta informació existeix, incloure una referènca a aquesta en l'informe d'errors.

708

A més, s'hauria de comprovar les llistes d'errors actuals de live-build, live-boot, live-config i live-tools per a veure si ja s'ha informat sobre alguna cosa semblant .

709

##### 14.3 Reconstruir des de zero

710

Per a assegurar-se que un error en particular no és causat per un sistema mal construït, reconstruir sempre tot el sistema en viu a partir de zero per veure si l'error és reproduïble.

711

##### 14.4 Fer servir paquets actualitzats

712

Using outdated packages can cause significant problems when trying to reproduce (and ultimately fix) your problem. Make sure your build system is up-to-date and any packages included in your image are up-to-date as well. If possible, try to reproduce the bug with the newest code from source, see Installation for details.

713

##### 14.5 Recopilar informació

714

Proporcionar informació suficient amb l'informe. Incloure, com a mínim, la versió exacta de live-build i els passos per a reproduir-lo. Utilitzar el sentit comú i proporcionar tota altra informació pertinent si es pensa que aixó pot ajudar a resoldre el problema.

715

Per a treure el màxim profit del informe d'errors, es requereix com a mínim la informació següent:

716

- Arquitectura del sistema amfitrió

717

- Distribució del sistema amfitrió

718

- Versió de live-build al sistema amfitrió

719

- Versió de debootstrap al sistema amfitrió

720

- Arquitectura del sistema en viu

721

- Distribució del sistema en viu

722

- Versió de live-boot al sistema amfitrió

723

- Versió de live-config al sistema amfitrió

724

- Versió de live-tools al sistema amfitrió

725

Es pot generar un log del procés de construcció mitjançant l'ordre `tee`. Recomanem fer-ho automàticament amb un script `auto/build` (veure Gestió d'una configuració per a més detalls).

726

# lb build 2>&1 | tee build.log

727

Durant l'arrencada, live-boot i live-config emmagatzemen els seus logs a `/var/log/live/`. Comprovar aquest fitxers per a detectar missatges d'error.

728

A més, per a descartar altres errors, sempre és una bona idea comprimir el directori `config/` i pujar-lo a algun lloc (no enviar-lo com arxiu adjunt a la llista de correu), perquè puguem tractar de reproduir els errors que s'han trobat. Si això és difícil (per exemple, a causa de la mida del arxiu) es pot utilitzar la sortida de `lb config --dump` que produeix un resum del arbre de configuració (és a dir, fa un llistat dels fitxers dins els subdirectoris de `config/`, però no els inclou).

729

Recordar que s'ha d'enviar qualsevol log que es produeixi amb la configuració regional en anglès, per exemple, executar les ordres de live-build començant per `LC_ALL=C` o `LC_ALL=en_US`.

730

##### 14.6 Aïllar el cas que falla, si és possible

731

Si pot ser, aïllar el cas que falla al canvi més petit possible que fa que no funcioni. No sempre és fàcil fer això, per tant, si no es possible fer-ho pel informe, no preocupar-se. No obstant això, si es planeja bé el cicle de desenvolupament, i s'utilitzen petits conjunts de canvis suficients per iteració, es pot ser capaç d'aïllar el problema mitjançant la construcció d'una configuració 'base' més senzilla que s'ajusti a la configuració desitjada més el conjunt de canvis que fa que no funcioni. Si es dificil classificar quins canvis fan que falli, pot ser que s'inclogui massa en cada conjunt de canvis i s'ha de desenvolupar en petits increments.

732

##### 14.7 Utilitzar el paquet correcte per a informar de l'error

733

En general, s'ha d'informar dels errors en temps de construcció contra el paquet live-build, dels errors durant l'arrencada contra live-boot i dels errors de temps d'execució contra live-config. Si no s'està segur de quin paquet és l'adequat o es necessita més ajuda abans d'enviar un informe d'errors, informar contra el pseudopaquet debian-live. Nosaltres ens farem càrrec d'ell i el reassignarem on sigui procedent.

734

No obstant això, estarem molt agraïts si s'intenta limitar la recerca segons el lloc on apareix l'error.

735

###### 14.7.1 A l'hora de construir mentre bootstrapping

736

live-build crea primer un sistema Debian bàsic amb debootstrap. Si un error apareix aquí, comprovar si l'error està relacionat amb un paquet específic de Debian (el més probable), o si està relacionat amb l'eina debootstrap en si mateixa.

737

En ambdós casos, això no és un error del sistema en viu, sinó de Debian en si mateix i, probablement, no ho podem arreglar directament. Informar del error sobre l'eina de debootstrapping o el paquet que falla.

738

###### 14.7.2 A l'hora de construir, durant la instal·lació de paquets

739

live-build instal·la paquets addicionals del arxiu de Debian i en funció de la distribució Debian utilitzada i de l'estat diari de l'arxiu, pot fallar. Si un error apareix aquí, comprovar si l'error és també reproduïble en un sistema normal.

740

Si aquest és el cas, no es tracta d'un error del sistema en viu, sinó de Debian - Informar d'això sobre el paquet que falla. Executar debootstrap per separat de la construcció del sistema Live o executar `lb bootstrap --debug` per a tenir més informació.

741

A més, si es fa servir un mirall local i/o qualsevol tipus de proxy i s'està experimentant algun problema, sempre s'ha de mirar de reproduir-lo fent un bootstrapping a partir d'un mirall oficial.

742

###### 14.7.3 En el moment d'arrencar

743

Si la imatge no arrenca, informar a la llista de correu, juntament amb la informació sol·licitada a Recopilar informació. No oblidar-se d'esmentar, com/quan la imatge falla, ja sigui amb virtualització o maquinari real. Si s'utilitza una tecnologia de virtualització d'algun tipus, sempre fer la prova amb maquinari real abans d'informar d'un error. Proporcionar una captura de pantalla de l'error és també molt útil.

744

###### 14.7.4 En temps d'execució

745

If a package was successfully installed, but fails while actually running the Live system, this is probably a bug in live-config.

746

##### 14.8 On informar dels errors

747

El Debian Live Project manté un registre de tots els errors en el sistema de seguiment d'errors de Debian (BTS). per a obtenir informació sobre la utilització del sistema, es pot consultar ‹https://bugs.debian.org/›. També es poden enviar els informes dels errors mitjançant l'ordre `reportbug` del paquet amb el mateix nom.

748

Tenir en compte que els errors trobats en les distribucions derivades de Debian (com Ubuntu i altres) no han de ser enviats al BTS de Debian tret que puguin ser reproduïts també en sistemes Debian utilitzant paquets oficials de Debian.

749

# Estil de Codi

750

#### 15. Estil de Codi

751

En aquest capítol es documenta l'estil de codi utilitzat a live systems.

752

##### 15.1 Compatibilitat

753

- Avoid "bashisms", the codebase must be POSIX compliant and thus universally compatible.

754

- Furthermore it must comply with the version of the POSIX specification chosen by the current Debian Policy.

755

- Es pot comprovar els scripts amb 'sh -n' i 'checkbashisms'.

756

- Assegurar-se que tot el codi funciona amb 'set -e'.

757

##### 15.2 Indentació

758

- Utilitzar sempre tabuladors en lloc d'espais.

759

- Keep case branch terminators (";;") aligned with the "content" of the branch, rather than the branch "entry".

760

Bé:

761

case "${1}" in
foo)
foobar
;;
bar)
foobar
;;
esac

762

##### 15.3 Ajust de línia

763

- Generally, lines should be 80 chars at maximum.

764

- Placement of keywords like `then` and `do` should be chosen with good judgement with respect to clutter and readability. For small bits of code in particular it should be preferred to have them on the same line as the prior keyword they relate to (`if`; `for`; etc). Only place on the next line where it makes good sense to do so; typically this might only be to comply with maximum line length restrictions. One situation where they should always be placed on the next line is where what they follow is broken up onto multiple lines, and thus it being on a new line creates clear separation between that and the body of code following it. I.e. :

765

Preferred:

766

if foo; then
bar
fi
for FOO in $ITEMS; do
bar
done
if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ]
then
MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi
if [ "${MY_FOO}" = "something" ] && [ -e "path/${FILE_1}" ] ||
[ "${MY_BAR}" = "something_else" ] && [ ${ALLOW} = "true" ]
then
foobar
fi

767

Less ideal:

768

if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ]; then
MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi

769

Horrible:

770

if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ] || [ "${MY_LOCATION_VARIABLE}" = "something-else" ] && [ -e "${MY_OUTPUT_FILE_2}" ]; then
MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi

771

- Prefer placing the opening brace of a function on a new line (for consistency with established style), and keep the braces aligned with the function name:

772

Bé:

773

Foo ()
{
bar
}

774

Bad (inconsistent with existing style):

775

Foo () {
bar
}

776

Awful:

777

Foo ()
{
bar
}

778

##### 15.4 Variables

779

- Les variables van sempre en majúscules.

780

- Config variables used in live-build should start with an `LB_` prefix.

781

- Local function variables should be restricted to local scope.

782

- Les variables en relació a un paràmetre d'arrencada de live-config comencen amb `LIVE_`.

783

- Totes les altres variables de live-config comencen amb el prefix `_`

784

- Utilitzar claus al voltant de les variables, per exemple, escriure `${FOO}` en lloc de `$FOO`.

785

- Always protect variables with quotes to respect potential whitespaces (except where necessary to achieve correct word splitting): write `"${FOO}"` not `${FOO}`.

786

- Per raons de coherència, utilitzar sempre cometes al assignar valors a les variables:

787

Mal:

788

FOO=bar

789

Bé:

790

FOO="bar"

791

- If multiple variables are used, prefer quoting the full expression:

792

Typically bad:

793

if [ -f "${FOO}"/foo/"${BAR}"/bar ]; then
foobar
fi

794

Bé:

795

if [ -f "${FOO}/foo/${BAR}/bar" ]; then
foobar
fi

796

##### 15.5 Miscel·lània

797

- Prefer "`|`" (without the surround quotes) as a separator in calls to sed, e.g. "`sed -e 's|foo|bar|'`" (without "").

798

- Don't use the `test` command for comparisons or tests, use "`[`" and "`]`" (without ""); e.g. "`if [ -x /bin/foo ]; ...`" and not "`if test -x /bin/foo; ...`".

799

- Use `case` wherever it makes code more readable than conditional checks (`if foo; ...` and tests without the actual `if` keyword, e.g. `[ -e "${FILE}" ] || exit 0`).

800

- Use "Foo_bar" style names for functions, i.e. a capital first letter, then all lowercase, with sensible use of underscores for better readability.

801

# Exemples

802

# Exemples

803

#### 16. Exemples

804

En aquest capítol s'inclouen exemples de construccions per a casos d'ús específics amb sistemes en viu. Si s'és nou en la construcció d'imatges en viu pròpies, us suggerim mirar els tres tutorials en seqüència, ja que cada un ensenya noves tècniques que ajuden a utilitzar i entendre els exemples restants.

805

##### 16.1 Ús dels exemples

806

per a utilitzar aquests exemples es necessita un sistema de construcció que compleixi les exigències enumerades a Requisits y que tingui live-build instal·lat com es descriu a Instal·lació de live-build.

807

Cal notar que, per a abreujar, en aquests exemples no s'especifica un mirall local per a utilitzar en la construcció. Es poden accelerar les descàrregues considerablement si s'utilitza un mirall local. Es pot especificar les opcions quan s'utilitza `lb config`, com es descriu a Miralls de distribució utilitzats en temps de construcció, o per a major comoditat, establir el valor predeterminat per al sistema de construcció en el fitxer `/etc/live/build.conf`. Només cal crear aquest fitxer i establir a les variables al mirall preferit. Tots els altres miralls que s'utilitzin en la construcció adoptaran valors per defecte segons aquests valors. Per exemple:

808

LB_MIRROR_BOOTSTRAP="http://mirror/debian/"
LB_MIRROR_CHROOT_SECURITY="http://mirror/debian-security/"
LB_MIRROR_CHROOT_BACKPORTS="http://mirror/debian-updates/"

809

##### 16.2 Tutorial 1: Una imatge per defecte

810

Cas d'ús: Crear una primera imatge senzilla, aprenent els conceptes bàsics de live-build.

811

En aquest tutorial, anem a construir una imatge ISO híbrida per defecte que contingui només els paquets de base (no té Xorg) i altres paquets de suport de sistema en viu, com un primer exercici en l'ús de live-build.

812

No pot ser més senzill que això:

813

$ mkdir tutorial1 ; cd tutorial1 ; lb config

814

Examinar el contingut del directori `config/` si es vol. Es veurà emmagatzemada aquí una configuració en esquelet, a punt per a ser personalitzada o, en aquest cas, per a ser utilitzada immediatament per a construir una imatge per defecte.

815

Ara, com a superusuari, construir la imatge, guardant un log del que es construeix amb `tee`.

816

# lb build 2>&1 | tee build.log

817

Assuming all goes well, after a while, the current directory will contain `live-image-amd64.hybrid.iso`. This ISO hybrid image can be booted directly in a virtual machine as described in Testing an ISO image with Qemu and Testing an ISO image with VirtualBox, or else imaged onto optical media or a USB flash device as described in Burning an ISO image to a physical medium and Copying an ISO hybrid image to a USB stick, respectively.

818

##### 16.3 Tutorial 2: Una utilitat de navegador web

819

Cas d'ús: Crear una imatge d'una utilitat de navegador web, aprenent a aplicar personalitzacions.

820

En aquest tutorial, anem a crear una imatge adequada per al seu ús com a una utilitat de navegador web, que serveix com introducció a la personalització de les imatges de sistemes en viu.

821

$ mkdir tutorial2
$ cd tutorial2
$ lb config
$ echo "task-lxde-desktop firefox-esr" >> config/package-lists/my.list.chroot

822

La nostra elecció de LXDE per a aquest exemple reflecteix el nostre desig d'oferir un entorn d'escriptori mínim, ja que l'objectiu de la imatge és l'únic ús que tenim al cap, el navegador web. Podríem anar encara més lluny i oferir una configuració per defecte per al navegador web a `config/includes.chroot/etc/iceweasel/profile/`, o paquets addicionals de suport per a la visualització de diversos tipus de contingut web, però deixem això com a un exercici per al lector.

823

Construir la imatge, de nou com a superusuari, guardant un log com al Tutorial 1:

824

# lb build 2>&1 | tee build.log

825

Un cop més, verificar que la imatge està bé i provar-la, com al Tutorial 1.

826

##### 16.4 Tutorial 3: Una imatge personalitzada

827

Cas d'ús: Crear un projecte per a construir una imatge personalitzada, que contingui el programari favorit per a portar en una memòria USB allà on es vagi i que evolucionarà en revisions successives tal i com les necessitats i les preferències canvien.

828

Com la nostra imatge personalitzada canviarà durant un nombre de revisions i volem fer un seguiment d'aquests canvis, provar coses experimentals i possiblement revertir-les si les coses no surten bé, anem a mantenir la nostra configuració en el popular sistema de control de versions `git`. També utilitzarem les millors pràctiques de configuració automàtica mitjançant scripts `auto` com s'explica a Gestió d'una configuració.

829

###### 16.4.1 Primera revisió

830

$ mkdir -p tutorial3/auto
$ cp /usr/share/doc/live-build/examples/auto/* tutorial3/auto/
$ cd tutorial3

831

Editar `auto/config` de la manera següent:

832

#!/bin/sh
lb config noauto \
--distribution stable \
"${@}"

833

Executar `lb config` per a crear l'arbre de configuració, utilitzant el script `auto/config` que s'acaba de crear:

834

$ lb config

835

Ara, omplir la llista local de paquets:

836

$ echo "task-lxde-desktop spice-vdagent hexchat" >> config/package-lists/my.list.chroot

837

First, `--distribution stable` ensures that ⌠stable} is used instead of the default {testing⌡. Second, we have added spice-vdagent for easier testing the image in qemu. And finally, we have added an initial favourite package: hexchat.

838

Ara, construir la imatge:

839

# lb build

840

Tenir en compte que a diferència dels dos primers tutorials, ja no s'ha d'escriure `2>&1 | tee build.log` ja que ara s'inclou al script `auto/build`.

841

Quan s'ha provat la imatge (com al Tutorial 1) i s'està satisfet del seu funcionament, és el moment d'iniciar el repositòri `git`, afegint només els scripts auto que s'han creat, i llavors fer el primer lliurament:

842

$ git init
$ cp /usr/share/doc/live-build/examples/gitignore .gitignore
$ git add .gitignore auto config
$ git commit -m "Initial import."

843

###### 16.4.2 Segona revisió

844

In this revision, we're going to clean up from the first build, replace the smplayer package with vlc package, rebuild, test and commit.

845

L'ordre `lb clean` netejarà tots els fitxers generats en la construcció anterior a excepció del cache, el que estalvia haver de tornar a descarregar els paquets. Això assegura que el `lb build` següent tornarà a executar totes les etapes per a regenerar els fitxers de la nostra nova configuració.

846

# lb clean

847

Now install the vlc package before the lxde package chooses between smplayer, vlc and mplayer-gui in our local package list in `config/package-lists/my.list.chroot`:

848

$ echo "vlc task-lxde-desktop spice-vdagent hexchat" >> config/package-lists/my.list.chroot

849

Construir de nou:

850

# lb build

851

Provar, i quan s'estigui satisfet, fer el lliurament de la propera revisió:

852

$ git commit -a -m "Replacing smplayer with vlc."

853

Per descomptat, es possible fer canvis més complicats en la configuració, potser afegint fitxers en els subdirectoris de `config/`. Quan es fa un lliurament de les noves revisions, s'ha de tenir cura de no editar a mà o incloure en el lliurament els fitxers de nivell superior de `config` que contenen variables `LB_*`, ja que són productes de construcció també, i sempre són netejats per `lb clean` i tornats a crear per `lb config` a través dels seus respectius scripts `auto`.

854

Hem arribat al final de la nostra sèrie de tutorials. Molts més tipus de personalització són possibles, amb les poques característiques explorades en aquests senzills exemples, es poden crear una varietat gairebé infinita d'imatges diferents. Els exemples que queden d'aquesta secció tracten diferents casos d'ús extrets de les experiències recollides dels usuaris de sistemes en viu.

855

##### 16.5 Un client per a un quiosc VNC

856

Cas d'ús: Crear una imatge amb live-build per a connectar-se directament a un servidor VNC al arrencar.

857

Fer un directori de treball i crear una configuració d'esquelet en el seu interior, desactivant els «recommends» per a fer un sistema mínim. I a continuació, crear dues llistes inicials de paquets: La primera generada per un script proporcionat per live-build anomenat `Packages` (veure Generar llistes de paquets), i la segona incloent-hi xorg, gdm3, metacity i xvnc4viewer.

858

$ mkdir vnc-kiosk-client
$ cd vnc-kiosk-client
$ lb config --apt-recommends false
$ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot
$ echo "xorg gdm3 metacity xtightvncviewer" > config/package-lists/my.list.chroot

859

Com s'explica a Afinar APT per a estalviar espai pot ser que s'hagi de tornar a afegir alguns paquets recomanats per a fer que la imatge funcioni correctament.

860

Una manera fàcil d'enumerar els recommends és utilitzar apt-cache. Per exemple:

861

$ apt-cache depends live-config live-boot

862

En aquest exemple, ens vam assabentar que havíem de tornar a incloure diversos paquets recomanats per live-config i live-boot: `user-setup` perquè funcioni l'autologin i `sudo` com a programa essencial per a apagar el sistema. A més, podria ser útil afegir `live-tools` per a poder copiar la imatge en la memòria RAM i `eject` per a expulsar, finalment, el medi en viu. Per tant:

863

$ echo "live-tools user-setup sudo eject" > config/package-lists/recommends.list.chroot

864

Després, crear el directori `/etc/skel` a `config/includes.chroot` i posar un fitxer `.xsession` personalitzat per a l'usuari per defecte que posarà en marxa metacity i iniciarà xvncviewer, connectant al port `5901` d'un servidor ubicat a `192.168.1.2`:

865

$ mkdir -p config/includes.chroot/etc/skel
$ cat > config/includes.chroot/etc/skel/.xsession << EOF
#!/bin/sh
/usr/bin/metacity &
/usr/bin/xvncviewer 192.168.1.2:1
exit
EOF

866

Construir la imatge:

867

# lb build

868

Gaudir-ne.

869

##### 16.6 A minimal image for a 512MB USB key

870

Use case: Create a default image with some components removed in order to fit on a 512MB USB key with a little space left over to use as you see fit.

871

When optimizing an image to fit a certain media size, you need to understand the tradeoffs you are making between size and functionality. In this example, we trim only so much as to make room for additional material within a 512MB media size, but without doing anything to destroy the integrity of the packages contained within, such as the purging of locale data via the localepurge package, or other such "intrusive" optimizations. Of particular note, we use `--debootstrap-options` to create a minimal system from scratch and `--binary image hdd` to create an image that can be copied to a USB key.

872

$ lb config --binary-image hdd --apt-indices false --apt-recommends false --debootstrap-options "--variant=minbase" --firmware-chroot false --memtest none

873

Per a fer que la imatge funcioni correctament, hem de tornar a afegir, com a mínim, dos paquets recomanats, que es queden fora per l'opció `--apt-recommends false`. Veure Afinar APT per a estalviar espai

874

$ echo "user-setup sudo" > config/package-lists/recommends.list.chroot

875

Additionally, you'll want to have network access, so another two recommended packages need to be re-added:

876

$ echo "ifupdown isc-dhcp-client" >> config/package-lists/recommends.list.chroot

877

Ara, crear la imatge de la forma habitual:

878

# lb build 2>&1 | tee build.log

879

On the author's system at the time of writing this, the above configuration produced a 298MiB image. This compares favourably with the 380MiB image produced by the default configuration in Tutorial 1, when `--binary-image hdd` is added.

880

Deixar els índexs d'APT amb `--apt-indices false` permet estalviar una bona quantitat d'espai, el desavantatge és que es necessita fer `apt-get update` abans d'utilitzar apt en el sistema en viu. Deixar els paquets recomanats amb `--apt-recommends false` estalvia una mica d'espai addicional, a costa d'ometre alguns paquets que d'una altra manera es podria esperar que hi fossin. `--debootstrap-options "--variant=minbase"` preinstal·la un sistema mínim des del principi. Al no incloure automàticament paquets de firmware amb `--firmware-chroot false` també es guanya una mica d'espai. I finalment, `--memtest none` impedeix la instal·lació d'un comprovador de memòria.

881

Note: A minimal system can also be achieved using hooks, like for example the `stripped.hook.chroot` hook found in `/usr/share/doc/live-build/examples/hooks`. It may shave off additional small amounts of space and produce an image of 277MiB. However, it does so by removal of documentation and other files from packages installed on the system. This violates the integrity of those packages and that, as the comment header warns, may have unforeseen consequences. That is why using a minimal debootstrap is the recommended way of achieving this goal.

882

##### 16.7 Un escriptori GNOME localitzat i amb instal·lador

883

Cas d'ús: Crear una imatge amb l'escriptori GNOME, localitzat per Suïssa i que inclogui un instal·lador.

884

We want to make an iso-hybrid image using our preferred desktop, in this case GNOME, containing all of the same packages that would be installed by the standard Debian installer for GNOME.

885

El nostre primer problema és descobrir els noms de les tasques del llenguatge apropiades. En l'actualitat, live-build no ens pot ajudar amb això. Tot i que es podria tenir sort i trobar-ho per assaig i error, hi ha una eina, `grep-dctrl`, per extreure les descripcions de les tasques de tasksel-data. Per a preparar-ho tot, assegurar-se de tenir totes dues coses:

886

# apt-get install dctrl-tools tasksel-data

887

Ara podem buscar les tasques apropiades, primer amb:

888

$ grep-dctrl -FTest-lang de /usr/share/tasksel/descs/debian-tasks.desc -sTask
Task: german

889

Mitjançant aquesta ordre, es descobreix que la tasca s'anomena, amb suficient claredat, german. Ara, per a trobar les tasques relacionades:

890

$ grep-dctrl -FEnhances german /usr/share/tasksel/descs/debian-tasks.desc -sTask
Task: german-desktop
Task: german-kde-desktop

891

En el moment d'arrencar es generarà la variant regional de_CH.UTF-8 i es seleccionarà la disposició del teclat ch. Ara posarem les peces juntes. Recordant de Ús dels metapaquets que els metapaquets tenen el prefix `task-`, simplement especificar aquests paràmetres del llenguatge a l'arrencada, i després afegir els paquets de prioritat estàndard i tots els metapaquets descoberts a la nostra llista de paquets de la següent manera:

892

$ mkdir live-gnome-ch
$ cd live-gnome-ch
$ lb config \
--bootappend-live "boot=live components locales=de_CH.UTF-8 keyboard-layouts=ch" \
--debian-installer live
$ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot
$ echo task-gnome-desktop task-german task-german-desktop >> config/package-lists/desktop.list.chroot
$ echo debian-installer-launcher >> config/package-lists/installer.list.chroot

893

Note that we have included the debian-installer-launcher package to launch the installer from the live desktop.

894

# Apèndix

895

# Style guide

896

#### 17. Guia d'estil

897

##### 17.1 Instruccions per als autors

898

Aquesta secció s'ocupa d'algunes consideracions generals a tenir en compte al escriure documentació tècnica per a live-manual. Es divideixen en aspectes lingüístics i procediments recomanats.

899

Nota: Els autors han de llegir primer Contribuir a aquest document

900

###### 17.1.1 Característiques lingüístiques

901

- Utilitzar un anglès planer

902

Tenir en compte que un alt percentatge dels lectors no són parlants nadius d'anglès. Així que, com a regla general, intentar utilitzar frases curtes i significatives, seguides d'un punt i apart.

903

Això no vol dir que s'hagi d'utilitzar un estil simplista i ingenu. És un suggeriment per intentar evitar, en la mesura del possible, les oracions subordinades complexes que fan que el text sigui difícil d'entendre per als parlants no nadius d'anglès.

904

- Varietat d'anglès

905

Les varietats d'anglès més esteses són el britànic i l'americà, així que és molt probable que la majoria dels autors acabin utilitzant l'una o l'altra. En un entorn de col·laboració, la varietat ideal seria "l'anglès internacional", però és molt difícil, per no dir impossible, decidir quina varietat d'entre totes les existents, és la millor.

906

Esperem que les diferents varietats es puguin barrejar sense crear malentesos, però en termes generals s'ha d'intentar ser coherent i abans de decidir sobre l'ús de l'anglès britànic, l'anglès americà o qualsevol altra varietat, fer una ullada a com escriuen altres persones i tractar d'imitar l'estil.

907

- Ser equilibrat

908

S'ha de ser imparcial. Evitar incloure referències a ideologies totalment alienes a live-manual. L'escriptura tècnica ha de ser el més neutral possible. Està en la naturalesa mateixa de l'escriptura científica.

909

- Ser políticament correcte

910

Evitar el llenguatge sexista tant com sigui possible. Si es necessita fer referència a la tercera persona del singular utilitzar preferiblement "they" en lloc de "he" or "she" o invents estranys com per exemple "s/he" o "s(he)".

911

- Ser concís

912

Anar directament al gra i no fent voltes. Donar tota la informació necessària, però no afegir més informació de la necessària, és a dir, no explicar detalls innecessaris. Els lectors són intel·ligents. Es presumeix algun coneixement previ per la seva part.

913

- Minimitzar la feina de traducció

914

Tenir en compte que qualsevol cosa que s'escrigui haurà de ser traduida a diverses llengües. Això implica que un nombre de persones hauran de fer un treball extra si s'agrega informació innecessària o redundant.

915

- Ser coherent

916

Com s'ha suggerit abans, és gairebé impossible estandarditzar un document escrit en col·laboració en un tot perfectament unificat. No obstant això, s'aprecia tot esforç per escriure d'una manera coherent amb la resta dels autors.

917

- Cohesió

918

Utilitzar connectors del discurs perquè el text sigui coherent i sense ambigüitats. (Normalment s'anomenen connectors).

919

- Ser descriptiu

920

És preferible descriure l'assumpte en un o diversos paràgrafs en lloc d'utilitzar una sèrie de oracions en un típic estil de "changelog". Cal descriure-ho! Els Lectors ho agrairan.

921

- Diccionari

922

Buscar el significat de les paraules en un diccionari o una enciclopèdia si no es sap com expressar certs conceptes en anglès. Però cal tenir en compte que un diccionari pot ser el millor amic o pot convertir-se en el pitjor enemic si no es sap com utilitzar-lo correctament.

923

L'anglès té el vocabulari més gran que existeix (amb més d'un milió de paraules). Moltes d'aquestes paraules són préstecs d'altres llengües. Al buscar el significat de les paraules en un diccionari bilingüe la tendència d'un parlant no nadiu d'anglès és triar la que sona més semblant en la seva llengua materna. Sovint, això es converteix en un discurs excessivament formal que no sona ben natural en anglès.

924

Com a regla general, si un concepte es pot expressar utilitzant diferents sinònims, és un bon consell triar la primera paraula proposada pel diccionari. En cas de dubte, és sovint correcte elegir les paraules d'origen germànic (Normalment paraules monosíl·labes). Tenir en compte que aquestes dues tècniques poden produir un discurs més aviat informal, però almenys la elecció de paraules serà d'ampli ús i acceptació general.

925

L'ús d'un diccionari de frases fetes es recomanable. Són molt útils quan es tracta de saber quines paraules solen aparèixer juntes.

926

Com s'ha dit abans, és una bona pràctica aprendre del treball dels altres. L'ús d'un motor de recerca per comprovar com altres autors utilitzen certes expressions pot ajudar molt.

927

- Falsos amics, modismes i altres expressions idiomàtiques

928

Compte amb els falsos amics. No importa com de competent un és en un idioma estranger, de tant en tant es pot caure en el parany dels anomenats "falsos amics", paraules que s'assemblen en dos idiomes però els significats o usos poden ser completament diferents.

929

Intentar evitar els modismes tant com sigui possible. Els "modismes " són expressions que tenen un significat completament diferent del que les seves paraules per separat semblen voler dir. De vegades, els modismes poden ser difícils d'entendre fins i tot per als parlants nadius d'anglès!

930

- Evitar l'argot, les abreviatures, les contraccions...

931

Tot i que s'anima a utilitzar un anglès senzill i planer, l'escriptura tècnica pertany al registre formal de la llengua.

932

Intentar evitar l'argot, les abreviatures inusuals que són difícils d'entendre i per sobre de tot, les contraccions que tracten d'imitar el llenguatge parlat. Per no parlar d'expressions familiars o típiques de l'irc.

933

###### 17.1.2 Procediments

934

- Provar abans d'escriure

935

És important que els autors provin els seus exemples abans d'afegir-los a live-manual per assegurar-se que tot funciona com es descriu. Fer les proves en un entorn chroot net o en una màquina virtual pot ser un bon punt de partida. A més, seria ideal si les proves fossin dutes a terme en diferents ordinadors amb un maquinari diferent per detectar els possibles problemes que puguin sorgir.

936

- Exemples

937

Quan es posa un exemple mirar de ser el més específic possible. Un exemple és, després de tot, només un exemple.

938

Sovint és millor utilitzar una línia que només s'aplica a un cas concret que l'ús d'abstraccions que poden confondre als lectors. En aquest cas es pot donar una breu explicació dels efectes de l'exemple proposat.

939

Hi pot haver algunes excepcions quan l'exemple suggereixi l'ús d'algunes ordres potencialment perilloses que, si s'utilitzen incorrectament, poden provocar la pèrdua de dades o altres efectes indesitjables similars. En aquest cas, s'haurà de proporcionar una explicació detallada sobre els possibles efectes secundaris.

940

- Enllaços externs

941

Els enllaços a llocs externs només s'han d'utilitzar quan la informació en aquests llocs és crucial per a comprendre un punt especial. Tot i això, intentar utilitzar els enllaços a llocs externs el menys possible. Els enllaços d'internet poden canviar de tant en tant, donant lloc a enllaços trencats i deixant els arguments en un estat incomplet.

942

A més, la gent que llegeix el manual sense connexió no podrà seguir els enllaços.

943

- Evitar les marques i les coses que violen la llicència sota la qual es publica el manual

944

Intentar evitar les marques tant com sigui possible. Tenir en compte que altres projectes derivats poden fer ús de la documentació que escrivim. Així que estem complicant les coses per a ells si s'afegix determinat material específic.

945

live-manual es publica sota la llicència GNU GPL. Això té una sèrie d'implicacions que s'apliquen a la distribució dels materials (de qualsevol tipus, incloent-hi gràfics o logotips amb drets d'autor) que es publica amb ell.

946

- Escriure un primer esborrany, revisar, editar, millorar, fer de nou si és necessari

947

- Pluja d'idees!. Es necessari organitzar les idees primer en una seqüència lògica d'esdeveniments.

948

- Quan d'alguna manera ja s'han organitzat aquestes idees en la ment, escriure un primer esborrany.

949

- Revisar la gramàtica, la sintaxi i l'ortografia. Tenir en compte que els noms propis de les versions, com ara trixie o sid, no s'han d'escriure en majúscula quan es refereixen als noms en clau. Per tal de comprovar l'ortografia es pot executar el target "spell". És a dir, `make spell`

950

- Millorar les frases i refer qualsevol part si és necessari.

951

- Capítols

952

Utilitzar el sistema de numeració convencional dels capítols i subtítols. Per exemple 1, 1.1, 1.1.1, 1.1.2 ... 1.2, 1.2.1, 1.2.2 ... 2, 2.1 ... i així successivament. Veure marcat a continuació.

953

Si s'ha d'enumerar una sèrie de passos o etapes en la descripció, també es poden utilitzar els nombres ordinals: primer, segon, tercer ... o en primer lloc, llavors, després, per fi ... Alternativament, es poden utilitzar punts.

954

- Marcat

955

And last but not least, live-manual uses SiSU to process the text files and produce a multiple format output. It is recommended to take a look at SiSU's manual to get familiar with its markup, or else type:

956

$ sisu --help markup

957

Aquests són alguns exemples de marcat que poden ser útils:

958

- Per a l'èmfasi/negreta:

959

*{foo}* o !{foo}!

960

produeixen: foo o foo. S'usen per emfatitzar certes paraules clau.

961

- Per a la cursiva:

962

/{foo}/

963

produeix: foo. S'usa, per exemple, per als noms dels paquets Debian.

964

- Per a monospace:

965

#{foo}#

966

produeix: `foo`. S'usa per exemple, per als noms de les ordres. I també per ressaltar algunes paraules clau o coses com les rutes.

967

- Per a blocs de codi:

968

code{
$ foo
# bar
}code

969

produeix:

970

$ foo
# bar

971

S'utilitza `code{` per a obrir i `}code` per a tancar els blocs. És important recordar deixar un espai al principi de cada línia de codi.

972

##### 17.2 Directrius per als traductors

973

Aquesta secció s'ocupa d'algunes consideracions generals a tenir en compte a l'hora de traduir el contingut de live-manual.

974

Com a recomanació general, els traductors haurien d'haver llegit i entès les regles de traducció que s'apliquen als seus llenguatges específics. En general, els grups de traductors i les llistes de correu proporcionen informació sobre com produir traduccions que compleixin amb els estàndards de qualitat de Debian.

975

Nota: Els traductors també han de llegir Contribuir a aquest document. En particular, la secció Traducció

976

###### 17.2.1 Consells de traducció

977

- Comentaris

978

El paper del traductor és transmetre el més fidelment possible el significat de les paraules, oracions, paràgrafs i textos de com van ser escrits pels autors originals al seu idioma.

979

Per tant, aquests, s'han d'abstenir d'afegir comentaris personals o informacions addicionals pel seu compte. Si es vol afegir un comentari per als traductors que treballen en els mateixos documents, es poden deixar a l'espai reservat per a això. És a dir, la capçalera de les cadenes dels fitxers po precedits pel signe #. La majoria dels programes gràfics de traducció poden manejar aquest tipus de comentaris automàticament.

980

- NT, Nota del Traductor

981

És perfectament acceptable però, incloure una paraula o una expressió entre parèntesi en el text traduït si, i només si, aixó fa que el significat d'una paraula o expressió difícil sigui més clara per al lector. Dins dels parèntesis, el traductor ha de posar de manifest que l'addició és seva utilitzant l'abreviatura "NT" o "Nota del traductor".

982

- Frases impersonals

983

Els documents escrits en anglès fan un gran ús de la forma impersonal "you". En alguns altres idiomes que no comparteixen aquesta característica, això pot donar la falsa impressió que els textos originals s'adresen directament el lector quan en realitat n'ho fan. Els traductors han de ser conscients d'aquest fet i ho han de reflectir en el seu idioma amb la major precisió possible.

984

- Falsos amics

985

El perill dels "falsos amics" explicat anteriorment s'aplica especialment als traductors. Tornar a comprovar el significat dels falsos amics sospitosos en cas de dubte.

986

- Marcat

987

Els traductors que treballin inicialment amb els fitxers pot i posteriorment amb els fitxers po trobaràn moltes característiques de marcat en les cadenes. Es pot traduir el text, sempre que sigui traduïble, però és extremadament important que s'utilitzi exactament el mateix marcat que a la versió original en anglès.

988

- Blocs de codi

989

Tot i que els blocs de codi són generalment intraduïbles, incloure'ls en la traducció és l'única manera de conseguir una traducció completa al 100%. I encara que això signifiqui més feina al principi, ja que pot requerir la intervenció dels traductors s'hi ha canvis en el codi, és la millor manera, a la llarga, per identificar el que s'ha traduït i el que no al comprovar la integritat dels fitxers .po.

990

- Salts de línia

991

Els texts traduïts han de tenir exactament els mateixos salts de línia que els texts originals. Aneu amb compte de pressionar la tecla "Enter" o escriure \n si apareix als fitxers originals. Aquests salts de línies apareixen sovint, per exemple, en els blocs de codi.

992

No confondre's, això no vol dir que el text traduït hagi de tenir la mateixa longitud que la versió en anglès. Aixó és gairebé impossible.

993

- Cadenes intraduïbles

994

Els traductors no han de traduir mai:

995

- Els noms en clau de les versions (que han de ser escrits en minúscules)

996

- Els noms dels programes

997

- Les ordres que es posen com a exemples

998

- Les metadades (apareixen sovint entre dos punts :metadata:)

999

- Els enllaços

1000

- Les rutes