Por que o PPA do Google é reativado após uma atualização para uma nova versão?

9

Os PPAs normalmente são desativados quando você atualiza e devem ser reativados manualmente. Atualizei para 12.04 há cerca de um mês e notei que, enquanto meus outros PPAs estavam todos desativados, os PPAs do Google não estavam desativados. Por que é isso?

adempewolff
fonte
Você pode fornecer entradas sources.list relacionadas?
jasmins
@jasmines desculpe, eu já reativei / descomentei todos os outros desativados. Esse é o comportamento padrão no Ubuntu, portanto, deve ser simples de reproduzir.
Adempewolff
@irrationalJohn, o que eu quis dizer com isso foi que qualquer pessoa que tivesse pelo menos um PPA do Google e pelo menos um outro PPA ativado veria esse comportamento após uma atualização de distribuição. Para alguém que já tenha atualizado e reativado manualmente os outros PPAs (como eu), seria necessário atualizar novamente para reproduzir. Todas as minhas máquinas já são 12.04 e eu não pretendo atualizar nenhuma para um alfa 12.10 ou reproduzi-a para fornecer os arquivos.
Adempewolff

Respostas:

11

(Agradecemos a Jorge Castro por esta resposta)

Os pacotes do Google instalam uma tarefa cron /etc/cron.daily/para custumizar a configuração do repositório e reativar a fonte após uma atualização de versão.

Cada pacote do Google colocará seu próprio script (ou um link para um script) aqui. Por exemplo: google-musicmanager, google-chromeou google-talkplugin(sendo este último uma ligação simbólica de um script a /opt/google/talkplugin/cron/google-talkplugin).

Aqui está a descrição do 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".

O script irá:

  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.

Aqui está a parte do script que detecta e reativa a configuração do repositório após uma atualização de versão.

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
}

E aqui está o /etc/apt/sources.list.d/google-talkplugin.listarquivo criado pelo 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
fonte
Acabei de perceber que algo deu errado com esse processo no mês passado e a distribuição do Google não foi autorizada e, por algum motivo, não se autorizou novamente. Espero que a reinstalação manual do pacote redefina as coisas.
11382 adempewolff