새 버전으로 업그레이드 한 후 Google PPA가 다시 활성화되는 이유는 무엇입니까?


9

PPA는 업그레이드 할 때 일반적으로 비활성화되며 수동으로 다시 활성화해야합니다. 약 한 달 전에 12.04로 업그레이드했는데 다른 PPA가 모두 비활성화되었지만 Google PPA는 비활성화 되지 않았습니다 . 왜 이런거야?


관련 source.list 항목을 제공 할 수 있습니까?
재스민

@jasmines 죄송합니다. 다른 모든 장애인은 이미 다시 활성화 / 주석 처리하지 않았습니다. 이것은 우분투의 기본 동작이므로 간단하게 재현 할 수 있습니다.
adempewolff

@irrationalJohn 내가 의미하는 바는 적어도 하나의 Google PPA와 하나 이상의 다른 PPA를 사용하는 사람은 배포판 업그레이드 후이 동작을 볼 수 있다는 것입니다. 다른 PPA (예 : 나와 같은)를 이미 업그레이드하고 수동으로 다시 활성화 한 경우 다시 업그레이드해야합니다. 내 모든 컴퓨터는 이미 12.04이며 12.10 알파로 업그레이드하는 것을 좋아하지 않거나 파일을 제공하기 위해 직접 재현하려고합니다.
adempewolff

답변:


11

(이 답변에 대해 Jorge Castro에게 감사드립니다)

Google 패키지 /etc/cron.daily/는 리포지토리 구성을 사용자 정의하고 릴리스 업그레이드 후 소스를 다시 활성화하기 위해 cron 작업을 설치합니다 .

각 Google 패키지는 여기에 자체 스크립트 (또는 스크립트 링크)를 넣습니다. 예를 들어 google-musicmanager, google-chrome또는 google-talkplugin(후자의 스크립트에 대한 심볼 링크 인 /opt/google/talkplugin/cron/google-talkplugin).

다음은 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".

스크립트는 :

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

릴리스 업그레이드 후 repo 구성을 감지하고 다시 활성화하는 스크립트 부분은 다음과 같습니다.

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
}

그리고 여기 /etc/apt/sources.list.d/google-talkplugin.list스크립트에 의해 생성 된 파일이 있습니다.

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

방금 지난 달에이 과정에서 문제가 발생했으며 Google 배포판이 승인되지 않았으며 어떤 이유로 자체 인증되지 않은 것으로 나타났습니다. 패키지를 수동으로 다시 설치하면 문제가 해결되기를 바랍니다.
adempewolff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.