(この回答については、ホルヘカストロのクレジット)
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".
スクリプトは:
# Install the repository signing key
# Update the Google repository if it's not set correctly.
# Add the Google repository to the apt sources.
# Remove our custom sources list file.
そして
# 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