Quando aggiorno dall'11.10 al 12.04, qual è il modo migliore per riattivare i miei PPA e i repository aggiunti?
Quando aggiorno dall'11.10 al 12.04, qual è il modo migliore per riattivare i miei PPA e i repository aggiunti?
Risposte:
È necessario aggiungerli tutti nuovamente / riattivarli singolarmente decommentando le righe nei file nella /etc/apt/sources.list.d/
directory.
Sebbene il tempo di aggiornamento sia un buon momento per rivalutare se hai bisogno del PPA in primo luogo se ne stavi usando uno solo per ottenere una versione più recente di un pacchetto.
Ho scritto uno script bash che rimuove il carattere hash principale da tutti i file sources.list.d
che sono stati disabilitati durante l'aggiornamento.
Il codice seguente è per l'aggiornamento delle raring
fonti a saucy
.
Se si desidera mantenere il suffisso # disabled on upgrade to ...
, utilizzare
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
se si desidera eliminare il suffisso # disabled on upgrade to ...
, utilizzare
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
Ecco uno script Python che utilizza l'API APT Python per trovare e abilitare tali origini, impostando la versione alla versione corrente:
#! /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()
Se lo esegui senza sudo
, non sarà in grado di salvare le modifiche, ma mostrerà quali fonti sarebbero abilitate. Esegui con sudo
per salvare le modifiche.
sources.list.d
e tre alien in sources.list
. Potrebbe essere qualcosa di cui Ubuntu si occupa automaticamente adesso?
Ho creato un paio di script per abilitare (riattivare) e disabilitare i PPA, specialmente dopo un aggiornamento. Eccoli:
Script di riattivazione 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"
Script di disabilitazione 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"
Il sudo
è incluso in modo da poter memorizzare questo script nella vostra home directory bin