새 버전으로 업그레이드 한 후 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.