Devo usar tasksel, tarefas no APT ou instalar meta-pacotes regulares?

32

Tasksel ou Apt simples?

No passado, sempre usei tasksel para instalar as chamadas "tarefas". Parece, no entanto, que isto foi integrado no APT:

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

e que eu posso instalar essas "tarefas" adicionando um acento circunflexo ( ^ ) a ele, assim:

sudo apt-get install lamp-server^

Isso é equivalente ao seguinte?

sudo tasksel install lamp-server

E qual é o preferido?

Metapackages

Além disso, como os meta-pacotes entram em jogo aqui? Algumas tarefas parecem não ser um metapacote, enquanto outras são:

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

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

Então, usando o último exemplo, qual é a diferença entre as três maneiras possíveis de instalar?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop
por gertvdijk 06.02.2013 / 18:11

1 resposta

30

Resumindo: é uma diferença entre o tasksel e o processo de instalação do apt-get de tarefas.

Olhando para o seu exemplo:

O caminho do apt-get

sudo apt-get install 'lamp-server^' avaliará o seguinte:

  1. Pesquise o cache (arquivos da lista de pacotes) para todos os campos "Tarefa:" e obtenha tudo com "servidor da lâmpada".
  2. Instale esses pacotes da maneira padrão:

    sudo apt-get install package1 package2...
    

O caminho das tarefas

sudo tasksel install lamp-server procurará uma tarefa chamada "lamp-server" em um de seus arquivos de configuração em /usr/share/tasksel/**/*.desc :

  1. Pesquise nos arquivos de configuração por um campo "Tarefa:" chamado "servidor da lâmpada".
  2. Verifique se todos os pré-requisitos estão disponíveis (campo "Chave:") e lembre-os, se não estiverem instalados.
  3. Escolha o método para selecionar pacotes (campo "Pacotes:"). Se esta é "lista", basta instalar os seguintes pacotes pelo nome.
  4. Leia todos os nomes de pacotes a seguir e passe-os para o método selecionado anteriormente para gerar nomes de pacotes.
  5. Procure por /usr/lib/tasksel/info/lamp-server.preinst . Se existir, execute este script.
  6. Instale os pacotes com o apt-get usando o seguinte comando:

    debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
    
  7. Procure por /usr/lib/tasksel/info/lamp-server.postinst . Se existir, execute este script.

Conclusão

O tasksel é mais poderoso no processamento e seleção de tarefas. Pode executar scripts extras antes / depois da instalação / remoção de tarefas. E o maior benefício: você pode modificar tarefas e criar novas facilmente. Não é possível editar um arquivo de lista de pacotes oficial sem inconvenientes (assinatura válida).

Voltar para sua primeira pergunta:
Em seu caso especial, ambos os comandos são quase equivalentes (supõe-se que você tenha ativado APT::Install-Recommends e APT::Get::AutomaticRemove ). A única diferença é o estado do pacote estendido de mysql-server e apache2 dependencies (definido como "manualmente instalado" com o apt-get simples).

E os meta-pacotes?

Se você não usar os recursos do tasksel como selecionar tarefas (especialmente úteis na instalação) e executar comandos extras antes e depois de alguns blocos de tarefas, então uma tarefa é muito semelhante a um meta-pacote. A diferença é: uma tarefa não está registrada como um pacote no cache do APT.
Portanto, se você desinstalar uma dependência de tarefa, outras tarefas não serão marcadas como instaladas automaticamente porque foram explicitamente instaladas. Se você desinstalar um meta-pacote, as dependências serão removidas com autoremove , porque o estado do pacote estendido é "auto-instalado" (se não instalado manualmente). Observação: tarefas distribuídas no Debian instalam um meta-pacote chamado task-TASKNAME .

Dando seu exemplo:

  1. %código%
    • Irá instalar o meta-pacote sudo apt-get install kubuntu-desktop . Dependências são "instaladas automaticamente".
  2. %código%
    • Selecionará todos os pacotes marcados com a tarefa "kubuntu-desktop". Isso são todas as dependências do meta-pacote kubuntu-desktop . Todos eles estão marcados como "instalados manualmente".
  3. %código%
    • Certifique-se de que o X esteja instalado antes de instalar pacotes de tarefas.
    • Irá instalar o meta-pacote sudo apt-get install kubuntu-desktop^ . Dependências são "instaladas automaticamente".
por Lasall 17.02.2013 / 03:38