Questão Como instalar pacotes .deb locais com o apt-get


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

Se não, como lidar com as dependências de uma maneira muito fácil?


128


origem




Respostas:


geralmente eu faço dpkg -i <deb file>, falhará dizendo que precisa de dependências. Depois disso, quando você faz um apt-get update no final, diz algo como "as dependências estão prontas para instalar". Acho que então aconselho usar apt-get install -f.

Uma vez feito isso, eu uso dpkg -i novamente.

Funcionou bem para mim nos últimos anos.

Editar: olhando um pouco mais, aparentemente, uma ferramenta chamada gdebi pode fazer isso como gdebi [deb file].


109



Obrigado eu fiz o mesmo por "erro" dpkg então apt-get install -f e funcionou. - Louis
gdebi é trabalhado para mim, e o mais simples que vi até agora. - ctrl-alt-delor


Sirex tem mais ou menos correto, mas sua resposta não está clara. Eu apenas resolvi 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 você executar

sudo apt-get -f install

Isto irá instalar as dependências (assumindo que elas estão disponíveis nos repos que seu sistema conhece) E o pacote que você estava originalmente solicitando para instalar ('f' é a opção 'fix' e 'y' é o 'assume sim para os prompts') ou 'não me pergunte se está tudo bem, apenas instale já' - muito útil para instalações silenciosas com scripts). No sistema em que eu estava, não havia necessidade de executar o dpkg novamente (Ubuntu lúcido 10.04).

Eu achei interessante que se você deixar o -f quando correr 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 y modificador como incluído originalmente: sudo apt-get -fy install. No entanto, um comentador apontou que o apt às vezes sugere que você desinstale todo o seu ambiente de desktop. Eu estava fazendo esse trabalho em uma VM e não tive essa preocupação, mas esse post foi atualizado para refletir um pouco mais de cuidado.


54



Se eu tenho todos os arquivos de pacotes já em um diretório, existe uma maneira de dizer ao apt que este é um novo repositório, então eu não precisarei forçá-lo a instalar nada sem dependências? - Berry Tsakala
Me desculpe, mas eu não sei. Eu sugiro perguntar isso como outra pergunta de nível superior. - Akrikos
Louco estranho que isso seja necessário. No raspian, isto requer o sudo (tanto para o dpkg quanto para o apt-get): sudo dpkg -i mypackages.debetc. - Brent Faust
Acesso root @Rubistro é necessário em todos os sistemas. Eu acho que as respostas assumiram que os comandos são executados por root (por exemplo, a partir de um shell raiz interativo, ou um script que é executado como root). - Amos Shapira
Para você é bom, faça não Adicione o -y opção. É bastante comum o apt sugerir, por exemplo, a desinstalação de todo o seu ambiente desktop se você tentar isso com o pacote errado na hora errada (pelo menos no Debian). - oseiskar


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

sudo apt-get install gdebi-core

Instale pacotes .deb com gdebi,

sudo gdebi /path/to/filename.deb

Também conserta dependências.


46



Note que o gdebi só aceita um único argumento e silenciosamente deixa cair o resto no chão. Isto significa que se você estiver instalando vários debs ao mesmo tempo (talvez porque eles dependam uns dos outros), você precisará criar cuidadosamente gdebi comandos que lhes permitem instalar. imo esta metade derrota o propósito do gdebi, mas você ainda pode achar útil para um único arquivo - Anthony Sottile
@Anthony então find -name *.deb -exec gdebi {} \; - jjmontes
@jjmontes que só funcionam se as interdependências estiverem em ordem alfabética, o que eu aposto é muito raro - Anthony Sottile
Eu segui isso freesoftwaremagazine.com/articles/… (bug que o repositório local tinha que estar em / var / www / html / debs) e o synaptic tentava fazer o download do remoto mesmo sem internet, então o gdebi trabalhou muito bem com o repositório local! também, os arquivos .deb tinham que ser chmod +r *.deb - Aquarius Power


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

sudo apt-get install ./package.deb

irá instalar o pacote que você obteve de outra fonte que o APT e ao mesmo tempo usar os recursos do APT para resolver suas dependências automaticamente. Infelizmente, isso apt-get recurso não está documentado no página man.

Vejo https://askubuntu.com/a/769542/250300 para detalhes.


14



Esta deveria ter sido a resposta aceita. - Peter