Tengo un paquete deb para la instalación.
¿Debo instalar por dpkg -i my.deb
o por apt?
¿Ambos manejarán bien el problema de dependencia del software?
Si es por apt, ¿cómo puedo instalar desde deb por apt?
Tengo un paquete deb para la instalación.
¿Debo instalar por dpkg -i my.deb
o por apt?
¿Ambos manejarán bien el problema de dependencia del software?
Si es por apt, ¿cómo puedo instalar desde deb por apt?
Cuando usas apt
para instalar un paquete, debajo del capó que usa dpkg
. Cuando instala un paquete usando apt, primero crea una lista de todas las dependencias y lo descarga del repositorio.
Una vez que finaliza la descarga, llama dpkg
para instalar todos esos archivos, satisfaciendo todas las dependencias.
Entonces, si tienes un .deb
archivo:
Puedes instalarlo usando:
sudo dpkg -i /path/to/deb/file
sudo apt-get install -f
Puede instalarlo usando sudo apt install ./name.deb
(o sudo apt install /path/to/package/name.deb
).
Con apt-get
versiones anteriores, primero debe mover su archivo deb al /var/cache/apt/archives/
directorio. Para ambos, después de ejecutar este comando, descargará automáticamente sus dependencias.
Instale gdebi
y abra su archivo .deb usándolo ( haga clic con el botón derecho -> Abrir con ). Instalará su paquete .deb con todas sus dependencias.
( Nota : APT mantiene el índice de paquete que es una base de datos de paquetes disponibles disponibles en repositorio definido en el /etc/apt/sources.list
archivo y en el /etc/apt/sources.list.d
directorio. Todos estos métodos no satisfarán la dependencia del software si las dependencias requeridas por el deb no están presentes en el índice del paquete .)
¿Por qué usar sudo apt-get install -f
despuéssudo dpkg -i /path/to/deb/file
(mencionado en el primer método)?
De man apt-get
:
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place.
Cuando dpkg
instala un paquete y no se satisface una dependencia del paquete, deja el paquete en un estado "no configurado" y ese paquete se considera roto.
sudo apt-get install -f
El comando intenta reparar este paquete roto instalando la dependencia que falta.
apt-cache search <package name>
. También puede usar apt-cache policy <package name>
, lo que también le dará información adicional.
apt-get install /path/to/package/name.deb
. Sería genial si el autor de esta respuesta decidiera integrar eso. Si no, agregaré esa respuesta en algún momento cuando tenga suficiente representante aquí
Instala tu foo.deb
archivo con dpkg -i foo.deb
. Si hay algunos errores con dependencias no resueltas, ejecute apt-get install -f
después.
Unable to locate package
intenté de esta manera y me quedé perplejo. Utilicé como en Windows solo el nombre del paquete después de cambiar a la carpeta de archivo. Debería ser ./<file name>
para Unix si está en la carpeta actual o en la ruta completa. Eso es si deb
no está en la carpeta presente en PATH
.
Aquí está la mejor manera de instalar un .deb
archivo en Ubuntu en la línea de comandos:
sudo gdebi skype.deb
Si aún no lo ha gdebi
instalado, instálelo usando sudo apt install gdebi-core
.
gdebi
buscará todas las dependencias del .deb
archivo y las instalará antes de intentar instalar el .deb
archivo. Esto me parece mucho mejor que sudo dpkg -i skype.deb && sudo apt install -f
. Este último está demasiado ansioso por eliminar dependencias en ciertas situaciones. Por ejemplo, cuando intenté instalar Skype, intentó eliminar 96 (!) Paquetes, incluidos paquetes como compiz
y unity
! gdebi
dio un mensaje de error mucho más claro:
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
(Aquí está la solución a ese problema en particular , por cierto).
Puede instalar un paquete .deb local de la siguiente manera:
sudo apt install ./foo.deb
Asegúrese de especificar una ruta local relativa o absoluta ( ./
si está en el directorio actual), de lo contrario, buscará foo.deb
en los repositorios remotos y fallará.
./
antes del deb
archivo.
Verifique las dependencias con dpkg -I my.deb
y apt-get install
las dependencias antes dpkg -i my.deb
.
Puede ser que usted puede copiar el
No funciona, my.deb
en /var/cache/apt/archives
e instalarlo directamente con apt-get
pero nunca lo intentó. apt-get
y dpkg
está buscando paquetes listados en archivos.
apt-get install my.deb
con apt-get install
? ¿Es para instalar desde el archivo deb? ¿Por qué necesitamos dpkg -i my.deb
después de eso?
.deb
s locales con dpkg -i
, entiendo que apt
no tiene una opción para instalarlos, aparte del directorio en el /var/cache/...
que se descargan (puedo estar equivocado)
apt-get install ./my.deb
hará algo, porque genera muchas cosas. ¿Qué hace?
-f
La respuesta más simple sería usar dpkg ejecutando dpkg -i packagename.deb
. Luego puede desinstalarlo ejecutando dpkg -r packagename.deb
.
apt-get
es un instalador de nivel superior basado en dpkg, y como tal podría hacerlo apt-get install packagename.deb
.
Sería beneficioso agregarlo a su directorio de archivos apt-get ( /var/cache/apt/archives
) para que pueda hacer referencia a él como un paquete con dependencias y no como un archivo .deb independiente.
Además, al agregarlo a su directorio de archivos apt-get, tiene la oportunidad de usar dependencias con apt-get install packagename
. Esto le permitiría instalarlo con cualquier dependencia agregada manualmente en lugar del sistema independiente basado en archivo de dpkg.
Modern apt-get se puede usar para instalar un paquete simplemente con apt-get install /path/to/package/name.deb
.
(debe hacerse como editar a la respuesta principal pero fue rechazado; consulte https://unix.stackexchange.com/posts/159114/edit )
apt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19
Es muy simple si quiero instalar Chrome.
Instala tu archivo de Chrome como:
dpkg -i googlechrome.deb.
A veces existe la posibilidad de obtener algunos errores de dependencia como los siguientes:
dpkg: dependency problems prevent configuration of google-chrome-stable:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.
Entonces, para resolver los problemas anteriores, debe agregar dependencias; dar el siguiente comando:
apt-get install -f
Después de dar el comando anterior, se agregarán dependencias a su máquina y .deb
se instalará su archivo de paquete Debian ( ).
aptitude
que también elimina paquetes innecesarios.dpkg
. En el caso de deb único, vaya con gdebi y en caso de múltiples debs, vaya al repositorio local APT .dpkg
no resuelve dependencias.