En la última semana, recibí el mensaje anterior cuando permití que el actualizador automático se ejecutara desde la interfaz de usuario. El mensaje continúa diciendo: "Esto requiere instalar paquetes de fuentes no autenticadas". Leí que se recomienda apt-upgrade
. Pero no encontré ninguna explicación de por qué esta es la solución prevista.
Me gustaría entender el proceso de lanzamiento de actualizaciones automáticas, con respecto a por qué requiere el apt-upgrade
momento, antes de tocar mi sistema, que de otro modo sería muy estable, de esa manera. No recuerdo actualizaciones que requieran esto para mi sistema en los últimos años.
Ubuntu 14.04 LTS.
¡Gracias!
Respuesta1
Para entender por qué sucede esto, primero se debe entender cómo funciona stock apt (es decir, apt sin prioridades establecidas). Digamos que desea ejecutar una actualización usando apt upgrade
(supongo que esto es lo que quiere decir con apt-upgrade, ya que no puedo encontrar ninguna información en apt-upgrade
): primero, apt verificará las versiones locales de todo el software instalado con versiones remotas en un repositorio y vea si es necesario que haya una actualización de los paquetes. Para demostrarlo, creemos un escenario hipotético en el que sayhello
es necesario actualizar 1 paquete.
Aquí hay un registro de cambios imaginario:
sayhello 1.1 now depends on libhello (>= 1.0) to print "hello."
Ahora imagina que tienes dos fuentes enumeradas en tu lista de fuentes, una es los repositorios estándar de Ubuntu y la otra es Jim's amazing taco repo
.
El repositorio de Jim contiene estos 3 paquetes:
jimplayer 2.5 (No depends)
jimsbetterhello 1.0 (Depends on libhello (>= 2.0))
libhello 2.0 (No depends)
Solo usaste este repositorio para instalar jimplayer hace un tiempo, pero luego parece que Jim decidió agregar jimsbetterhello al repositorio. Ahora aquí es donde las cosas se ponen interesantes...
Los repositorios de Ubuntu todavía usan libhello 1.5 por razones de compatibilidad (ya que algunos paquetes aún no funcionan en la nueva versión de libhello)
Ahora, cuando apt va a actualizarse sayhello
, se encuentra con un enigma. ¡Hay 2 versiones que libhello
se pueden instalar! ¿Cuál debería elegir? Bueno, de forma predeterminada, apt elegirá la última versión de un paquete. doesn't conflict with other currently installed packages.
Ahora, normalmente este proceso es transparente para un usuario, pero si no ha agregado las claves GPG para un repositorio de terceros, o las claves han cambiado o alguna otra cosa , aunque haya instalado sayhello
desde los repositorios predeterminados de Ubuntu, libhello 2.0 será un paquete que no será de confianza y apt le advertirá sobre ello. Esta es sólo una de las muchas permutaciones diferentes de por qué apt podría advertirle sobre esto. También podría deberse a que faltan paquetes que solo están disponibles en un repositorio de terceros que haya agregado. La mejor solución es configurar los repositorios predeterminados con una prioridad más alta, así como eliminar los repositorios de terceros innecesarios sin que sus claves se agreguen al llavero confiable.