¿Por qué se vuelve a habilitar el PPA de Google después de una actualización a una nueva versión?


9

Los PPA normalmente se deshabilitan cuando se actualiza, y se deben volver a habilitar manualmente. Actualicé a 12.04 hace aproximadamente un mes y me di cuenta de que si bien mis otros PPA habían sido desactivados, los PPA de Google no estaban desactivados. ¿Por qué es esto?


¿Puede proporcionar entradas relacionadas de sources.list?
Jasmines

@jasmines lo siento, ya volví a habilitar / descomentar todos los demás deshabilitados. Este es el comportamiento predeterminado en Ubuntu, por lo que debería ser simple de reproducir.
adempewolff

@irrationalJohn lo que quise decir con eso fue que cualquiera que tuviera al menos un PPA de Google y al menos otro PPA habilitado vería este comportamiento después de una actualización de distribución. Para alguien que ya ha actualizado y vuelto a habilitar manualmente los otros PPA (como yo), necesitarían actualizar nuevamente para reproducirse. Todas mis máquinas ya son 12.04 y no tengo ganas de actualizar ninguna a una alfa de 12.10 o la reproduciría yo mismo para proporcionar los archivos.
adempewolff

Respuestas:


11

(Crédito a Jorge Castro por esta respuesta)

Los paquetes de Google instalan un trabajo cron /etc/cron.daily/para personalizar la configuración del repositorio y volver a habilitar la fuente después de una actualización de lanzamiento.

Cada paquete de Google pondrá aquí su propio script (o un enlace a un script). Por ejemplo: google-musicmanager, google-chromeo google-talkplugin(siendo este último un enlace a una secuencia de comandos en /opt/google/talkplugin/cron/google-talkplugin).

Aquí está la descripción del script google-talkplugin:

# This script is part of the google-talkplugin package.
#
# It creates the repository configuration file for package updates, and it
# monitors that config to see if it has been disabled by the overly aggressive
# distro upgrade process (e.g.  intrepid -> jaunty). When this situation is
# detected, the respository will be re-enabled. If the respository is disabled
# for any other reason, this won't re-enable it.
#
# This functionality can be controlled by creating the $DEFAULTS_FILE and
# setting "repo_add_once" and/or "repo_reenable_on_distupgrade" to "true" or
# "false" as desired. An empty $DEFAULTS_FILE is the same as setting both values
# to "false".

El guión hará lo siguiente:

  1. # Install the repository signing key
  2. # Update the Google repository if it's not set correctly.
  3. # Add the Google repository to the apt sources.
  4. # Remove our custom sources list file. y
  5. # Detect if the repo config was disabled by distro upgrade and enable if necessary.

Aquí está la parte del script que detecta y vuelve a habilitar la configuración del repositorio después de una actualización de lanzamiento.

handle_distro_upgrade() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  find_apt_sources
  SOURCELIST="$APT_SOURCESDIR/google-talkplugin.list"
  if [ -r "$SOURCELIST" ]; then
    REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIG[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
    if [ $? -eq 0 ]; then
      sed -i -e "s,^[[:space:]]*#[[:space:]]*\($REPOCONFIG\)[[:space:]]*# disabled on upgrade to .*,\1," \
        "$SOURCELIST"
      LOGGER=$(which logger 2> /dev/null)
      if [ "$LOGGER" ]; then
        "$LOGGER" -t "$0" "Reverted repository modification: $REPOLINE."
      fi
    fi
  fi
}

Y aquí está el /etc/apt/sources.list.d/google-talkplugin.listarchivo creado por el script.

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/talkplugin/deb/ stable main

Acabo de notar que algo salió mal con este proceso en el último mes y la distribución de Google no estaba autorizada y por alguna razón no se ha vuelto a autorizar. Espero reinstalar manualmente el paquete restablecerá las cosas.
adempewolff
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.