Qual a diferença entre gerenciadores de pacotes?

129

Quais são as diferenças entre apt-get, aptitudee synaptic, e qual é a opção recomendada para gerenciamento de pacotes normais do dia-a-dia?

Essa é uma pergunta básica, mas acho que seria uma boa informação ter no site e, além disso, sou relativamente nova no Ubuntu, para poder usar uma explicação especializada.

David Z
fonte
1
Também vi pessoas recomendando tarefas. Talvez alguém possa explicar para que serve este também?
silvo 28/07/10
2
taskselé para selecionar tarefas específicas, não para instalar o J. Random Package.
Lfaraone 28/07/10
Uma [excelente comparação] [1] apt-gete aptitude, com uma menção especial ao meu front-end favorito wajig,. [1]: unix.stackexchange.com/questions/767/…
tshepang
Para uma comparação mais detalhada apt-gete aptitudever outra pergunta neste site - O aptitude é realmente melhor do que o apt-get?
8128

Respostas:

111

Provavelmente, os gerenciadores de pacotes mais populares são apt-get, aptitude, synaptic e Software Center. Existem outros (o Linux Mint é seu e existem alguns projetados para o KDE), mas esses são os que você encontrará com mais frequência.

O apt-get é uma ferramenta simples de linha de comando. É útil se você souber o nome exato do pacote do que deseja instalar e não quiser gastar tempo clicando em uma GUI para obtê-lo.

O aptitude é muito semelhante ao apt-get, e ouvi dizer que ele lida melhor com situações de dependência loucas. Qual é realmente melhor é discutível.

synaptic é uma GUI de baixo nível. Essa é uma boa opção se você for um usuário bastante avançado, mas não estiver confortável com os utilitários de linha de comando.

O Software Center é uma GUI de alto nível e fácil de usar. O software é bem categorizado para que, se você não tiver exatamente certeza de qual aplicativo deseja, encontre o que precisa rapidamente. O Centro de Software também se destaca por ser o único gerenciador de pacotes nesta lista que permite comprar aplicativos comerciais.

O dpkg é um padrão de gerenciador de pacotes de baixo nível e menos usado para a maioria dos sistemas baseados em Debian. Na realidade, apt-get, aptitude, synaptic e o Ubuntu Software Center são apenas front-ends para o dpkg ou apt, que é em si um front-end para o dpkg.

Em resposta à sua pergunta, "qual é a opção recomendada para o gerenciamento diário normal de pacotes", eu diria que o Software Center é recomendado para a maioria dos usos. Mas, à medida que você ganha mais experiência, encontrará alguns dos recursos dos gerenciadores de pacotes de nível inferior úteis.

Michael Crenshaw
fonte
Eu tenho que me perguntar qual é o sentido da Synaptic neste momento. As pessoas que desejam bibliotecas usam a linha de comando e as pessoas que desejam programas usam o Software Center?
mlissner
Para ser sincero, raramente uso mais o Synaptic e, no momento, não consigo pensar em nenhum motivo específico para usar o Synaptic em uma das outras ferramentas (embora o faça de vez em quando). Boa pergunta.
Michael Crenshaw
10
aptitude vs apt-get não é discutível, aptitude é uma melhoria em relação ao apt-get e perfeitamente compatível com ele.
Mircea Chirea
1
Não tenho conhecimento para debater, mas já vi outros debaterem. Portanto, até onde sei, é discutível. Quanto à compatibilidade, ouvi dizer que é melhor não usar os dois. Mas, novamente, eu não sei. Vou deixar isso para outra pergunta. :-)
Michael Crenshaw
3
O aptitude permite recursos avançados de gerenciamento de pacotes, como retenção de pacotes, dos quais o apt-get não possui.
scottl
18

O FAQ do Debian tem uma boa explicação dos diferentes gerenciadores de pacotes. ( dpkg, apt-get, aptitude, tasksel, synaptic)

lfaraone
fonte
1
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Do comentário
Pilot6
1
Sete anos depois?
Lfaraone 27/07
13

Como um complemento para excelente resposta de mac9416 , Kubuntu oferece as mesmas ferramentas de linha de comando como o Ubuntu, ou seja dpkg, apt-get, e aptitude. Existem também dois gerenciadores de pacotes gráficos:

Adept é uma GUI simples apt-get, que permite editar as listas de fontes, procurar pacotes por categoria ou por nome, ver seu status e instalá-los / desinstalá-los.

O KPackageKit é uma GUI simples para o PackageKit, que é um sistema mais novo de gerenciamento de pacotes com distribuição cruzada que usa apt-getnos bastidores. Permite procurar programas por vários critérios, instalar e desinstalar programas, fazer atualizações de rotina e editar as listas de fontes.

David Z
fonte
KPackageKitagora é substituído por Apper.
David, seu amigo
6

Pessoalmente, prefiro o apt-get porque é um programa de linha de comando. E a sintaxe para instalar pacotes é muito simples:

sudo apt-get install packagename

Eu uso o apt-get diariamente para instalar e remover pacotes.

Synaptic é baseado em GUI e aptitude é baseado em texto.

Nathan Osman
fonte
aptitudetambém pode ser usado de forma interativa e, por um longo tempo, possuía recursos que a maioria dos outros clientes libapt não possuía. sudo aptitude installfunciona tão bem quanto sudo apt-get install. sudo apitude searchfunciona tão bem quanto sudo apt-cache search. A aptidão é, no entanto, prevista para remoção no futuro.
Broam 29/07/10
@Broam, você pode fornecer uma fonte para a alegação de que o Aptitude está programado para remoção? Pesquisando por aí, não consegui encontrar nada sobre isso.
Itsadok
Está programado para remoção na instalação padrão, como o GIMP.
Broam 5/08/10
5

Basicamente, eles diferem apenas em quão baixos são.

dpkg : nem mesmo um gerenciador de pacotes adequado, o apt o usa

apt-get : linha de comando, somente se você souber o nome do pacote

aptitude : baseado em texto, mas fácil de usar

sináptico : equivalente à aptidão na GUI

Software Center : para usuários comuns

BTW, estes são todos os front-ends do apt (exceto dpkg), que é o único gerenciador de pacotes no Ubuntu.

Sőrés Viktor
fonte
1

Uma outra ferramenta que quase não recebeu menção é tasksel. É usado para selecionar tarefas específicas, marcá-las para instalação e depois instalá-las (possivelmente usando aptitude- não tenho certeza).

Execute tasksel --list-taskspara ver quais tarefas estão disponíveis.

tshepang
fonte
Isso foi mencionado nos comentários sobre a questão.
David Z
1
@ David Eu vi essa menção, mas os comentários são cidadãos de segunda classe.
tshepang
1

Uma diferença importante entre o aptitude e o apt-get, que escapou ao aviso acima, é que aptitude, diferentemente apt-get, oferecerá diferentes opções caso haja um conflito de dependência. apt-getsimplesmente falhará. aptitudeé muito mais flexível e versátil por esse motivo. Como nunca usei um gerenciador de pacotes da GUI, não sei como o Synaptic e outros lidam com essas situações.

ShankarG
fonte