Qual é a diferença entre o dpkg e o aptitude / apt-get?

115

Ao instalar um software via dpkg -i packageA.deb , as dependências exigidas por packageA serão baixadas e instaladas automaticamente? Como isso é diferente de usar apt-get ou aptitude ?

    
por Aniket Thakur 17.06.2013 / 09:08

2 respostas

153

Não, o dpkg instala somente um pacote, portanto, dpkg -i packageName.deb instalará apenas este pacote Deb e notificará você sobre quaisquer dependências que precisem ser instaladas, mas será > não instale-os, e não configure o packageName.deb porque bem ... as dependências não estão lá.

apt-get é um Sistema de gerenciamento de pacotes lida com a instalação de pacotes Deb em distribuições Linux baseadas no Debian . Um Sistema de Gerenciamento de Pacotes é um conjunto de ferramentas que o ajudarão a instalar, remover e alterar pacotes facilmente. Então, apt-get é como um inteligente dpkg .

Eu gosto de pensar na linha do tempo dessa maneira (o seguinte é apenas eu falando por experiência. Ela serve apenas para dar uma ideia de tudo isso):

  • Eles criaram uma maneira de "armazenar" os arquivos de um aplicativo em um "pacote" para que ele possa ser facilmente instalado. Então, o pacote Deb ( .deb extension file ) nasceu.

      

    Um arquivo .deb contém os arquivos necessários para que um aplicativo seja executado, assim como (gosto de chamá-lo) "meta-dados" que contém outras informações, como os nomes dos as dependências que o aplicativo precisa. Se você quiser ver o conteúdo de um arquivo .deb , você pode usar o comando dpkg -c packageName.deb , e se você quiser ver essa informação de "metadados", use o comando dpkg -I pacakgeName.deb (e se você quiser apenas veja as dependências, do dpkg -I packageName.deb | grep Depends ).

  • Eles precisavam de uma ferramenta para instalar esses arquivos .deb , então eles criaram a ferramenta dpkg . Esta ferramenta, no entanto, apenas instalará o arquivo .deb , mas não instalará suas dependências porque ele não possui esses arquivos e não tem acesso a "repositórios" para extrair as dependências.

  • Em seguida, eles criaram o apt-get , que automatiza os problemas no ponto anterior. Sob o capô, apt-get é basicamente dpkg (eu gosto de pensar nisso como apt-get sendo um front-end para dpkg ), mas um inteligente que irá procurar as dependências e instalá-las. Ele até olha para as dependências atualmente instaladas e determina aquelas que não estão sendo usadas por outros pacotes, e irá informá-lo que você pode removê-las.
Em seguida,

aptitude apareceu. Ele usa as bibliotecas apt-get usa e, na verdade, tem uma interface interativa (interface do usuário) . Se você quiser ver essa interface, basta digitar aptitude no terminal. Isso é aptitude . Ele aproveita as bibliotecas para fornecer mais opções e vantagens do que apt-get . Por exemplo, aptitude removerá pacotes elegíveis automaticamente, enquanto apt-get precisará de um comando separado para fazer isso. Mas, no final, fazer sudo aptitude install packageName.deb deve pelo menos ser o mesmo que sudo apt-get install packageName.deb . Pode haver diferenças sutis aqui e ali que eu não conheço, mas elas irão procurar as dependências e fazer todas essas coisas. Você pode ler a resposta aqui para obter mais informações sobre as diferenças entre aptitude e apt-get .

Além disso, aptitude não tem poderes de super vaca.

  

EDIT: Aparentemente, faz. aptitude -v[v[v[v[v]]]] moo .

aptitude pode não ser instalado por padrão. Para instalá-lo, faça sudo apt-get install aptitude ou clique aqui: aptitude .

Extra

  

As seguintes informações realmente não respondem diretamente " Qual é a diferença entre o dpkg e o aptitude / apt-get? " mas isso contribui para o quadro geral.

De Carlos Campderrós ' comentário abaixo :

gdebi é outra ferramenta que é uma mistura entre apt-get e aptitude . Quando você usá-lo para instalar um .deb package ( gdebi packageName.deb ), ele identificará as dependências ausentes, instalará usando apt-get e, finalmente, instalará e configurará o pacote usando dpkg . Ele ainda tem uma GUI simples e organizada que fornece informações sobre o pacote .deb , os arquivos incluídos no pacote, e quais dependências precisam ser instaladas. Para ver essa GUI, você faria gdebi-gtk packageName.deb . Você pode experimentar o gdebi instalando-o com sudo apt-get install gdebi ou clique aqui: gdebi .

Eu não quero confundir ninguém, mas apenas para lhe dar uma outra parte da imagem, há outro formato popular de pacote Linux chamado RPM, e seus arquivos têm a extensão .rpm . Este formato de pacote é usado em distribuições Linux baseadas em RPM (como Red Hat, CentOS e Fedora). Eles usam o comando rpm para instalar um pacote, e yum é o front-end para isso, é o inteligente. Portanto, seus arquivos .rpm são nossos arquivos .deb , sua ferramenta rpm é nossa ferramenta dpkg e sua yum é nossa apt-get .

De Paddy Landau 's comentário abaixo :

alien é uma ferramenta que converte entre .rpm e .deb packages. Então, se você cair na situação em que você tem um pacote .rpm , e você quer instalar no seu Ubuntu (ou qualquer outra distro baseada no Debian), você pode usar o comando alien rpm_packageName.rpm para convertê-lo em .deb e, em seguida, instale-o usando dpkg . Você pode fazer o inverso (converter .deb para .rpm ) usando alien -r packageName.deb .

    
por Alaa Ali 17.06.2013 / 09:30
5

apt-get

O gerenciamento de pacotes via apt-get roda de mãos dadas com o arquivo /etc/apt/sources.list.

apt-get install <package_name> instala um novo pacote no seu computador.

apt-get build-dep <package_name> Esse comando pesquisa os repositórios e instala as dependências de construção para. Se o pacote não estiver nos repositórios, ele retornará um erro.

apt-get install <package1_name> <package2_name> <package3_name> O apt-get permite a instalação de múltiplos pacotes. separe os pacotes com um espaço.

auto-apt run <command_string> Quando invocado, o comando auto-apt instala pacotes automaticamente ao acessar o arquivo ausente. Se um programa tentar acessar um arquivo conhecido por pertencer a um pacote desinstalado, o auto-apt instalará esse pacote usando o apt-get. Este recurso requer que o apt e o sudo funcionem.

Visite a página de instruções do apt-get

aptitude

aptitude fornece a funcionalidade de dselect e apt-get , além de muitos recursos adicionais não encontrados em nenhum dos programas.

aptitude tem um shell próprio que é ativado por teclado ou mouse e é executado em uma janela de terminal

aptitude build-dep <package> - Instala as dependências de compilação dos pacotes - o que significa que os pacotes necessários para compilar (ou construir ) o seu pacote fonte. Por exemplo, muitos pacotes precisam de debhelper ou autotools para serem compilados, mas não precisam deles para serem executados.

Visite a página de instrução do aptitude

dpkg

é uma ferramenta para instalar, construir, remover e gerenciar pacotes Debian. link

dpkg -i <package.deb> instala um pacote Debian no seu computador. Ele não instala nenhuma dependência, tanto quanto eu posso descobrir nos arquivos de ajuda.

Para detalhes, digite dpkg --help em uma janela de terminal.

Guias

um guia para gerenciamento de arquivos pode ser encontrado aqui

    
por SimplySimon 17.06.2013 / 09:29