Cuando actualizo de 11.10 a 12.04, ¿cuál es la mejor manera de volver a habilitar mis PPA y repositorios agregados?
Cuando actualizo de 11.10 a 12.04, ¿cuál es la mejor manera de volver a habilitar mis PPA y repositorios agregados?
Respuestas:
Debe agregarlos todos / volverlos a habilitar individualmente descomentando las líneas en los archivos en el /etc/apt/sources.list.d/
directorio.
Aunque el tiempo de actualización es un buen momento para reevaluar si necesita el PPA en primer lugar si solo estaba usando uno para obtener una versión más nueva de un paquete.
Escribí un script bash que elimina el carácter hash principal de todos los archivos sources.list.d
que se deshabilitaron durante la actualización.
El siguiente código es para actualizar las raring
fuentes a saucy
.
Si desea conservar el sufijo # disabled on upgrade to ...
, use
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
si desea eliminar el sufijo # disabled on upgrade to ...
, use
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
Aquí hay una secuencia de comandos de Python que utiliza la API APT de Python para buscar y habilitar dichas fuentes, mientras configura la versión para la versión actual:
#! /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()
Si lo ejecuta sin sudo
, no podrá guardar los cambios, pero mostrará qué fuentes se habilitarían. Ejecute con sudo
para guardar los cambios.
sources.list.d
y tres extraterrestres sources.list
. ¿Podría ser esto algo de lo que Ubuntu se ocupa automáticamente ahora?
He creado un par de scripts para habilitar (volver a habilitar) y deshabilitar PPA, especialmente después de una actualización. Aquí están:
Script de reactivación de 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 de desactivación de 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"
Se sudo
incluye para que pueda almacenar este script en su directorio de inicio