Usando dpkg para instalar paquetes de actualización y dist-upgrade

9

Así que estoy jugando con la instalación de paquetes fuera de línea en el servidor 12.04, habiendo descargado paquetes recuperando y recuperando sus URIs usando las instrucciones aquí: http://www.webupd8.org/2009/11/get-list-of-packages- and-dependencies.html

Hice esto con apt-get upgradey apt-get dist-upgrade, luego, comencé a instalar los paquetes descargados usando dpkg -i. Entonces el proceso se veía así:

  1. Obtener URI
  2. wgetlos paquetes a una carpeta ( upgradepaquetes a / upgrade y dist-upgradepaquetes a / dist-upgrade)
  3. correr dpkg -i /upgrade/*.deby luegodpkg -i /dist-upgrade/*.deb

Mi pregunta es: ¿este método de instalación manual de los paquetes actualizados correctamente actualizaría todo, dando el mismo resultado que si simplemente lo ejecutara apt-get upgradey apt-get dist-upgradenormalmente? ¿O hay algo que hacen los apt-getcomandos normales que no se haría de esta manera?

R4mzy
fuente

Respuestas:

15

En lugar de usar dpkg, que es un administrador de paquetes de bajo nivel, sería mejor usarlo apt. Para instalar los archivos .deb utilizando apt, cópielos en la memoria caché de apt

sudo cp *.deb /var/cache/apt/archives/

y luego solo haz la actualización regular:

apt-get upgrade

El aptcomando usará los archivos en su caché en lugar de descargarlos de la red, por lo que prácticamente sirve para su propósito.

sayantankhan
fuente
Gracias, eso funciona muy bien. Aunque todavía tengo curiosidad acerca de qué es exactamente aptdiferente dpkgen este caso, dado que originalmente solía aptobtener los URI de todos los paquetes, incluidas sus dependencias. Cuando se trata del acto real de instalación, parece que aptsolo se usa dpkgpara desempacar e instalar los paquetes, la única diferencia es que aptcomprueba las dependencias de antemano (pero eso ya está cubierto porque solía aptdescargar los paquetes, incluyendo dependencias, en primer lugar). ¿A menos que me falte algo?
R4mzy
Además, parte de la razón por la que pregunto es que me preocupa qué apt'scomportamiento podría tener, por ejemplo, si los paquetes descargados se copiaron en un sistema que tenía acceso a Internet y luego aptve que algunos o todos los paquetes descargados no son los últimos (pero más nuevo que lo que está instalado actualmente) y luego intenta obtener las versiones actualizadas de esos paquetes en particular (quiero que instale solo los paquetes / versiones específicos que he descargado). Básicamente, ¿ aptda preferencia a la última versión en línea o dará preferencia a una versión local más nueva pero no la última?
R4mzy
1
@ R4mzy Tienes un punto válido allí. aptintentará obtener el último paquete de Internet, incluso si hay paquetes más antiguos disponibles localmente. Es posible que deba cambiar /etc/apt/sources.listt para asegurarse de que instala los paquetes locales.
sayantankhan
@sayantankhan, ¿puedes mostrar cómo se vería eso en tu respuesta? Pregunto porque he copiado mi archivo .deb /var/cache/apt/archives/pero sudo apt-get update && sudo apt-get upgradeno lo veo ni actualizo / actualizo el paquete que necesito. Siento que necesito actualizar la lista, pero no estoy seguro de cómo.
Todd
1
@Todd No lo he hecho yo mismo, pero aquí hay una manera de que alguien anule la prioridad del paquete apt.
sayantankhan