Cómo instalar paquetes locales .deb con apt-get

144

¿Hay alguna manera de instalar la tienda de paquetes en su HD con apt-get, como apt-get install ./package.deb?

Si no, ¿cómo manejar las dependencias de una manera muy fácil?

Louis
fuente
Esto funciona ahora Si todavía usa SuperUser, ¿puede actualizar la respuesta aceptada? Vea abajo.
mikemaccana

Respuestas:

121

generalmente lo hago dpkg -i <deb file>, fallará diciendo que necesita dependencias. Después de eso, cuando hagas un mensaje apt-get update, dirá al final algo como "las dependencias están listas para instalar". Creo que luego aconseja usar apt-get install -f.

Una vez hecho eso, lo uso de dpkg -inuevo.

Funcionó bien para mí los últimos años.

editar: mirando un poco más allá, aparentemente una herramienta llamada gdebipuede hacer esto como gdebi [deb file].

Sirex
fuente
1
Gracias hice lo mismo por "error" dpkg, luego apt-get install -f y funcionó.
Louis
2
gdebime funcionó, y lo más simple que he visto hasta ahora.
ctrl-alt-delor
55

Sirex lo tiene más o menos correcto, pero su respuesta no es clara. Acabo de resolver esto, así que esto es lo que hice:

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

Si esto falla con un mensaje sobre el paquete dependiendo de algo que no está instalado, probablemente pueda solucionarlo si ejecuta

sudo apt-get -f install

Esto instalará las dependencias (suponiendo que estén disponibles en los repositorios que su sistema conoce) Y el paquete que originalmente solicitó instalar ('f' es la opción 'corregir' e 'y' es 'asumir sí a las indicaciones' o la opción 'no me preguntes si está bien, solo instálalo ya', muy útil para las instalaciones silenciosas con script). En el sistema en el que estaba, no había necesidad de ejecutar dpkg nuevamente (Ubuntu lucid 10.04).

Me pareció interesante que si dejas el -f cuando ejecutas sudo apt-get install, enumerará tu paquete como no configurado debido a una dependencia no resuelta y sugerirá de manera útil:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Editar:

Si desea realizar la instalación sin tener que responder 'y' para todas las preguntas, puede agregar el ymodificador ya que originalmente incluía: sudo apt-get -fy install. Sin embargo, un comentarista señaló que apt a veces sugerirá que desinstale todo su entorno de escritorio. Estaba haciendo este trabajo en una máquina virtual y no me preocupaba, pero esta publicación se actualizó para reflejar un poco más de cuidado.

Akrikos
fuente
Si ya tengo todos los archivos del paquete en un directorio, ¿hay alguna forma de decirle a apt que este es un nuevo repositorio, por lo que no tendré que forzarlo a instalar nada sin dependencias?
Berry Tsakala
2
Lo siento, pero no lo se. Sugeriría hacer eso como otra pregunta de alto nivel.
Akrikos
Es extraño que se requiera esto. En raspian, esto requerirá sudo (tanto para dpkg como para apt-get) sudo dpkg -i mypackages.deb, etc.
Brent Faust
Se requiere acceso raíz a @Rubistro en todos los sistemas. Supongo que las respuestas suponen que los comandos son ejecutados por root (por ejemplo, desde un shell de raíz interactivo o un script que se ejecuta como root).
Amos Shapira
2
Por su propio bien, no agregue la -yopción. Es bastante común que apt sugiera, por ejemplo, desinstalar todo su entorno de escritorio si intenta esto con el paquete incorrecto en el momento incorrecto (al menos en Debian).
oseiskar
45

También puede instalar el archivo .deb usando gdebi. Ejecute los siguientes comandos para instalar gdebi,

sudo apt-get install gdebi-core

Instalar paquetes .deb con gdebi,

sudo gdebi /path/to/filename.deb

También corrige dependencias.

Avinash Raj
fuente
44
Tenga en cuenta que gdebi solo toma un solo argumento y silenciosamente deja caer el resto en el piso. Esto significa que si está instalando múltiples debs al mismo tiempo (tal vez porque dependen unos de otros), deberá elaborar cuidadosamente gdebicomandos que les permitan instalarse. OMI, esta mitad derrota el propósito de gdebi, pero aún puede encontrarlo útil para un solo archivo
Anthony Sottile
@Anthony entoncesfind -name *.deb -exec gdebi {} \;
jjmontes
3
@jjmontes que solo funcionará si las interdependencias están en orden alfabético, lo que apostaría es bastante raro
Anthony Sottile
Seguí este freesoftwaremagazine.com/articles/… (error que el repositorio local tenía que estar en / var / www / html / debs) y Synaptic siguió intentando descargar desde el control remoto incluso sin Internet, por lo que gdebi funcionó muy bien con el repositorio local ! También, los archivos .deb tenían que serchmod +r *.deb
Acuario de alimentación
34

Sí, el comando que propusiste es correcto.

sudo apt-get install ./package.deb

o

sudo apt install ./package.deb

instalará el paquete que obtuvo de otra fuente que no sea APT y al mismo tiempo utilizará las capacidades de APT para resolver sus dependencias automáticamente. Desafortunadamente, esta apt-getcaracterística no está documentada en la página del manual .

Consulte https://askubuntu.com/a/769542/250300 y https://askubuntu.com/a/795048/250300 para más detalles.

Melebio
fuente
8
Esta debería haber sido la respuesta aceptada.
Peter
¿Qué versión de apt-get agregó esta capacidad?
Kurt Fitzner
@KurtFitzner Fue agregado en APT 1.1 por anuncio de lanzamiento (encontrado a través de askubuntu.com/a/795048/250300 ).
Melebius