Quando atualizo de 11.10 para 12.04, qual é a melhor maneira de reativar meus PPAs e repositórios adicionados?
Quando atualizo de 11.10 para 12.04, qual é a melhor maneira de reativar meus PPAs e repositórios adicionados?
Respostas:
Você precisa adicioná-los todos de volta / reativá-los individualmente, descomentando as linhas nos arquivos no /etc/apt/sources.list.d/
diretório
Embora o tempo de atualização seja um bom momento para reavaliar se você precisa do PPA em primeiro lugar, se estivesse usando apenas um para obter uma versão mais recente de um pacote.
Eu escrevi um script bash que remove o caractere hash principal de todos os arquivos sources.list.d
desabilitados durante a atualização.
O código a seguir é para atualizar raring
fontes para saucy
.
Se você deseja manter o sufixo # 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
se você deseja excluir o sufixo # 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
Aqui está um script python que usa a API do Python APT para encontrar e ativar essas fontes, enquanto define o release para o release atual:
#! /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 você executá-lo sem sudo
, ele não poderá salvar as alterações, mas mostrará quais fontes seriam ativadas. Execute com sudo
para salvar as alterações.
sources.list.d
e três alienígenas sources.list
. Isso pode ser algo que o Ubuntu cuida automaticamente agora?
Criei alguns scripts para ativar (reativar) e desativar PPAs, especialmente após uma atualização. Aqui estão eles:
Script de reativação do 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 desativação do 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"
O sudo
está incluído para que você possa armazenar esse script no seu diretório bin casa