升级后重新启用PPA / repos的最佳方法是什么?

当我从11.10升级到12.04时,重新启用我的PPA和添加存储库的最佳方法是什么?

您需要通过取消注释/etc/apt/sources.list.d/目录中文件中的行来单独添加/重新启用它们。

虽然升级时间是重新评估的好时机,但如果您只是使用PPA来获得更新版本的软件包,那么首先需要PPA。

我编写了一个bash脚本,用于删除在升级期间禁用的sources.list.d中所有文件中的前导哈希字符。

以下代码用于将raring源升级为saucy

如果要# disabled on upgrade to ...后缀#disable,请使用

 for f in /etc/apt/sources.list.d/*.list; do sudo sed -i 's/raring/saucy/g' $f; sudo sed -i 's/^# \(.*disabled on upgrade to.*\)/\1/g' $f;done 

如果要# disabled on upgrade to ...删除后缀#disable,请使用

 for f in /etc/apt/sources.list.d/*.list; do sudo sed -i 's/raring/saucy/g' $f; sudo sed -i 's/^# \(.*\) # disabled on upgrade to.*/\1/g' $f;done 

这是一个python脚本,它使用Python APT API来查找和启用此类源,同时将版本设置为当前版本:

 #! /usr/bin/python3 import aptsources.sourceslist as sl import lsb_release codename = lsb_release.get_distro_information()['CODENAME'] sources = sl.SourcesList() for source in sources.list: if source.comment.lower().find("disabled on upgrade") >= 0: source.dist = codename source.set_enabled(True) print(source) sources.save() 

如果你在没有sudo情况下运行它,它将无法保存更改,但它将显示将启用哪些源。 使用sudo运行以保存更改。

我创建了几个脚本来启用(重新启用)和禁用PPA,特别是在升级之后。 他们来了:

PPA重新启用脚本

 #! /bin/bash # PPA re-enable script # Use: ppa-reenable source.list # to reenable a PPA without its source line # Use: ppa-reenable src source.list # to reenable a PPA with its source line mod=1 file="$1" if [ $1 == "src" ]; then mod=""; file="$2"; fi; sudo sed -i "${mod}s/^# \(.*\) \(disabled on upgrade.*\)\?/\1/" "$file" 

PPA禁用脚本

 #! /bin/bash # PPA disable script # Use: ppa-disable source.list # to disable the PPA completely # Use: ppa-disable src source.list # to disable the source of the PPA only file="${1}" mod="" # If its only needed to disable the source if [ $1 = "src" ]; then mod="2"; file="${2}"; fi; # If source line is disabled, don't comment it out second="`sed -n 2p \"$file\"`" second="${second:0:1}" if ( [ $second == "#" ] && [ $mod != "2" ] ); then mod="1" fi sudo sed -i "${mod}s/^/# /" "$file" 

包含sudo ,因此您可以将此脚本存储在home bin目录中