Comment puis-je obtenir une liste de tous les référentiels et PPA à partir de la ligne de commande dans un script d'installation?

217

Je sais comment lister tous les paquets installés sur mon système.

Mais comment puis-je obtenir une liste de tous les référentiels et des PPA dans un script que je peux exécuter sur une nouvelle machine pour répliquer la configuration du référentiel, y compris les clés?

Je sais que je peux examiner /etc/apt/sources.listet /etc/apt/sources.list.d, mais je cherche un moyen de générer un script qui exécute toutes les apt-add-repositorycommandes sur un nouveau système (permettant d’obtenir toutes les clés).

Des idées?

Stwissel
la source

Réponses:

106

Vous pouvez tout montrer avec:

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*
wojox
la source
13
Qu'en est-il egrep -v '^#|^ *$' /etc/apt/sources.list /etc/apt/sources.list.d/*de supprimer les lignes commentées et les lignes vides?
3
Pourriez-vous s'il vous plaît expliquer l'utilisation de ^after grepin grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*?
4
@ vasa1 Le signe ^ et le signe dollar $ sont des métacaractères qui correspondent respectivement à la chaîne vide au début et à la fin d'une ligne.
Wojox
4
J'utilise grep ^ [^ #] ... - Il masque automatiquement toutes les sources commentées
Ross Aiken
13
Si vous ne filtrez rien, ne serait-il pas plus simple de lancercat /etc/apt/sources.list /etc/apt/sources.list.d/*
jbo5112
99

Merci pour les pointeurs. Avec un petit nettoyage, j'ai obtenu un script qui liste les PPA, mais pas tout autre référentiel:

#! /bin/sh 
# listppa Script to get all the PPA installed on a system ready to share for reininstall
for APT in `find /etc/apt/ -name \*.list`; do
    grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        echo sudo apt-add-repository ppa:$USER/$PPA
    done
done

Lorsque vous appelez avec listppa > installppa.shvous obtenez un script que vous pouvez copier sur un nouvel ordinateur pour réinstaller tous les PPA.

Prochain arrêt: faites cela pour les autres dépôts:

#! /bin/sh
# Script to get all the PPA installed on a system
for APT in `find /etc/apt/ -name \*.list`; do
    grep -Po "(?<=^deb\s).*?(?=#|$)" $APT | while read ENTRY ; do
        HOST=`echo $ENTRY | cut -d/ -f3`
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        #echo sudo apt-add-repository ppa:$USER/$PPA
        if [ "ppa.launchpad.net" = "$HOST" ]; then
            echo sudo apt-add-repository ppa:$USER/$PPA
        else
            echo sudo apt-add-repository \'${ENTRY}\'
        fi
    done
done

Cela devrait faire l'affaire. J'avais besoin d'une question sur le super-utilisateur pour déterminer la regex correcte.

Stwissel
la source
1
Dans votre grep -oexemple, l' \` in [a-z0-9\-]ne fait pas ce que vous attendez. Il correspond en fait à une barre oblique inverse littérale . Vous n'avez pas besoin d' échapper à la -quand il est au début ou à la fin de la []liste; en fait, vous ne pouvez pas y échapper ! .. Dans ce cas, le \`problème (probablement) ne posera pas de problème, car vous ne rencontrerez (espérons-le) pas de barre oblique inverse dans l' debentrée.
Peter.O
2
Notez que les noms PPA peuvent contenir des points, alors je pense que vous voulez changer votre expression rationnelle enhttp://ppa.launchpad.net/[a-z0-9-]\+/[a-z0-9.-]\+
kynan
Non, vous souhaitez modifier l'expression rationnelle au [[:graph:]] lieu de, [a-z...blah.anything]car cela correspond à tous les caractères alphanumériques + de ponctuation - c'est ce en quoi consistent les noms PPA.
MichalH
Je suppose que vous devriez inclure un debmot au début de chaque ligne de dépôt, si ce n’est pas indiqué dans le ppa:$USER/$PPAformulaire.
Jarno
@stwissel une raison particulière que vous avez utilisée find puis grep? Vous pouvez facilement faire un glob que le shell analyse et le transmettre à grep. grep -Po "(?<=^deb\s).*?(?=#|$)" /etc/apt/{sources.list,sources.list.d/*.list} | while read ENTRY ; do echo $ENTRY; doneNotez que, tel qu'écrit, ceci vous indique le nom du fichier d'où provient chaque entrée, vous devez donc effectuer un découpage du début au résultat du premier point, mais ce n'est pas trop difficile avec couper. Vous pouvez également souhaiter le transmettre uniqsi vous ne voulez pas plusieurs entrées pour la même source (par exemple, si Google Chrome Stable / Beta / Dev est installé).
dragon788
23

Je suis surpris que le moyen le plus simple mais le plus efficace de rassembler toutes les sources de logiciels binaires activées avec le fichier dans lequel elles ont été spécifiées n'ait pas encore été publié:

grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/

De tous les fichiers traités, cela imprimera chaque ligne en commençant par deb. Cela exclut les lignes commentées ainsi que les deb-srclignes permettant d'activer les référentiels de code source.

Il ne recherche en réalité que tous les *.listfichiers qui seront analysés apt, mais par exemple, aucun *.list.savefichier utilisé pour la sauvegarde ou autres noms illégaux.


Si vous voulez une sortie plus courte mais peut-être seulement dans 99,9% des cas, avec une recherche excessive de fichiers (inclut tous les /etc/apt/sources.list*fichiers et répertoires, et pas seulement /etc/apt/sources.list/ `/etc/apt/sources.list.d/*), vous pouvez également: utilisez ceci:

grep -r --include '*.list' '^deb ' /etc/apt/sources.list*

À moins qu'il y ait des fichiers qui ne devraient pas être là, le résultat sera le même.


Voici un exemple de sortie sur ma machine:

/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily main restricted
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates main restricted
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily universe
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates universe
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily multiverse
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates multiverse
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-backports main restricted universe multiverse
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security main restricted
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security universe
/etc/apt/sources.list:deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security multiverse
/etc/apt/sources.list:deb http://archive.canonical.com/ubuntu wily partner
/etc/apt/sources.list.d/maarten-fonville-ubuntu-ppa-wily.list:deb http://ppa.launchpad.net/maarten-fonville/ppa/ubuntu wily main
/etc/apt/sources.list.d/webupd8team-ubuntu-tor-browser-wily.list:deb http://ppa.launchpad.net/webupd8team/tor-browser/ubuntu wily main
/etc/apt/sources.list.d/fossfreedom-ubuntu-indicator-sysmonitor-wily.list:deb http://ppa.launchpad.net/fossfreedom/indicator-sysmonitor/ubuntu wily main
/etc/apt/sources.list.d/getdeb.list:deb http://archive.getdeb.net/ubuntu wily-getdeb apps

Si vous voulez une sortie plus jolie, passons au travers sed:

grep -r --include '*.list' '^deb ' /etc/apt/ | sed -re 's/^\/etc\/apt\/sources\.list((\.d\/)?|(:)?)//' -e 's/(.*\.list):/\[\1\] /' -e 's/deb http:\/\/ppa.launchpad.net\/(.*?)\/ubuntu .*/ppa:\1/'

Et nous verrons ceci:

deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily main restricted
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates main restricted
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily universe
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates universe
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily multiverse
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-updates multiverse
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-backports main restricted universe multiverse
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security main restricted
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security universe
deb http://ftp-stud.hs-esslingen.de/ubuntu/ wily-security multiverse
deb http://archive.canonical.com/ubuntu wily partner
[maarten-fonville-ubuntu-ppa-wily.list] ppa:maarten-fonville/ppa
[webupd8team-ubuntu-tor-browser-wily.list] ppa:webupd8team/tor-browser
[fossfreedom-ubuntu-indicator-sysmonitor-wily.list] ppa:fossfreedom/indicator-sysmonitor
[getdeb.list] deb http://archive.getdeb.net/ubuntu wily-getdeb apps
Byte Commander
la source
1
D'après la réponse acceptée, il semble que l'OP souhaitait que les AAE soient indiqués dans le ppa:<user>/<project>formulaire.
Muru
La question demande en réalité de générer un script qui installe / active tous les référentiels. Mais le titre de la question ne concerne que leur liste. De plus, la deuxième réponse la mieux notée les répertorie également, mais beaucoup trop.
Byte Commander
Bien, mais j'avais déjà voté. : D
muru
Vous pouvez utiliser l'option `-h` de grep pour omettre les noms de fichiers.
jarno le
11

Exécutez la commande suivante:

apt-cache policy | grep http | awk '{print $2 $3}' | sort -u

La source

Nikos
la source
En bionique, cela affiche des lignes telles que ' mirrors.nic.funet.fi/ubuntubionic-security/main '
jarno
1
Remarque: apt-cache policyne montrera que le repos après que vous avez exécuté apt-get update. Si vous venez d'ajouter un repo avec add-apt-repository, il ne s'affichera pas jusqu'à apt-cache policyce que vous apt-get update
couriez
Par @wisbucky: sudo apt update > /dev/null 2>&1 && sudo apt-cache policy | grep http | awk '{print $2 $3}' | sort -ufonctionne bien. gist.github.com/bmatthewshea/229da822f1f02157bff192a2e4a8ffd1
bshea le
4

J'utilise cette commande pour répertorier toutes les sources logicielles configurées (référentiels), y compris celles actuellement désactivées :

cat /etc/apt/sources.list; for X in /etc/apt/sources.list.d/*; do echo; echo; echo "** $X:"; echo; cat $X; done

Je l'utilise principalement pour le dépannage; Cela peut certainement être incorporé dans des scripts, mais vous voudrez peut-être vous limiter /etc/apt/sources.list.d/*aux /etc/apt/sources.list.d/*.listsources de logiciels actuellement activées.

Eliah Kagan
la source
Merci pour les commentaires. cat liste les fichiers tels quels, il me faudrait donc les éditer manuellement pour générer un script (comme indiqué dans la question). Le défi des référentiels: si vous copiez simplement les fichiers à partir de / etc / apt, vous n’obtenez pas les clés du référentiel. C'est pourquoi je veux un script qui les récupère pour nous
stwissel
2

Donc, en creusant, nous avons AptPkg::Class.

Donc, en utilisant perlnous pouvons faire quelque chose de simple comme ça ..

perl -MAptPkg::Cache -MData::Dumper -E'say Dumper [AptPkg::Cache->new->files()]' | less

Cela nous donne une liste de tous les AptPkg::Class::PkgFilepaquets. Vous pourriez probablement générer les apt-add-repositorycommandes avec ça.

Evan Carroll
la source
2

https://repogen.simplylinux.ch/ vous donnera une liste de tous les PPA de votre version d'Ubuntu. Voici une liste générée sans fichiers source et sans imprimante samsung ppa:

#------------------------------------------------------------------------------#
#                            OFFICIAL UBUNTU REPOS                             #
#------------------------------------------------------------------------------#


###### Ubuntu Main Repos
deb http://us.archive.ubuntu.com/ubuntu/ yakkety main restricted universe multiverse 

###### Ubuntu Update Repos
deb http://us.archive.ubuntu.com/ubuntu/ yakkety-security main restricted universe multiverse 
deb http://us.archive.ubuntu.com/ubuntu/ yakkety-updates main restricted universe multiverse 
deb http://us.archive.ubuntu.com/ubuntu/ yakkety-proposed main restricted universe multiverse 
deb http://us.archive.ubuntu.com/ubuntu/ yakkety-backports main restricted universe multiverse 

###### Ubuntu Partner Repo
deb http://archive.canonical.com/ubuntu yakkety partner

#------------------------------------------------------------------------------#
#                           UNOFFICIAL UBUNTU REPOS                            #
#------------------------------------------------------------------------------#


###### 3rd Party Binary Repos

#### Flacon PPA - http://kde-apps.org/content/show.php?content=113388
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F2A61FE5
deb http://ppa.launchpad.net/flacon/ppa/ubuntu yakkety main

#### Gimp PPA - https://launchpad.net/~otto-kesselgulasch/+archive/gimp
## Run this command: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 614C4B38
deb http://ppa.launchpad.net/otto-kesselgulasch/gimp/ubuntu yakkety main

#### Google Chrome Browser - http://www.google.com/linuxrepositories/
## Run this command: wget -q https://dl.google.com/linux/linux_signing_key.pub -O- | sudo apt-key add -
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

#### Google Earth - http://www.google.com/linuxrepositories/
## Run this command: wget -q https://dl.google.com/linux/linux_signing_key.pub -O- | sudo apt-key add -
deb [arch=amd64] http://dl.google.com/linux/earth/deb/ stable main

#### Highly Explosive PPA - https://launchpad.net/~dhor/+archive/myway
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93330B78
deb http://ppa.launchpad.net/dhor/myway/ubuntu yakkety main

#### JDownloader PPA - https://launchpad.net/~jd-team
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6A68F637
deb http://ppa.launchpad.net/jd-team/jdownloader/ubuntu yakkety main

#### Lazarus - http://www.lazarus.freepascal.org/
## Run this command:  gpg --keyserver hkp://pgp.mit.edu:11371 --recv-keys 6A11800F  && gpg --export --armor 0F7992B0  | sudo apt-key add -
deb http://www.hu.freepascal.org/lazarus/ lazarus-stable universe

#### LibreOffice PPA - http://www.documentfoundation.org/download/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1378B444
deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu yakkety main

#### MEGA Sync Client - https://mega.co.nz/
deb http://mega.nz/linux/MEGAsync/xUbuntu_16.10/ ./

#### MKVToolnix - http://www.bunkus.org/videotools/mkvtoolnix/
## Run this command: wget -q http://www.bunkus.org/gpg-pub-moritzbunkus.txt -O- | sudo apt-key add -
deb http://www.bunkus.org/ubuntu/yakkety/ ./

#### Mozilla Daily Build Team PPA - http://edge.launchpad.net/~ubuntu-mozilla-daily/+archive/ppa
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys  247510BE
deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu yakkety main

#### muCommander - http://www.mucommander.com/
## Run this command: sudo wget -O - http://apt.mucommander.com/apt.key | sudo apt-key add - 
deb http://apt.mucommander.com stable main non-free contrib  

#### Opera - http://www.opera.com/
## Run this command: sudo wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
deb http://deb.opera.com/opera/ stable non-free

#### Oracle Java (JDK) Installer PPA - http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
deb http://ppa.launchpad.net/webupd8team/java/ubuntu yakkety main

#### PlayDeb - http://www.playdeb.net/
## Run this command: wget -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
deb http://archive.getdeb.net/ubuntu yakkety-getdeb games

#### SABnzbd PPA - http://sabnzbd.org/
## Run this command:  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4BB9F05F
deb http://ppa.launchpad.net/jcfp/ppa/ubuntu yakkety main

#### SimpleScreenRecorder PPA - http://www.maartenbaert.be/simplescreenrecorder/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 283EC8CD
deb http://ppa.launchpad.net/maarten-baert/simplescreenrecorder/ubuntu yakkety main

#### Steam for Linux - http://store.steampowered.com/about/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F24AEA9FB05498B7
deb [arch=i386] http://repo.steampowered.com/steam/ precise steam

#### Syncthing - https://syncthing.net/
## Run this command: curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
deb http://apt.syncthing.net/ syncthing release

#### Tor: anonymity online - https://www.torproject.org
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 886DDD89
deb http://deb.torproject.org/torproject.org yakkety main

#### Unsettings PPA - http://www.florian-diesch.de/software/unsettings/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0FEB6DD9
deb http://ppa.launchpad.net/diesch/testing/ubuntu yakkety main

#### VirtualBox - http://www.virtualbox.org
## Run this command: wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc -O- | sudo apt-key add -
deb http://download.virtualbox.org/virtualbox/debian yakkety contrib

#### Webmin - http://www.webmin.com
## Run this command: wget http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
deb http://download.webmin.com/download/repository sarge contrib

#### WebUpd8 PPA - http://www.webupd8.org/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C9D234C
deb http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu yakkety main

#### Xorg Edgers PPA - https://launchpad.net/~xorg-edgers
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8844C542  
deb http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu yakkety main
here is a generated list without source files and no samsung printer ppa
#### Yuuguu - http://yuuguu.com
deb http://update.yuuguu.com/repositories/apt hardy multiverse
Richard W. Seitz
la source
2

Voici mon script " list-apt-repositories", qui répertorie tous les référentiels dans " /etc/sources.list"et" /etc/sources.list.d/*.list". Vous pouvez ajouter --ppa-onlypour afficher uniquement les PPA. Les PPA sont automatiquement transformés en ppa:USER/REPOformat.

Les parties pertinentes sont les 5 lignes list_sourceset list_ppafonctions, le reste n’est qu’un passe-partout pour l’envelopper dans un script shell très pratique.

list-apt-repositories:

#!/bin/sh

usage () {
  cat >&2 <<USAGE
$0 [--ppa-only]

Options:
  --ppa-only            only list PPAs
USAGE
  exit $1
}

list_sources () {
  grep -E '^deb\s' /etc/apt/sources.list /etc/apt/sources.list.d/*.list |\
    cut -f2- -d: |\
    cut -f2 -d' ' |\
    sed -re 's#http://ppa\.launchpad\.net/([^/]+)/([^/]+)(.*?)$#ppa:\1/\2#g'
}

list_ppa () {
  list_sources | grep '^ppa:'
}

generate=list_sources

while test -n "$1"
do
  case "$1" in
    -h|--help) usage 1;;
    --ppa-only) generate=list_ppa;;
    *)
      printf -- "Unknown argument '$1'\n" >&2
      usage 2
    ;;
  esac
  shift
done

$generate

Et pour créer un script d'installation, insérez un autre script " make-apt-repository-install-script". Le script généré prend en charge l' argument -y/ --yespour une utilisation non interactive (voir add-apt-repository(1)).

make-apt-repository-install-script:

#!/bin/sh

if test -n "$1"
then
  cat >&2 <<USAGE
Usage: $0 < PATH_TO_LIST_OF_REPOS
       list-apt-repositories [--ppa-only] | $0

No options recognized.

Reads list of repositories from stdin and generates a script to install them
using \`add-apt-repository(1)\`. The script is printed to stdout.

The generated script supports an optional
\`-y\` or \`--yes\` argument which causes the \`add-apt-repository\` commands
to be run with the \`--yes\` flag.
USAGE
  exit 1
fi

cat <<INSTALL_SCRIPT
#!/bin/sh
y=
case "\$1" in
  -y|--yes) y=\$1;;
  '') y=;;
  *)
    printf '%s\n' "Unknown option '\$1'" "Usage: \$0 [{-y|--yes}]" >&2
    exit 1
  ;;
esac
INSTALL_SCRIPT

xargs -d'\n' printf "add-apt-repository \$y '%s'\n"

Encore une fois, la partie importante est la xargscommande sur la dernière ligne, le reste est passe-partout.

ejm
la source
1

Pour l'ajouter, ajoutez les lignes ppa.launchpad.net en tant que ppa: $ USER / $ PPA. Ajoutez d'autres référentiels avec leur ligne complète à partir de fichiers * .list. Pas de lignes de dupe.

#! / bin / bash
# My ~ / bin / mk_repositories_restore_script
mkdir -p ~ / bin 
x = ~ / bin / restore_repositories
echo \ # \! / bin / bash> $ x
chmod u + x $ x
(
 pour APT dans $ (recherchez / etc / apt / -name \ *. list)
    do sed -n -e '/ ^ deb / {
     /ppa\.launchpad/s/\(.*\/7./[^\//******(( ^ \ \]] (). ($ *) / sudo apt-add-repository ppa : \ 2 / p;
     /ppa\.launchpad/! s / \ (deb [\ t] * \) \ (. * $ \) / sudo apt-add-repository \ 2 / p;
    } '$ APT
 terminé
) | trier | uniq | tee -a ~ / bin / restore_repositories
BobDodds
la source
0

Merci BobDodds!
Si quelqu'un est intéressé, j'ai un peu mis à jour votre code (j'espère que cela ne vous dérange pas).
Ce script ne tapera que les PPA ajoutés par l'utilisateur (/etc/apt/sources.list.d).

    #!/bin/bash
    # My ~/bin/mk_repositories_restore_script
    mkdir -p ~/bin
    x=~/bin/restore_repositories
    echo \#\!/bin/bash > $x
    chmod u+x $x
    (
    for APT in $( find /etc/apt/ -name \*.list )
    do sed -n -e '/^deb /{
          /ppa\.launchpad/s/\(.*\/\/[^\/]*.\)\([^ \t]*\)\(.*\/ubuntu.*$\)/ppa:\2/p;                                                                                                                                                                                       
        }' $APT
    done
    ) | sort | uniq | tee -a ~/bin/restore_repositories
Martin Bortel
la source
0
sed -r -e '/^deb /!d' -e 's/^([^#]*).*/\1/' -e 's/deb http:\/\/ppa.launchpad.net\/(.+)\/ubuntu .*/ppa:\1/' -e "s/.*/sudo add-apt-repository '&'/" /etc/apt/sources.list /etc/apt/sources.list.d/*

Cela ne génère cependant pas de commandes pour activer les référentiels sources possibles (deb-src).

Jarno
la source
-1

Installer ppa-purge

apt install ppa-purge

Ensuite, obtenez la liste ppa en complétant l'onglet

ppa-purge -o( Tabappuyez deux fois sur la touche)

Jason Nosaj
la source
2
C'est un peu en arrière. Comment suggérez-vous à OP de collecter la sortie de l'achèvement du shell pour le stockage ou le traitement? En outre, ppa-purgen'a pas d' -oindicateur selon sa page de manuel . -1
David Foerster