Tại sao google PPA được kích hoạt lại sau khi nâng cấp lên bản phát hành mới?


9

PPA thường bị vô hiệu hóa khi bạn nâng cấp và phải được bật lại theo cách thủ công. Tôi đã nâng cấp lên 12.04 khoảng một tháng trước và tôi nhận thấy rằng trong khi tất cả các PPA khác của tôi đều bị vô hiệu hóa, các PPA của Google không bị vô hiệu hóa. Tại sao lại thế này?


Bạn có thể cung cấp các mục nguồn.list liên quan?
jasmines

@jasmines xin lỗi, tôi đã bật lại / bỏ ghi chú tất cả những người khuyết tật khác. Đây là hành vi mặc định trong Ubuntu nên việc tái tạo nó rất đơn giản.
adempewolff

@irrationalJohn điều tôi muốn nói là bất cứ ai có ít nhất một PPA google và ít nhất một PPA khác được kích hoạt sẽ thấy hành vi này sau khi nâng cấp bản phân phối. Đối với ai đó đã nâng cấp và tự kích hoạt lại các PPA khác (như tôi), họ sẽ cần nâng cấp lại để tái tạo. Tất cả các máy của tôi đã là 12.04 và tôi không muốn nâng cấp lên 12.10 alpha hoặc tôi sẽ tự sao chép nó để cung cấp các tệp.
adempewolff

Câu trả lời:


11

(Tín dụng cho Jorge Castro cho câu trả lời này)

Các gói Google cài đặt một công việc /etc/cron.daily/định kỳ để lưu giữ cấu hình kho lưu trữ và kích hoạt lại nguồn sau khi nâng cấp bản phát hành.

Mỗi gói Google sẽ đặt tập lệnh riêng (hoặc liên kết đến tập lệnh) tại đây. Ví dụ : google-musicmanager, google-chromehoặc google-talkplugin(sau này là một liên kết tượng trưng đến tập lệnh tại /opt/google/talkplugin/cron/google-talkplugin).

Dưới đây là mô tả từ tập lệnh 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".

Kịch bản sẽ:

  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.

Đây là một phần của tập lệnh phát hiện và kích hoạt lại cấu hình repo sau khi nâng cấp bản phát hành.

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
}

Và đây là /etc/apt/sources.list.d/google-talkplugin.listtập tin được tạo bởi kịch bản.

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

Tôi chỉ nhận thấy rằng đã xảy ra sự cố với quy trình này trong tháng trước và bản phân phối của Google là trái phép và vì một lý do nào đó đã không được ủy quyền lại. Tôi hy vọng cài đặt lại gói thủ công sẽ thiết lập lại mọi thứ.
adempewolff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.