Quel est le meilleur moyen de réactiver les PPA / Repo après une mise à niveau?


Réponses:


28

Vous devez tous les ajouter / réactiver individuellement en supprimant la mise en commentaire des lignes dans les fichiers du /etc/apt/sources.list.d/répertoire.

Bien que le temps de mise à niveau soit un bon moment pour réévaluer si vous avez besoin du PPA si vous en utilisiez juste un pour obtenir une version plus récente d'un package.


8

J'ai écrit un script bash qui supprime le caractère de hachage de tous les fichiers sources.list.dqui ont été désactivés lors de la mise à niveau.

Le code suivant concerne la mise à niveau des raringsources vers saucy.

Si vous voulez conserver le suffixe # disabled on upgrade to ..., utilisez

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 vous voulez supprimer le suffixe # disabled on upgrade to ..., utilisez

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

4

Voici un script python qui utilise l'API Python APT pour rechercher et activer de telles sources, tout en définissant la version dans la version actuelle:

#! /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 vous l'exécutez sans sudo, il ne pourra pas enregistrer les modifications, mais il indiquera quelles sources seraient activées. Exécuter avec sudopour enregistrer les modifications.


Est-ce que cela remplace, par exemple, '# deb cran.rstudio.com/bin/linux/ubuntu astucieux /' avec '# deb cran.rstudio.com/bin/linux/ubuntu bionic'? Que se passerait-il si vous ne le faisiez pas (comme la réponse vous attend)?
— Jeffrey Benjamin Brown

@JeffreyBenjaminBrown c'est le cas, et si vous ne le remplacez pas, il se peut que les dépendances ne puissent pas être satisfaites.
— Muru

J'ai trouvé que le mot "astucieux" (nom de code 17.10) avait été remplacé par "bionique" dans certaines des lignes commentées "désactivé lors de la mise à niveau ...", alors que d'autres ne l'étaient pas. Je viens de commenter toutes les lignes avec ce commentaire "disabled" et apt a continué à fonctionner (même si j'ai dû réinstaller gcc pour une raison quelconque). Et j'utilise beaucoup de mises en pension tierces - 13 fichiers sources.list.det trois fichiers extraterrestres sources.list. Est-ce que c'est quelque chose que Ubuntu prend en charge automatiquement maintenant?
— Jeffrey Benjamin Brown

@JeffreyBenjaminBrown Peut-être, je n'ai pas mis à niveau ces derniers temps (nouvelles installations, généralement), alors ne sais pas.
— Muru

1
Cela semble avoir cassé mes fichiers sources apt pour 19h10
— Dreamcat4

1

J'ai créé quelques scripts pour activer (réactiver) et désactiver les PPA, spécialement après une mise à niveau. Les voici:

Script de réactivation 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 désactivation 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"

Le sudoest inclus pour que vous puissiez enregistrer ce script dans votre répertoire bin à domicile

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.