Pourquoi Google PPA est-il réactivé après une mise à niveau vers une nouvelle version?

9

Les PPA sont normalement désactivés lors de la mise à niveau et doivent être réactivés manuellement. Je suis passé à 12.04 il y a environ un mois et je viens de remarquer que même si mes autres PPA avaient tous été désactivés, les PPA de Google n'étaient pas désactivés. Pourquoi est-ce?

adempewolff
la source
Pouvez-vous fournir des entrées sources.list connexes?
jasmins
@jasmines désolé, j'ai déjà réactivé / décommenté tous les autres handicapés. Il s'agit du comportement par défaut dans Ubuntu, il devrait donc être simple à reproduire.
adempewolff
@irrationalJohn ce que je voulais dire par là, c'est que toute personne qui avait au moins un PPA Google et au moins un autre PPA activé verrait ce comportement après une mise à niveau de la distribution. Pour quelqu'un qui a déjà mis à niveau et réactivé manuellement les autres PPA (comme moi), il devra à nouveau mettre à niveau pour se reproduire. Toutes mes machines sont déjà en 12.04 et je n'ai pas envie d'en mettre à jour en alpha 12.10 ou je le reproduirais moi-même pour fournir les fichiers.
adempewolff

Réponses:

11

(Nous remercions Jorge Castro pour cette réponse)

Les packages Google installent une tâche cron /etc/cron.daily/pour personnaliser la configuration du référentiel et réactiver la source après une mise à niveau de version.

Chaque package Google mettra son propre script (ou un lien vers un script) ici. Par exemple: google-musicmanager, google-chromeou google-talkplugin(ce dernier étant un lien symbolique vers un script à /opt/google/talkplugin/cron/google-talkplugin).

Voici la description du 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".

Le script:

  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. et
  5. # Detect if the repo config was disabled by distro upgrade and enable if necessary.

Voici la partie du script qui détecte et réactive la configuration du référentiel après une mise à niveau de version.

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
}

Et voici le /etc/apt/sources.list.d/google-talkplugin.listfichier créé par le 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
la source
Je viens de remarquer que quelque chose s'est mal passé avec ce processus au cours du dernier mois et que la distribution de Google n'était pas autorisée et, pour une raison quelconque, ne s'est pas réautorisée. J'espère que la réinstallation manuelle du package réinitialisera les choses.
adempewolff