Dovrei usare taskel, task in APT o installare metapacchetti regolari?


37

Tasksel o Apt semplice?

In passato ho sempre taskselinstallato i cosiddetti "compiti". Sembra, tuttavia, che questo sia stato integrato in APT:

apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]

e che posso installare tali "compiti" aggiungendo un cursore ( ^) ad esso, in questo modo:

sudo apt-get install lamp-server^

È equivalente al seguente?

sudo tasksel install lamp-server

E quale è preferito?

metapacchetti

Inoltre, come entrano in gioco i metapacchetti? Alcuni compiti sembrano non essere un metapacchetto mentre altri sono:

apt-cache show lamp-server
N: Unable to locate package lamp-server

apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop

Quindi, usando l'ultimo esempio, qual è la differenza tra i seguenti tre modi possibili per installare?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop

2
Guarda l'output di apt-get install -s lubuntu-desktopversus apt-get install -s lubuntu-desktop^. In quest'ultimo, vedrai qualcosa di simile come questo: Nota, selezionando 'policykit-1-gnome' per l'attività 'lubuntu-desktop' / Nota, selezionando 'gnome-keyring' per l'attività 'lubuntu-desktop' / Nota, selezionando 'libplist1' per l'attività 'lubuntu-desktop' / Nota, selezionando 'aspell-en' per l'attività 'lubuntu-desktop' / Nota, selezionando 'libsdl1.2debian' per l'attività 'lubuntu-desktop' / Quindi, in questo caso particolare , Non sono sicuro che quello "carota" sia migliore.

Altre letture qui: askubuntu.com/a/249373/25656

1
#warning about taskel: non usarlo mai per rimuovere le attività - vedi segnalazione bug sul launchpad
guntbert

Risposte:


36

In breve: V'è una differenza tra tasksel e processo di installazione di apt-get di compiti.

Guardando il tuo esempio:

Il modo giusto

sudo apt-get install 'lamp-server^' valuterà per fare quanto segue:

  1. Cerca nella cache (file dell'elenco dei pacchetti) tutti i campi "Attività:" e ottieni tutto con "lamp-server".
  2. Installa quei pacchetti nel modo standard:

    sudo apt-get install package1 package2...
    

Il modo compiti

sudo tasksel install lamp-servercercherà un'attività chiamata "lamp-server" in uno dei suoi file di configurazione sotto /usr/share/tasksel/**/*.desc:

  1. Cerca nei file di configurazione un campo "Task:" denominato "server lampada".
  2. Controlla se tutti i prerequisiti sono disponibili (campo "Chiave:") e ricordali se non installati.
  3. Scegli il metodo per selezionare i pacchetti (campo "Pacchetti:"). Se questo è "elenco", installa semplicemente i seguenti pacchetti per nome.
  4. Leggi tutti i seguenti nomi di pacchetto e passalo al metodo precedentemente selezionato per generare i nomi di pacchetto.
  5. Cercare /usr/lib/tasksel/info/lamp-server.preinst. Se esiste, eseguire questo script.
  6. Installa i pacchetti con apt-get usando il seguente comando:

    debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
    
  7. Cercare /usr/lib/tasksel/info/lamp-server.postinst. Se esiste, eseguire questo script.

Conclusione

taskel è più potente nell'elaborazione e nella selezione delle attività. Può eseguire script aggiuntivi prima / dopo l'installazione / rimozione di attività. E il più grande vantaggio: puoi modificare le attività e crearne di nuove molto facilmente. Non è possibile modificare un file dell'elenco dei pacchetti ufficiale senza inconvenienti (firma valida).

Torna alla tua prima domanda:
nel tuo caso speciale entrambi i comandi sono quasi equivalenti (supponi di aver abilitato entrambi APT::Install-Recommendse APT::Get::AutomaticRemove). L'unica differenza è lo stato esteso del pacchetto mysql-servere le apache2dipendenze (impostato su "installato manualmente" con apt-get semplice).

E i metapacchetti?

Se non si utilizzano le funzionalità di Taskel come la selezione di attività (particolarmente utile durante l'installazione) e l'esecuzione di comandi extra prima e dopo alcuni blocchi di attività, un'attività è molto simile a un metapacchetto. La differenza è: un'attività non è registrata come pacchetto nella cache APT.
Pertanto, se si disinstalla una dipendenza da attività, le altre attività non vengono contrassegnate come installate automaticamente perché sono state installate esplicitamente. Se si disinstalla un metapacchetto, le dipendenze vengono rimosse autoremoveperché il loro stato esteso del pacchetto è "autoinstallato" (se non installato manualmente).
Nota: tutte le attività distribuite in Debian installano un metapacchetto denominato task-TASKNAME.

Dando il tuo esempio:

  1. sudo apt-get install kubuntu-desktop
    • Installa il metapacchetto kubuntu-desktop. Le dipendenze sono "installate automaticamente".
  2. sudo apt-get install kubuntu-desktop^
    • Seleziona tutti i pacchetti taggati con l'attività "kubuntu-desktop". Queste sono tutte dipendenze del metapacchetto kubuntu-desktop. Sono tutti contrassegnati come "installati manualmente".
  3. sudo tasksel install kubuntu-desktop
    • Assicurarsi che X sia installato prima di installare i pacchetti di attività.
    • Installa il metapacchetto kubuntu-desktop. Le dipendenze sono "installate automaticamente".
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.