Como instalar pacotes .deb locais com o apt-get


144

Existe uma maneira de instalar a loja de pacotes no seu HD com o apt-get, como apt-get install ./package.deb?

Caso contrário, como lidar com as dependências de uma maneira muito, muito fácil?


Isso funciona agora. Se você ainda usa o SuperUser, pode atualizar a resposta aceita? Ver abaixo.
mikemaccana 5/07

Respostas:


121

normalmente dpkg -i <deb file>, falhará dizendo que precisa de dependências. Depois disso, quando você fizer um apt-get update, dirá no final algo como "as dependências estão prontas para instalar", acho que é recomendável usá-lo apt-get install -f.

Feito isso, eu uso dpkg -inovamente.

Funcionou bem para mim nos últimos anos.

edit: olhando um pouco mais longe, aparentemente uma ferramenta chamada gdebipode fazer isso como gdebi [deb file].


1
Obrigado eu fiz o mesmo por "erro" dpkg então apt-get install -f e funcionou.
Louis

2
gdebié trabalhado para mim, e mais simples que eu já vi até agora.
Ctrl-alt-delor 18/08/16

55

Sirex está mais ou menos correto, mas sua resposta não é clara. Acabei de resolver isso, então aqui está o que eu fiz:

sudo dpkg -i /path/to/filename.deb

Se isso falhar com uma mensagem sobre o pacote, dependendo de algo que não está instalado, você provavelmente poderá corrigi-lo se executar

sudo apt-get -f install

Isso instalará as dependências (supondo que elas estejam disponíveis nos repositórios que seu sistema conhece) E o pacote que você estava solicitando originalmente para instalar ('f' é a opção 'fixar' e 'y' é 'assume que sim') ou a opção 'não me pergunte se está tudo bem, apenas instale já' - muito útil para instalações silenciosas com script). No sistema em que eu estava, não havia necessidade de executar o dpkg novamente (Ubuntu lucid 10.04).

Achei interessante que, se você deixar o -f ao executar sudo apt-get install, ele listará seu pacote como não sendo configurado devido a uma dependência não resolvida, além de sugerir:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Editar:

Se você quiser instalar sem ter que responder 'y' para todas as perguntas, você pode adicionar o ymodificador como eu incluído originalmente: sudo apt-get -fy install. No entanto, um comentarista apontou que o apt às vezes sugere que você desinstale todo o ambiente da área de trabalho. Eu estava fazendo esse trabalho em uma VM e não tinha essa preocupação, mas este post foi atualizado para refletir um pouco mais de cuidado.


Se eu já tiver todos os arquivos do pacote em um diretório, existe uma maneira de dizer ao apt que este é um novo repositório, portanto não precisarei forçá-lo a instalar nada sem dependências?
precisa saber é o seguinte

2
Sinto muito, mas não sei. Eu sugiro fazer isso como outra pergunta de nível superior.
Akrikos 12/03

Louco estranho que isso seja necessário. No raspian, isso exigirá sudo (para dpkg e apt-get):, sudo dpkg -i mypackages.debetc.
Brent Faust

Acesso root do @Rubistro necessário em todos os sistemas. Eu acho que as respostas assumiram que esses comandos são executados pelo root (por exemplo, a partir de um shell raiz interativo ou um script que executa como root).
Amos Shapira

2
Para seu próprio bem, não adicione a -yopção. É bastante comum o apt sugerir, por exemplo, desinstalar todo o ambiente da área de trabalho se você tentar fazer isso com o pacote errado na hora errada (pelo menos no Debian).
oseiskar

45

Você também pode instalar o arquivo .deb usando o gdebi. Execute os comandos abaixo para instalar o gdebi,

sudo apt-get install gdebi-core

Instale os pacotes .deb com o gdebi,

sudo gdebi /path/to/filename.deb

Também corrige dependências.


4
Note que o gdebi usa apenas um único argumento e silenciosamente joga o resto no chão. Isso significa que, se você estiver instalando várias debs ao mesmo tempo (talvez porque dependam uma da outra), precisará criar cuidadosamente gdebicomandos que permitam a instalação. imo esta metade derrota o propósito do gdebi, mas você ainda pode achar útil para um único arquivo #
Anthony Sottile

@Anthony thenfind -name *.deb -exec gdebi {} \;
jjmontes

3
@jjmontes que só vai funcionar se as interdependências estão em ordem alfabética, que eu aposto é muito raro
Anthony Sottile

Eu segui este freesoftwaremagazine.com/articles/… (o bug do repositório local tinha que ser em / var / www / html / debs) e o synaptic continuava tentando fazer o download a partir de locais remotos, mesmo sem internet, por isso o gdebi trabalhou muito bem com o repositório local ! também, os arquivos .deb tinham que serchmod +r *.deb
Aquarius Power

34

Sim, o comando que você propôs está correto.

sudo apt-get install ./package.deb

ou

sudo apt install ./package.deb

instalará o pacote obtido de outra fonte que não seja o APT e, ao mesmo tempo, usará os recursos do APT para resolver suas dependências automaticamente. Infelizmente, esse apt-getrecurso não está documentado na página do manual .

Veja https://askubuntu.com/a/769542/250300 e https://askubuntu.com/a/795048/250300 para obter detalhes.


8
Esta deveria ter sido a resposta aceita.
Peter

Qual versão do apt-get adicionou esse recurso?
Kurt Fitzner

@KurtFitzner Foi adicionado no APT 1.1 por anúncio de lançamento (encontrado em askubuntu.com/a/795048/250300 ).
Melebius
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.