Perché Google PPA viene riattivato dopo un aggiornamento a una nuova versione?


9

I PPA sono normalmente disabilitati durante l'aggiornamento e devono essere riattivati ​​manualmente. Ho aggiornato alla 12.04 circa un mese fa e ho appena notato che mentre i miei altri PPA erano stati disabilitati, i PPA di Google non erano disabilitati. Perchè è questo?


Potete fornire le voci relative a sources.list?
gelsomini

@jasmines mi dispiace, ho già riattivato / decommentato tutti gli altri disabili. Questo è il comportamento predefinito in Ubuntu, quindi dovrebbe essere semplice da riprodurre.
adempewolff,

@irrationalJohn significava che chiunque avesse almeno un PPA di Google e almeno un altro PPA abilitato avrebbe visto questo comportamento dopo un aggiornamento della distribuzione. Per qualcuno che ha già aggiornato e riattivato manualmente gli altri PPA (come me) avrebbero bisogno di aggiornare di nuovo per riprodurre. Tutte le mie macchine sono già 12.04 e non ho voglia di aggiornarne una a 12.10 alpha o la riproduco da sola per fornire i file.
adempewolff,

Risposte:


11

(Ringraziamo Jorge Castro per questa risposta)

I pacchetti Google installano un cron job /etc/cron.daily/per personalizzare la configurazione del repository e riattivare l'origine dopo un aggiornamento della versione.

Ogni pacchetto di Google inserirà il proprio script (o un collegamento a uno script) qui. Ad esempio: google-musicmanager, google-chromeo google-talkplugin(quest'ultimo è un collegamento simbolico a uno script /opt/google/talkplugin/cron/google-talkplugin).

Ecco la descrizione dallo 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".

La sceneggiatura dovrà:

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

Ecco la parte dello script che rileva e riattiva la configurazione repo dopo un aggiornamento della versione.

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
}

Ed ecco il /etc/apt/sources.list.d/google-talkplugin.listfile che viene creato dallo 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

Ho appena notato che qualcosa è andato storto con questo processo nell'ultimo mese e la distro di Google non è stata autorizzata e per qualche ragione non si è autorizzata nuovamente. Spero che reinstallare manualmente il pacchetto ripristinerà le cose.
Adempewolff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.