Live manual Debian Live

# Debian Live Manual

# Personalizzare l'installazione dei pacchetti

358

# 8. Personalizzare l'installazione dei pacchetti

359

Perhaps the most basic customization of a live system is the selection of packages to be included in the image. This chapter guides you through the various build-time options to customize live-build's installation of packages. The broadest choices influencing which packages are available to install in the image are the distribution and archive areas. To ensure decent download speeds, you should choose a nearby distribution mirror. You can also add your own repositories for backports, experimental or custom packages, or include packages directly as files. You can define lists of packages, including metapackages which will install many related packages at once, such as packages for a particular desktop or language. Finally, a number of options give some control over apt, or if you prefer, aptitude, at build time when packages are installed. You may find these handy if you use a proxy, want to disable installation of recommended packages to save space, or need to control which versions of packages are installed via APT pinning, to name a few possibilities.

360

8.1 Sorgenti dei pacchetti

361

8.1.1 Distribuzione, le aree di archivio e le modalità

362

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 buster for the buster version of live-build. 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 behave as needed to build each supported distribution. For example, to build against the unstable release, sid, specify:

363

$ lb config --distribution sid

364

All'interno dell'archivio dei pacchetti, le aree sono le principali divisioni dello stesso. In Debian queste sono `main`, `contrib` e `non-free`; soltanto `main` contiene il software che è parte di Debian, perciò questa è la predefinita. Possono essere specificati uno o più valori:

365

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

366

Attraverso l'opzione `--mode` è disponibile un supporto sperimentale per alcune derivate di Debian; per impostazione predefinita, questa opzione è impostata su `debian` solo se si sta costruendo su un sistema Debian o sconosciuto. Invocando `lb config` su una delle derivate supportate, verrà creata un'immagine di quella derivata in modo predefinito. Se `lb config` viene ad esempio eseguito in modalità `ubuntu`, saranno gestiti i nomi della distribuzione e le aree di archivio per la derivata specificata e non quelli di Debian. La modalità cambia anche il comportamento di live-build per adattarlo alle derivate.

367

Note: The projects for whom these modes were added are primarily responsible for supporting users of these options. The Debian Live Project, in turn, provides development support on a best-effort basis only, based on feedback from the derivative projects as we do not develop or support these derivatives ourselves.

368

8.1.2 Mirror delle distribuzioni

369

L'archivio Debian è replicato attraverso una vasta rete di mirror in tutto il mondo cosicché chiunque in ogni nazione può selezionare il mirror più vicino per una migliore velocità di scaricamento. Ciascuna delle opzioni `--mirror-*` determina quale mirror della distribuzione è usato nei vari stadi della compilazione. Ricordando dalle Fasi della creazione che la fase di avvio è quando il chroot è inizialmente popolato da debootstrap con un sistema minimale e quella di chroot è quando viene creato il chroot usato per costruire il file system del sistema live. Perciò per queste fasi vengono usati i corrispondenti cambi di mirror, e in seguito, nella fase binaria vengono usati i valori di `--mirror-binary` e `--mirror-binary-security` sostituendo qualsiasi altro mirror usato nelle fasi iniziali.

370

8.1.3 Mirror delle distribuzioni usati in fase di compilazione

371

To set the distribution mirrors used at build time to point at a local mirror, it is sufficient to set `--mirror-bootstrap` and `--mirror-chroot-security` as follows.

372

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

373

Il mirror chroot, specificato da `--mirror-chroot`, è impostato al valore di `--mirror-bootstrap` in modo predefinito.

374

8.1.4 Mirror delle distribuzioni usate durante l'esecuzione

375

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.

376

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

377

8.1.5 Repository addizionali

378

Si possono aggiungere altri repository, ampliando così la scelta dei pacchetti al di là di quelli disponibili nella distribuzione di destinazione. Questi possono essere, per esempio, pacchetti di backport, sperimentali o personalizzati. Per configurare repository aggiuntivi, creare i file `config/archives/vostro-repository.list.chroot`, o `config/archives/vostro-repository.list.binary`. Come per le opzioni `--mirror-*`, queste controlleranno i repository usati nella fase chroot quando si compila l'immagine, e nella fase binary, ad esempio per usarli quando il sistema live è avviato.

379

Per esempio, `config/archives/live.list.chroot` permette di installare pacchetti dal repository snapshot debian-live al momento della creazione del sistema live.

380

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

381

Se si aggiunge la stessa riga in `config/archives/live.list.binary`, il repository verrà aggiunto alla directory `/etc/apt/sources.list.d/` del sistema live.

382

Se questi file esistono saranno prelevati automaticamente.

383

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

384

Se si necessita di personalizzare il pinning di APT, le sezioni di APT preferences possono essere inserite nei file `config/archives/mio-repository.pref.{binary,chroot}` e verranno automaticamente aggiunte nella directory `/etc/apt/preferences.d/` del sistema live.

385

8.2 Scegliere i pacchetti da installare

386

Ci sono diversi modi per scegliere quali pacchetti live-build installerà nell'immagine, coprendo una gamma di esigenze diverse. Si possono richiamare i singoli pacchetti da un elenco, usare i metapacchetti o selezionarli tramite il file control. E infine inserire i file dei pacchetti nell'albero `config/`, che ben si adatta a provare pacchetti nuovi o sperimentali prima che siano disponibili in un repository.

387

8.2.1 Elenchi di pacchetti

388

Gli elenchi di pacchetti sono un potente mezzo per esprimere quali pacchetti devono essere installati. La sintassi gestisce sezioni condizionali rendendo semplice la creazione di elenchi e adattarli per l'uso in molteplici configurazioni. I nomi dei pacchetti possono inoltre essere inseriti nell'elenco utilizzando script shell in fase di compilazione.

389

Nota: quando si specifica un pacchetto che non esiste, il comportamento di live-build è determinato dalla scelta delle utilità di APT. Per ulteriori dettagli si veda Scegliere apt o aptitude.

390

8.2.2 Usare metapacchetti

391

Il metodo più semplice per popolare una lista di pacchetti è utilizzare un metapacchetto task manutenuto dalla distribuzione. Ad esempio:

392

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

393

This supercedes 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.

394

Tutti i metapacchetti task iniziano per `task-`, un modo per determinare quali siano disponibili (sebbene possa contenere alcuni falsi positivi che corrispondono al nome ma non sono metapacchetti) è di controllare il nome del pacchetto con:

395

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

396

In aggiunta a questi si trovano altri metapacchetti per vari scopi. Alcuni sono dei sottoinsiemi dei pacchetti task generici, come `gnome-core`, mentre altri sono parti individuali di un Debian Pure Blend, come il metapacchetto `education-*`. Per elencarli tutti installare il pacchetto `debtags` e usare il tag `role::metapackage` come segue:

397

$ debtags search role::metapackage

398

8.2.3 Elenchi locali dei pacchetti

399

Se si richiede l'elenco di metapacchetti, pacchetti individuali o una combinazione di entrambi tutte le liste dei pacchetti locali vengono salvate in `config/package-lists/`. Giacché è possibile usare più di una lista, ciò si presta bene a progetti modulari. Si può ad esempio decidere di dedicare un elenco ad un particolare desktop, un altro ad un insieme di pacchetti correlati utilizzabili con desktop differenti. Questo permette di sperimentare diverse combinazioni di insiemi di pacchetti con il minimo sforzo condividendo gli elenchi tra progetti live differenti.

400

Per essere processati, gli elenchi dei pacchetti che si trovano in questa directory devono avere un suffisso `.list` e un suffisso `.chroot` o `.binary` aggiuntivo per indicare per quale fase sia l'elenco.

401

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

402

Nota: se non si specifica il suffisso l'elenco sarà usato per entrambe le fasi. Normalmente è preferibile specificare `.list.chroot` in modo che i pacchetti vengono installati solo nel filesystem live evitando di avere una copia extra del `.deb` sul dispositivo.

403

8.2.4 Elenchi locali di pacchetti binari

404

Per creare un elenco di binari inserire un file con suffisso `.list.binary` in `config/package-lists/`; questi pacchetti non sono installati nel filesystem ma inclusi sul dispositivo live sotto `pool/`. Solitamente questo elenco si usa con una delle varianti non-live dell'installatore; come detto sopra, se si vuole che questo sia identico all'elenco della fase chroot, usare semplicemente il suffisso `.list`.

405

8.2.5 Elenchi di pacchetti generati

406

Talvolta succede che il modo migliore per ottenere un elenco è di generarlo con uno script. Ogni riga che inizia con un punto esclamativo indica un comando da eseguire nel chroot quando viene creata l'immagine. Ad esempio si potrebbe includere la riga `! grep-aptavail -n -sPackage -FPriority standard | sort` in una lista di pacchetti per produrne una contenente i pacchetti con `Priority: standard` disponibili.

407

Infatti selezionare i pacchetti con il comando `grep-aptavail` (presente nel pacchetto `dctrl-tools`) è talmente utile che `live-build` fornisce uno script `Packages` per comodità; accetta due argomenti: `field` e `pattern`. Per cui si può creare un elenco con il seguente contenuto:

408

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

409

8.2.6 Usare condizioni all'interno degli elenchi di pacchetti

410

Ognuna delle variabili di configurazione di live-build situate in `config/*` (senza il prefisso `LB_`) possono essere utilizzate per istruzioni condizionali nell'elenco dei pacchetti. In genere questo significa qualsiasi opzione di `lb config` in maiuscolo e con trattini cambiati in trattini bassi; ma in pratica è la sola ad influenzare la selezione dei pacchetti che abbia senso, come `DISTRIBUTION`, `ARCHITECTURES` o `ARCHIVE_AREAS`.

411

Per esempio, per installare `ia32-libs` se è specificata `--architectures amd64`:

412

#if ARCHITECTURES amd64
ia32-libs
#endif

413

Si può provare per ognuna di una serie di valori, ad esempio per installare memtest86+ specificando sia `--architectures i386` sia `--architectures amd64`:

414

#if ARCHITECTURES i386 amd64
memtest86+
#endif

415

È possibile provare altre variabili che contengano più di un valore, ad esempio per installare vrms specificando sia da `contrib` sia da `non-free` tramite `--archive-areas`:

416

#if ARCHIVE_AREAS contrib non-free
vrms
#endif

417

Le condizioni nidificate non sono supportate.

418

8.2.7 Removing packages at install time

419

You can list packages in files with `.list.chroot_live` and `.list.chroot_install` suffixes inside the `config/package-lists` directory. If both a live and an install list exist, the packages in the `.list.chroot_live` list are removed with a hook after the installation (if the user uses the installer). The packages in the `.list.chroot_install` list are present both in the live system and in the installed system. This is a special tweak for the installer and may be useful if you have `--debian-installer live` set in your config, and wish to remove live system-specific packages at install time.

420

8.2.8 Task per desktop e lingua

421

I task per i desktop e la lingua sono un caso particolare che necessita di ulteriori pianificazioni e configurazioni e in questo senso le immagini live sono diverse da quelle dell'Installatore Debian. Nell'Installatore Debian, se il supporto è stato preparato per un particolare ambiente desktop, il corrispondente task verrà automaticamente installato. Perciò ci sono task `gnome-desktop`, `kde-desktop`, `lxde-desktop` e `xfce-desktop` interni, nessuno dei quali è offerto nel menu di `tasksel`. Allo stesso modo, non c'è nessuna voce nel menu per i task delle lingue, ma la scelta della lingua dell'utente durante l'installazione influenza la selezione dei corrispondenti task della lingua.

422

Sviluppando un'immagine live per desktop, questa si avvia direttamente su un'area di lavoro, le scelte del desktop e della lingua predefinita sono state fatte al momento della compilazione e non al volo come nel caso dell'installatore Debian. Questo non per dire che un'immagine live non possa essere creata con un supporto per desktop o lingue multipli per offrire all'utente una scelta, ma che non è il comportamento predefinito nella creazione di una live.

423

Poiché automaticamente non viene fatta alcuna preparazione sui task della lingua, i quali includono cose come caratteri specifici per la lingua e pacchetti per i metodi di input, se li si vogliono, vanno specificati nella configurazione. Per esempio, un'immagine del desktop GNOME contenente il supporto per il tedesco può includere questi metapacchetti task:

424

$ 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

425

8.2.9 Tipi e versioni del kernel

426

A seconda dell'architettura, nell'immagine verranno inclusi uno o più tipi di kernel in modo predefinito. È possibile scegliere tipi differenti tramite l'opzione `--linux-flavours`, ognuno ha come suffisso `linux-image` che costituisce il nome del metapaccchetto che a sua volta dipende dall'esatto pacchetto del kernel da inserire nell'immagine.

427

Thus by default, an `amd64` architecture image will include the `linux-image-amd64` flavour metapackage, and an `i386` architecture image will include the `linux-image-586` metapackage.

428

When more than one kernel package version is available in your configured archives, you can specify a different kernel package name stub with the `--linux-packages` option. For example, supposing you are building an `amd64` architecture image and add the experimental archive for testing purposes so you can install the `linux-image-3.18.0-trunk-amd64` kernel. You would configure that image as follows:

429

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

430

8.2.10 Kernel personalizzati

431

Si può compilare e includere i propri kernel personalizzati a patto che siano integrati nel sistema di gestione dei pacchetti di Debian. Il sistema live-build non supporta i kernel né crea pacchetti `.deb`.

432

La maniera corretta e raccommandata per collocare i propri pacchetti è di seguire le istruzioni nel `kernel-handbook`. Ricordarsi di modificare i suffissi per ABI e tipologia in modo appropriato quindi includere una compilazione completa del pacchetto `linux` e del corrispondente `linux-latest` nel reposistory.

433

Se si opta per creare i pacchetti del kernel senza i metapacchetti corrispondenti, bisogna specificare un suffisso `--linux-packages` appropriato come discusso in Tipi e versioni del kernel. Come spiegato in Installare pacchetti modificati o di terze parti, è meglio includere i propri pacchetti del kernel nel proprio repository, sebbene funzionino anche le alternative discusse in tale sezione.

434

Fornire suggerimenti sul come personalizzare il proprio kernel va oltre lo scopo di questa documentazione, tuttavia è necessario assicurarsi che la configurazione soddisfi almeno i seguenti requisiti minimi:

435

- Utilizzare un ramdisk iniziale;

436

- includere il modulo del filesystem union (solitamente `aufs`);

437

- includere qualsiasi altro modulo del filesystem necessario alla configurazione (solitamente `squashfs`).

438

8.3 Installare pacchetti modificati o di terze parti

439

While it is against the philosophy of a live system, it may sometimes be necessary to build a live system with modified versions of packages that are in the Debian repository. This may be to modify or support additional features, languages and branding, or even to remove elements of existing packages that are undesirable. Similarly, "third-party" packages may be used to add bespoke and/or proprietary functionality.

440

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.

441

Ci sono due modi per installare pacchetti personalizzati:

442

- `packages.chroot`

443

- utilizzare repository APT personalizzati

444

Usando `packages.chroot` è più semplice da ottenere e utile per una personalizzazione "una tantum" ma ha una serie di svantaggi, mentre un repository APT personalizzato è più laborioso da configurare.

445

8.3.1 Utilizzare `packages.chroot` per installare pacchetti personalizzati

446

Per installare un pacchetto personalizzato copiarlo nella directory `config/packages.chroot/`; i pacchetti al suo interno verranno installati automaticamente durante la creazione del sistema live, non è necessario specificarli altrove.

447

I pacchetti devono essere nominati nel modo prescritto, un metodo semplice per farlo è usare `dpkg-name`.

448

L'utilizzo di `packages.chroot` per l'installazione di pacchetti personalizzati presenta degli svantaggi:

449

- non è possibile usare secure APT,

450

- è necessario installare i pacchetti adeguati nella directory `config/packages.chroot/`,

451

- It does not lend itself to storing live system configurations in revision control.

452

8.3.2 Utilizzare un repository APT per installare pacchetti personalizzati

453

A differenza di `packages.chroot`, quando si usa un repository APT personalizzato è necessario assicurarsi di specificare altrove i pacchetti. Per i dettagli si veda Scegliere i pacchetti da installare.

454

Sebbene creare un repository APT possa sembrare uno sforzo inutile, l'infrastruttura può facilmente essere riutilizzata in un secondo momento per offrire aggiornamenti dei pacchetti modificati.

455

8.3.3 Pacchetti personalizzati e APT

456

live-build utilizza APT per installare tutti i pacchetti nel sistema live in modo da ereditare i comportamenti di questo programma. Un esempio rilevante è che (considerando una configurazione predefinita) dato un pacchetto disponibile in due repository differenti con numeri di versione diversi, APT sceglie di installare quello con il numero di versione più alto.

457

A causa di questo si può voler incrementare il numero della versione nei file `debian/changelog` dei pacchetti personalizzati per accertare che la propria versione avrà la precedenza sui repository Debian ufficiali. È anche ottenibile modificando le preferenze del APT pinning del sistema live, si veda APT pinning per maggiori informazioni.

458

8.4 Configurare APT in fase di compilazione

459

APT è configurabile tramite una serie di opzioni applicate solo in fase di costruzione (la configurazione di APT utilizzata nel sistema live in esecuzione può essere configurata nel solito modo, ovvero includendo le impostazioni appropriate attraverso `config/includes.chroot/`). Per un elenco completo, cercare nel manuale di `lb_config` le opzioni che iniziano con `apt`.

460

8.4.1 Scegliere apt o aptitude

461

Per installare pacchetti in fase di compilazione si può optare sia per apt sia per aptitude, l'argomento `--apt` di `lb config` determina quale usare. Sceglie il metodo implementando il comportamento preferito per l'installazione dei pacchetti, la notevole differenza è come vengono gestiti quelli mancanti.

462

- `apt`: se viene specificato un pacchetto mancante, l'installazione avrà esito negativo; questo è l'impostazine predefinita.

463

- `aptitude`: se viene specificato un pacchetto mancante, l'installazione avrà successo.

464

8.4.2 Utilizzare un proxy con APT

465

Una configurazione di APT spesso richiesta è di amministrare la creazione di un'immagine dietro un proxy, lo si può specificare con le opzioni `--apt-ftp-proxy` o `--apt-http-proxy` secondo necessità:

466

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

467

8.4.3 Modificare APT per risparmiare spazio

468

Si può aver bisogno di risparmiare dello spazio sul supporto dell'immagine, in tal caso una o entrambe delle seguenti opzioni possono essere d'interesse.

469

È possibile non includere gli indici di APT con:

470

$ lb config --apt-indices false

471

Questo non influenzerà le voci in `/etc/apt/sources.list`, determina solo se /#{var/lib/apt}# contiene o meno i file degli indici. Il compromesso è che APT necessita di quegli indici per operar enel sistema live, perciò prima di eseguire `apt-cache search` o `apt-get install`, per esempio, l'utente deve usare prima `apt-get update` per crearli.

472

In caso si trovi che l'installazione dei pacchetti raccomandati appesantisca troppo l'immagine, a patto si è preparati ad affrontare le conseguenze discusse prima, si può disabilitare l'opzione predefinita di APT con:

473

$ lb config --apt-recommends false

474

La conseguenza più importante di disattivare i raccomandati è che `live-boot` e `live-config` raccomandano a loro volta alcuni pacchetti che forniscono funzionalità importanti utilizzate da molte configurazioni, come `user-setup` che `live-config` raccomanda ed è usato per creare l'utente live. Salvo eccezioni ci sarà bisogno di riaggiungere all'elenco almeno alcuni di questi o l'immagine non funzionerà come ci si aspetta. Controllare i raccomandati per ognuno dei pacchetti `live-*` inclusi nella compilazione, se non si è certi di poterli omettere aggiungerli nuovamente agli elenchi.

475

La conseguenza generica è che se non si installano i raccomandati per un certo pacchetto, ovvero "pacchetti che si trovano assieme a questo eccetto in installazioni non usuali" (Debian Policy Manual, paragrafo 7.2), saranno omessi alcuni di quelli realmente necessari. Si suggerisce pertanto di verificare la differenza ottenuta nel proprio elenco di pacchetti disabilitando i raccomandati (vedere il file `binary.packages` generato da `lb build`) e includere nuovamente in esso quelli omessi che si desiderano installare. In alternativa, se si desidera tenere un modesto numero di raccomandati, li si lasci abilitati e si assegni ad APT un pin di priorità negativo sui pacchetti selezionati affinché non vengano installati, come spiegato in APT pinning.

476

8.4.4 Passare opzioni ad apt o aptitude

477

Se non esiste un'opzione di `lb config` per modificare il comportamento di APT come si desidera, utilizzare `--apt-options` o `--aptitude-options` per passare qualsiasi argomento tramite lo strumento APT scelto. Per i dettagli consultare le pagine di manuale di `apt` e `aptitude`. Notare che entrambe le opzioni hanno valori predefiniti che servirà mantenere in aggiunta a qualsiasi altra fornita. Per cui supponendo di aver incluso qualcosa da `snapshot.debian.org` per fare dei test e volendo specificare `Acquire::Check-Valid-Until=false` per soddisfare APT con il vecchio file `Release`, si procederà come nell'esempio riportato di seguito, appendendo la nuova opzione al valore predefinito `--yes`:

478

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

479

Per apprendere a pieno queste opzioni e sapere quando usarle consultare i manuali. Questo è solo un esempio e non va interpretato come il modo per configurare la propria immagine, non sarebbe appropriato per il rilascio finale.

480

Per configurazioni di APT più complesse che comportano l'uso di opzioni in `apt.conf` si può voler creare invece il file `config/apt/apt.conf`. Vedere anche le altre opzioni `apt-*` per alcune comode scorciatoie di operazioni di uso frequente.

481

8.4.5 APT pinning

482

Si prega di leggere prima il manuale di `apt_preferences(5)`. Il pinning può essere configurato sia in fase di costruzione sia di esecuzione; per la prima creare `config/archives/*.pref`, `config/archives/*.pref.chroot`, e `config/apt/preferences` mentre per l'ultima creare `config/includes.chroot/etc/apt/preferences`.

483

Let's say you are building a buster live system but need all the live packages that end up in the binary image to be installed from sid at build time. You need to add sid to your APT sources and pin the live packages from it higher, but all other packages from it lower, than the default priority. Thus, only the packages you want are installed from sid at build time and all others are taken from the target system distribution, buster. The following will accomplish this:

484

$ 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

485

Un valore negativo della priorità evita che un pacchetto venga installato, come nel caso in cui non se ne voglia uno raccomandato da un altro. Supponiamo di costruire un'immagine di LXDE utilizzando l'opzione `task-lxde-desktop` in `config/package-lists/desktop.list.chroot} ma non si desidera che all'utente venga richiesto di salvare la password del wifi nel portachiavi. Questo metapacchetto dipende da lxde-core che raccomanda gksu e che a sua volta raccomanda gnome-keyring, in questo caso si vorrà omettere il pacchetto gnome-keyring aggiungendo a #{config/apt/preferences` la seguente istruzione:

486

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