Wie kann ich meine PPAs und hinzugefügten Repositorys nach dem Upgrade von 11.10 auf 12.04 am besten wieder aktivieren?
Wie kann ich meine PPAs und hinzugefügten Repositorys nach dem Upgrade von 11.10 auf 12.04 am besten wieder aktivieren?
Antworten:
Sie müssen sie alle einzeln hinzufügen / wieder aktivieren, indem Sie die Zeilen in den Dateien im /etc/apt/sources.list.d/
Verzeichnis auskommentieren .
Die Aktualisierungszeit ist jedoch ein guter Zeitpunkt, um eine Neubewertung vorzunehmen, wenn Sie die PPA zuerst benötigen, wenn Sie nur eine verwenden, um eine neuere Version eines Pakets zu erhalten.
Ich habe ein Bash-Skript geschrieben, das das führende Hash-Zeichen aus allen Dateien entfernt sources.list.d
, die während des Upgrades deaktiviert wurden.
Der folgende Code dient zum Aktualisieren von raring
Quellen auf saucy
.
Wenn Sie das Suffix beibehalten möchten # disabled on upgrade to ...
, verwenden Sie
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
Wenn Sie das Suffix löschen möchten # disabled on upgrade to ...
, verwenden Sie
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
Hier ist ein Python-Skript, das die Python APT-API verwendet, um solche Quellen zu finden und zu aktivieren, während das Release auf das aktuelle Release gesetzt wird:
#! /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()
Wenn Sie es ohne ausführen sudo
, können die Änderungen nicht gespeichert werden, es wird jedoch angezeigt, welche Quellen aktiviert sind. Führen Sie mit aus sudo
, um die Änderungen zu speichern.
sources.list.d
und drei fremde sources.list
. Könnte dies etwas sein, das Ubuntu jetzt automatisch erledigt?
Ich habe einige Skripte erstellt, um PPAs zu aktivieren (erneut zu aktivieren) und zu deaktivieren, insbesondere nach einem Upgrade. Hier sind sie:
PPA-Skript erneut aktivieren
#! /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-Deaktivierungsskript
#! /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"
Das sudo
ist enthalten, damit Sie dieses Skript in Ihrem Home-Bin-Verzeichnis speichern können