¿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?

adempewolff
fuente
¿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
adempewolff
fuente
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