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:
- Pesquise o cache (arquivos da lista de pacotes) para todos os campos "Tarefa:" e obtenha tudo com "servidor da lâmpada".
-
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
:
- Pesquise nos arquivos de configuração por um campo "Tarefa:" chamado "servidor da lâmpada".
- Verifique se todos os pré-requisitos estão disponíveis (campo "Chave:") e lembre-os, se não estiverem instalados.
- Escolha o método para selecionar pacotes (campo "Pacotes:"). Se esta é "lista", basta instalar os seguintes pacotes pelo nome.
- Leia todos os nomes de pacotes a seguir e passe-os para o método selecionado anteriormente para gerar nomes de pacotes.
- Procure por
/usr/lib/tasksel/info/lamp-server.preinst
. Se existir, execute este script. -
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 ...
-
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:
-
%código%
- Irá instalar o meta-pacote
sudo apt-get install kubuntu-desktop
. Dependências são "instaladas automaticamente".
- Irá instalar o meta-pacote
-
%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".
- Selecionará todos os pacotes marcados com a tarefa "kubuntu-desktop". Isso são todas as dependências do meta-pacote
-
%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".