Eu tenho um pacote deb para instalação.
Devo instalar por dpkg -i my.deb
ou pelo apt?
Os dois lidarão bem com o problema de dependência de software?
Se pelo apt, como posso instalar a partir da deb pelo apt?
Eu tenho um pacote deb para instalação.
Devo instalar por dpkg -i my.deb
ou pelo apt?
Os dois lidarão bem com o problema de dependência de software?
Se pelo apt, como posso instalar a partir da deb pelo apt?
aptitude
que remove pacotes desnecessários também.dpkg
. No caso de uma única deb, vá com gdebi e, no caso de várias debs, vá para o repositório local do APT .dpkg
não resolve dependências.Respostas:
Quando você usa
apt
para instalar um pacote, ele é usado sob o capôdpkg
. Quando você instala um pacote usando o apt, ele primeiro cria uma lista de todas as dependências e o baixa do repositório.Uma vez concluído o download, ele solicita
dpkg
a instalação de todos esses arquivos, satisfazendo todas as dependências.Então, se você tem um
.deb
arquivo:Você pode instalá-lo usando:
Você pode instalá-lo usando
sudo apt install ./name.deb
(ousudo apt install /path/to/package/name.deb
).Nas
apt-get
versões antigas, você deve primeiro mover seu arquivo deb para o/var/cache/apt/archives/
diretório Para ambos, após executar este comando, ele fará o download automaticamente de suas dependências.Instale
gdebi
e abra o arquivo .deb usando-o ( clique com o botão direito do mouse -> Abrir com ). Ele instalará o pacote .deb com todas as suas dependências.( Nota : O APT mantém o índice do pacote, que é um banco de dados de pacotes disponíveis, disponível no repositório definido no
/etc/apt/sources.list
arquivo e no/etc/apt/sources.list.d
diretório. Todos esses métodos falharão em satisfazer a dependência do software se as dependências exigidas pela deb não estiverem presentes no índice do pacote .)Por que usar
sudo apt-get install -f
depoissudo dpkg -i /path/to/deb/file
(mencionado no primeiro método)?De
man apt-get
:Quando
dpkg
instala um pacote e uma dependência de pacote não é satisfeita, ele deixa o pacote em um estado "não configurado" e esse pacote é considerado quebrado.sudo apt-get install -f
O comando tenta corrigir esse pacote quebrado instalando a dependência ausente.fonte
apt-cache search <package name>
. Você também pode usarapt-cache policy <package name>
, o que também fornecerá algumas informações adicionais.apt-get install /path/to/package/name.deb
. Seria legal se o autor desta resposta decidisse integrar isso. Se não, eu vou acrescentar que a resposta em algum momento quando tenho rep suficiente aquiInstale seu
foo.deb
arquivo comdpkg -i foo.deb
. Se houver alguns erros com dependências não resolvidas, executeapt-get install -f
posteriormente.fonte
Unable to locate package
tentei assim e fiquei confuso. Eu usei como no Windows apenas o nome do pacote depois de mudar para a pasta de arquivamento. Deve ser./<file name>
para Unix se estiver na pasta atual ou no caminho completo. Ou seja, sedeb
não estiver na pasta presente emPATH
.Aqui está a melhor maneira de instalar um
.deb
arquivo no Ubuntu na linha de comando:Se você ainda não tiver
gdebi
instalado, instale-o usandosudo apt install gdebi-core
.Por que gdebi?
gdebi
procurará todas as dependências do.deb
arquivo e as instalará antes de tentar instalar o.deb
arquivo. Acho isso muito preferível do quesudo dpkg -i skype.deb && sudo apt install -f
. O último está muito ansioso para remover dependências em determinadas situações. Por exemplo, quando tentei instalar o Skype, ele tentou remover 96 (!) Pacotes, incluindo pacotes comocompiz
eunity
!gdebi
deu uma mensagem de erro muito mais clara:(Aqui está a solução para esse problema específico , a propósito.)
fonte
Você pode instalar um pacote local .deb:
Certifique-se de especificar um caminho local relativo ou absoluto (
./
se no diretório atual), caso contrário, ele procuraráfoo.deb
nos repositórios remotos e falhará.fonte
./
antes dodeb
arquivo.Verifique as dependências com
dpkg -I my.deb
eapt-get install
as dependências antesdpkg -i my.deb
.Pode ser que você pode copiar oNão funcionamy.deb
em/var/cache/apt/archives
e instalá-lo diretamente comapt-get
mas eu nunca tentei.apt-get
edpkg
está procurando pacotes listados nos arquivos.fonte
apt-get install my.deb
comapt-get install
? É para instalar a partir do arquivo deb? Por que precisamosdpkg -i my.deb
depois disso?.deb
s comdpkg -i
, meu entendimento é queapt
não tem uma opção para instalá-los, além do diretório no/var/cache/...
qual são baixados (posso estar errado)apt-get install ./my.deb
isso fará alguma coisa, porque gera muitas coisas. O que isso faz?-f
A resposta mais simples seria usar o dpkg executando
dpkg -i packagename.deb
. Você pode desinstalá-lo executandodpkg -r packagename.deb
.apt-get
é um instalador de nível superior baseado no dpkg e, como tal, você poderiaapt-get install packagename.deb
.Seria benéfico adicioná-lo ao seu diretório apt-get archives (
/var/cache/apt/archives
) para que você possa fazer referência a ele como um pacote com dependências e não como um arquivo .deb independente.Além disso, adicionando-o ao seu diretório apt-get archives, você tem a oportunidade de usar dependências
apt-get install packagename
. Isso permitiria que você o instalasse com quaisquer dependências adicionadas manualmente, em vez do sistema autônomo baseado em arquivamento do dpkg.fonte
O apt-get moderno pode ser usado para instalar um pacote simplesmente
apt-get install /path/to/package/name.deb
.(deve ser feito como editar a resposta principal, mas foi rejeitado - consulte https://unix.stackexchange.com/posts/159114/edit )
fonte
apt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19
É muito simples se eu quiser instalar o Chrome.
Instale seu arquivo Chrome como:
Às vezes, há uma chance de obter alguns erros de dependência, como os seguintes:
Portanto, para resolver os problemas acima, você precisa adicionar dependências; dê o seguinte comando:
Após dar o comando acima, as dependências serão adicionadas à sua máquina e o seu pacote Debian (
.deb
) será instalado.fonte