Warum wird Google PPA nach einem Upgrade auf eine neue Version wieder aktiviert?

9

PPAs werden normalerweise beim Upgrade deaktiviert und müssen manuell wieder aktiviert werden. Ich habe vor ungefähr einem Monat ein Upgrade auf 12.04 durchgeführt und festgestellt, dass meine anderen PPAs zwar alle deaktiviert waren, die Google-PPAs jedoch nicht deaktiviert waren. Warum ist das?

adempewolff
quelle
Können Sie verwandte Quellen.Listeneinträge bereitstellen?
Jasmin
@jasmines sorry, ich habe bereits alle anderen deaktivierten wieder aktiviert / auskommentiert. Dies ist das Standardverhalten in Ubuntu, daher sollte es einfach zu reproduzieren sein.
Adempewolff
@irrationalJohn Damit meinte ich, dass jeder, der mindestens ein Google PPA und mindestens ein anderes PPA aktiviert hatte, dieses Verhalten nach einem Distribution-Upgrade sehen würde. Für jemanden, der die anderen PPAs bereits aktualisiert und manuell wieder aktiviert hat (wie ich), müsste ein erneutes Upgrade durchgeführt werden, um sie zu reproduzieren. Alle meine Maschinen sind bereits 12.04 und ich habe keine Lust, eine auf 12.10 Alpha zu aktualisieren, oder ich würde sie selbst reproduzieren, um die Dateien bereitzustellen.
Adempewolff

Antworten:

11

(Dank an Jorge Castro für diese Antwort)

Die Google-Pakete installieren einen Cron-Job, /etc/cron.daily/um die Repository-Konfiguration anzupassen und die Quelle nach einem Release-Upgrade wieder zu aktivieren.

Jedes Google-Paket fügt hier ein eigenes Skript (oder einen Link zu einem Skript) ein. Zum Beispiel: google-musicmanager, google-chromeoder google-talkplugin(letzteres ein symbolischer Link zu einem Skript zu sein /opt/google/talkplugin/cron/google-talkplugin).

Hier ist die Beschreibung aus dem Google-Talkplugin-Skript:

# 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".

Das Skript wird:

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

Hier ist der Teil des Skripts, der die Repo-Konfiguration nach einem Release-Upgrade erkennt und wieder aktiviert.

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
}

Und hier ist die /etc/apt/sources.list.d/google-talkplugin.listDatei, die vom Skript erstellt wird.

### 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
quelle
Ich habe gerade bemerkt, dass bei diesem Vorgang im letzten Monat etwas schief gelaufen ist und die Google-Distribution nicht autorisiert war und sich aus irgendeinem Grund nicht erneut autorisiert hat. Ich hoffe, dass die manuelle Neuinstallation des Pakets die Dinge zurücksetzt.
Adempewolff