Live manual Debian Live

# Debian Live Manual

# 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