Qual é a diferença entre dpkg e aptitude / apt-get?
125
Ao instalar um software via dpkg -i packageA.deb, as dependências requeridas packageAserão baixadas e instaladas automaticamente? Como isso é diferente de usar apt-getou aptitude?
Não, dpkgapenas instala um pacote; assim dpkg -i packageName.deb, o instalador instalará apenas este pacote Deb e notificará você sobre quaisquer dependências que precisam ser instaladas, mas não as instalará e não configurará o packageName.debporque porque ... as dependências são não está lá.
apt-geté um sistema de gerenciamento de pacotes que 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 ajudarão você a instalar, remover e alterar pacotes facilmente. Então apt-geté como um esperto dpkg.
Eu gosto de pensar na linha do tempo dessa maneira (a seguir, sou apenas eu falando por experiência própria. Ele serve apenas para lhe dar uma idéia 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 ( .debarquivo de extensão ) nasceu.
Um .debarquivo contém os arquivos necessários para a execução de um aplicativo, bem como (eu gosto de chamá-lo) "metadados" que contêm outras informações, como os nomes das dependências que o aplicativo precisa. Se você deseja ver o conteúdo de um .debarquivo, pode usar o comando dpkg -c packageName.debe, se quiser ver essas informações de "metadados", use o comando dpkg -I pacakgeName.deb(e se quiser ver apenas as dependências, faça dpkg -I packageName.deb | grep Depends).
Eles precisavam de uma ferramenta para instalar esses .debarquivos, então criaram a dpkgferramenta. Essa ferramenta, no entanto, apenas instalará o .debarquivo, mas não instalará suas dependências porque não possui esses arquivos e não possui acesso a "repositórios" para obter as dependências.
Então, eles surgiram apt-get, o que automatiza os problemas no ponto anterior. Sob o capô, apt-geté basicamente dpkg(eu gosto de pensar nisso como apt-getum front-end para dpkg), mas um inteligente que procurará as dependências e as instalará. Ele ainda examina as dependências atualmente instaladas e determina aquelas que não estão sendo usadas por outros pacotes e informará que você pode removê-las.
aptitudeentão apareceu. Ele usa as bibliotecas apt-getusos e realmente tem uma interface do usuário interativa (interface de usuário). Se você quiser ver essa interface, basta digitar aptitudeo terminal. É issoaptitude . Ele aproveita as bibliotecas para fornecer mais opções e vantagens do que apt-get. Por exemplo, aptituderemoverá automaticamente pacotes elegíveis, enquanto apt-getprecisa de um comando separado para fazer isso. Mas, no final, fazer sudo aptitude install packageName.debdeve ser pelo menos o mesmo que sudo apt-get install packageName.deb. Pode haver diferenças sutis aqui e ali que eu não conheço, mas ambos procurarão as dependências e farão tudo isso. Você pode ler a resposta aqui para obter mais informações sobre as diferenças entre aptitudee apt-get.
Além disso, aptitudenão tem Super Cow Powers.
EDIT: Aparentemente, ele faz. aptitude -v[v[v[v[v]]]] moo.
aptitudepode não estar instalado por padrão. Para instalá-lo, faça sudo apt-get install aptitudeou clique aqui: aptitude .
Extra
As informações a seguir não respondem diretamente diretamente " Qual é a diferença entre dpkg e aptitude / apt-get? ", Mas contribuem para o quadro geral.
gdebié outra ferramenta que é uma espécie de mistura entre apt-gete aptitude. Quando você o usa para instalar um .debpacote ( gdebi packageName.deb), ele identifica as dependências ausentes, instala-as usando apt-gete, finalmente, instala e configura o pacote usando dpkg. Ele ainda possui uma GUI simples e elegante que fornece informações sobre o .debpacote, os arquivos incluídos no pacote e quais dependências precisam ser instaladas. Para ver esta GUI, você faria gdebi-gtk packageName.deb. Você pode gdebitentar instalando-o com sudo apt-get install gdebiou clique aqui: gdebi .
Não quero confundir ninguém, mas apenas para dar uma outra parte da imagem, existe outro formato popular de pacote Linux chamado RPM, e seus arquivos têm a .rpmextensão. Este formato de pacote é usado em distribuições Linux baseadas em RPM (como Red Hat, CentOS e Fedora). Eles usam o comando rpmpara instalar um pacote e yumé o front-end para ele, é o mais inteligente. Portanto, seus .rpmarquivos são nossos .debarquivos, sua rpmferramenta é nossa dpkgferramenta e a deles yumé nossa apt-get.
aliené uma ferramenta que converte entre .rpme .debpacotes. Portanto, se você se deparar com a situação em que possui um .rpmpacote e quiser instalar no seu Ubuntu (ou qualquer outra distribuição baseada no Debian), poderá usar o comando alien rpm_packageName.rpmpara convertê-lo .debe instalá-lo usando dpkg. Você pode fazer o inverso (converter .debpara .rpm) usando alien -r packageName.deb.
Isso foi muito útil e exatamente o que eu estava procurando. Tx!
Aniket Thakur
4
Além disso, você pode usar gdebi( apt-get install gdebi-core) que combina apt-get/ aptitudecom dpkg. Você o chama gdebi some_package.debe ele analisará suas dependências, ligará apt-getpara instalar as que estão faltando e quando todas as dependências forem cumpridas, depois ligará dpkgpara finalmente instalar seu pacote.
Carlos Campderrós
2
@ Laaa Sob Extra , você também pode mencionar que alienconverte pacotes entre .rpme .deb. Isso é útil para pacotes disponíveis para RPM, mas não para DEB (ou vice-versa). Por exemplo, alien packagename.rpmpara torná-lo utilizável no Ubuntu.
@edwardtorvalds AskUbuntu é um site de perguntas e respostas. Pesquise sua resposta aqui no site a partir de milhares de perguntas antigas e, se não a encontrar, faça sua própria pergunta, pessoas mais experientes do que eu esperamos que também respondam.
Alaa Ali
5
apt-get
O gerenciamento de pacotes apt-geté executado de mãos dadas com o /etc/apt/sources.listarquivo.
apt-get install <package_name>
instala um novo pacote no seu computador.
apt-get build-dep <package_name>
Este comando procura nos repositórios e instala as dependências de construção. 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 vários pacotes. separe os pacotes com um espaço.
auto-apt run <command_string>
Quando invocado, o comando auto-apt instala pacotes automaticamente quando o acesso ao arquivo está ausente. Se um programa tentar acessar um arquivo que pertence a um pacote desinstalado, o auto-apt instalará esse pacote usando apt-get. Este recurso requer o apt e o sudo para funcionar.
aptitudefornece a funcionalidade dselecte apt-getmuitos recursos adicionais não encontrados em nenhum dos programas.
aptitude possui um shell próprio que é ativado por teclado ou mouse e roda em uma janela de terminal
aptitude build-dep <package> - Instale as dependências de compilação dos pacotes - o que significa os pacotes necessários para compilar (ou compilar ) seu pacote de origem. Por exemplo, muitos pacotes precisam debhelperou autotoolsdevem ser construídos, mas não precisam deles para serem executados.
Eu acho que a coisa mais importante e também a diferença é que você deve usar a apt-getferramenta para instalar pacotes. ( aptou aptitudeestá bom também).
Isso ocorre porque o dpkgobjetivo é instalar pacotes sem instalar pacotes dependentes. Por isso, apenas a instalação de um pacote dpkgpode levar a um problema posterior, em que a resolução de dependências pode acabar com um sistema danificado.
Você deve usar a linha de comando apt-getou a aptferramenta (desde 14.04) para instalar pacotes. Essas ferramentas estão sendo usadas dpkgpor você e, ao mesmo tempo, possuem o mecanismo de resolução de dependências.
Respostas:
Não,
dpkg
apenas instala um pacote; assimdpkg -i packageName.deb
, o instalador instalará apenas este pacote Deb e notificará você sobre quaisquer dependências que precisam ser instaladas, mas não as instalará e não configurará opackageName.deb
porque porque ... as dependências são não está lá.apt-get
é um sistema de gerenciamento de pacotes que 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 ajudarão você a instalar, remover e alterar pacotes facilmente. Entãoapt-get
é como um espertodpkg
.Eu gosto de pensar na linha do tempo dessa maneira (a seguir, sou apenas eu falando por experiência própria. Ele serve apenas para lhe dar uma idéia 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
arquivo de extensão ) nasceu.Eles precisavam de uma ferramenta para instalar esses
.deb
arquivos, então criaram adpkg
ferramenta. Essa ferramenta, no entanto, apenas instalará o.deb
arquivo, mas não instalará suas dependências porque não possui esses arquivos e não possui acesso a "repositórios" para obter as dependências.apt-get
, o que automatiza os problemas no ponto anterior. Sob o capô,apt-get
é basicamentedpkg
(eu gosto de pensar nisso comoapt-get
um front-end paradpkg
), mas um inteligente que procurará as dependências e as instalará. Ele ainda examina as dependências atualmente instaladas e determina aquelas que não estão sendo usadas por outros pacotes e informará que você pode removê-las.aptitude
então apareceu. Ele usa as bibliotecasapt-get
usos e realmente tem uma interface do usuário interativa (interface de usuário). Se você quiser ver essa interface, basta digitaraptitude
o terminal. É issoaptitude
. Ele aproveita as bibliotecas para fornecer mais opções e vantagens do queapt-get
. Por exemplo,aptitude
removerá automaticamente pacotes elegíveis, enquantoapt-get
precisa de um comando separado para fazer isso. Mas, no final, fazersudo aptitude install packageName.deb
deve ser pelo menos o mesmo quesudo apt-get install packageName.deb
. Pode haver diferenças sutis aqui e ali que eu não conheço, mas ambos procurarão as dependências e farão tudo isso. Você pode ler a resposta aqui para obter mais informações sobre as diferenças entreaptitude
eapt-get
.Além disso,
aptitude
não tem Super Cow Powers.aptitude
pode não estar instalado por padrão. Para instalá-lo, façasudo apt-get install aptitude
ou clique aqui: aptitude .Extra
De Carlos Campderrós ' comentário abaixo :
gdebi
é outra ferramenta que é uma espécie de mistura entreapt-get
eaptitude
. Quando você o usa para instalar um.deb
pacote (gdebi packageName.deb
), ele identifica as dependências ausentes, instala-as usandoapt-get
e, finalmente, instala e configura o pacote usandodpkg
. Ele ainda possui uma GUI simples e elegante que fornece informações sobre o.deb
pacote, os arquivos incluídos no pacote e quais dependências precisam ser instaladas. Para ver esta GUI, você fariagdebi-gtk packageName.deb
. Você podegdebi
tentar instalando-o comsudo apt-get install gdebi
ou clique aqui: gdebi .Não quero confundir ninguém, mas apenas para dar uma outra parte da imagem, existe outro formato popular de pacote Linux chamado RPM, e seus arquivos têm a
.rpm
extensão. Este formato de pacote é usado em distribuições Linux baseadas em RPM (como Red Hat, CentOS e Fedora). Eles usam o comandorpm
para instalar um pacote eyum
é o front-end para ele, é o mais inteligente. Portanto, seus.rpm
arquivos são nossos.deb
arquivos, suarpm
ferramenta é nossadpkg
ferramenta e a delesyum
é nossaapt-get
.De Paddy Landau 's comentário abaixo :
alien
é uma ferramenta que converte entre.rpm
e.deb
pacotes. Portanto, se você se deparar com a situação em que possui um.rpm
pacote e quiser instalar no seu Ubuntu (ou qualquer outra distribuição baseada no Debian), poderá usar o comandoalien rpm_packageName.rpm
para convertê-lo.deb
e instalá-lo usandodpkg
. Você pode fazer o inverso (converter.deb
para.rpm
) usandoalien -r packageName.deb
.fonte
gdebi
(apt-get install gdebi-core
) que combinaapt-get
/aptitude
comdpkg
. Você o chamagdebi some_package.deb
e ele analisará suas dependências, ligaráapt-get
para instalar as que estão faltando e quando todas as dependências forem cumpridas, depois ligarádpkg
para finalmente instalar seu pacote.alien
converte pacotes entre.rpm
e.deb
. Isso é útil para pacotes disponíveis para RPM, mas não para DEB (ou vice-versa). Por exemplo,alien packagename.rpm
para torná-lo utilizável no Ubuntu.aptitude
não é uma interface paraapt-get
. Ambos os programas são interfaces para alibapt-pkg
biblioteca.apt-get
O gerenciamento de pacotes
apt-get
é executado de mãos dadas com o/etc/apt/sources.list
arquivo.apt-get install <package_name>
instala um novo pacote no seu computador.apt-get build-dep <package_name>
Este comando procura nos repositórios e instala as dependências de construção. 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 vários pacotes. separe os pacotes com um espaço.auto-apt run <command_string>
Quando invocado, o comando auto-apt instala pacotes automaticamente quando o acesso ao arquivo está ausente. Se um programa tentar acessar um arquivo que pertence a um pacote desinstalado, o auto-apt instalará esse pacote usandoapt-get
. Este recurso requer o apt e o sudo para funcionar.Visite a página de instruções do apt-get
aptidão
aptitude
fornece a funcionalidadedselect
eapt-get
muitos recursos adicionais não encontrados em nenhum dos programas.aptitude
possui um shell próprio que é ativado por teclado ou mouse e roda em uma janela de terminalaptitude build-dep <package>
- Instale as dependências de compilação dos pacotes - o que significa os pacotes necessários para compilar (ou compilar ) seu pacote de origem. Por exemplo, muitos pacotes precisamdebhelper
ouautotools
devem ser construídos, mas não precisam deles para serem executados.Visite a página de instruções do aptitude
dpkg
é uma ferramenta para instalar, construir, remover e gerenciar pacotes Debian. ligação
dpkg -i <package.deb>
instala um pacote Debian no seu computador. Ele não instala nenhuma dependência até onde posso descobrir nos arquivos de ajuda.Para detalhes, digite
dpkg --help
em uma janela do terminal.Guias
um guia para gerenciamento de arquivos pode ser encontrado aqui
fonte
Eu acho que a coisa mais importante e também a diferença é que você deve usar a
apt-get
ferramenta para instalar pacotes. (apt
ouaptitude
está bom também).Isso ocorre porque o
dpkg
objetivo é instalar pacotes sem instalar pacotes dependentes. Por isso, apenas a instalação de um pacotedpkg
pode levar a um problema posterior, em que a resolução de dependências pode acabar com um sistema danificado.Você deve usar a linha de comando
apt-get
ou aapt
ferramenta (desde 14.04) para instalar pacotes. Essas ferramentas estão sendo usadasdpkg
por você e, ao mesmo tempo, possuem o mecanismo de resolução de dependências.fonte