Komut satırından yükleme komut dosyasına tüm depoların ve PPA'ların listesini nasıl alabilirim?


217

Sistemimde kurulu tüm paketleri nasıl listeleyeceğimi biliyorum .

Ancak, anahtarlar dahil depo kurulumunu çoğaltmak için yeni bir makinede çalıştırabileceğim bir betiğe tüm depoların ve PPA'ların bir listesini nasıl alabilirim?

Ben bakabiliyorum /etc/apt/sources.listve /etc/apt/sources.list.dama bir yol arıyorum oluşturmak tüm yürüten bir komut dosyası apt-add-repositoryyeni bir sistem üzerinde komutları (yani tüm anahtarları alma çözer).

Herhangi bir fikir?

Yanıtlar:


106

Her şeyi şununla gösterebilirsin:

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*

13
egrep -v '^#|^ *$' /etc/apt/sources.list /etc/apt/sources.list.d/*Yorumlanan satırları ve boş satırları kaldırmaya ne dersiniz ?

3
Eğer kullanımını açıklayabilir misiniz ^sonrasÖ grepiçinde grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*?

4
@ vasa1 Düzeltme işareti ^ ve dolar işareti, sırasıyla bir satırın başındaki ve sonundaki boş dizeyle eşleşen meta karakterlerdir.
wojox

4
Grep ^ [^ #] ... kullanıyorum - Tüm yorumlanan kaynakları otomatik olarak gizler
Ross Aiken

12
Hiçbir şeyi filtrelemeyecekseniz, sadece çalıştırması daha kolay olmaz mıydıcat /etc/apt/sources.list /etc/apt/sources.list.d/*
jbo5112

99

İşaretçiler için teşekkürler. Küçük bir temizleme işleminde, PPA'ları listeleyen bir komut dosyası aldım, ancak başka bir depoyu değil:

#! /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

Siz aradığınızda, listppa > installppa.shbir komut dosyası alırsınız, tüm PPA'ları yeniden yüklemek için yeni bir makineye kopyalayabilirsiniz.

Sonraki durak: diğer depolar için bunu yapın:

#! /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

Bu hile yapmalı. Doğru regex'i bulmak için süper kullanıcı hakkında bir soruya ihtiyacım vardı .


1
Senin içinde grep -oörneğin, \` içinde [a-z0-9\-]beklediğiniz yapmıyor. Aslında gerçek bir ters eğik çizgi ile eşleşiyor . Sen gerekmez kaçış- zaman başlangıca veya sonunda olduğu zaman []listenin; Aslında, ondan kaçamazsınız ! .. Bu durumda \`(muhtemelen) bir soruna neden olmaz, çünkü siz (umarım) girişte ters eğik çizgi ile karşılaşmazsınız deb.
Peter.O

2
PPA adlarının nokta içerebileceğini unutmayın, bu nedenle http://ppa.launchpad.net/[a-z0-9-]\+/[a-z0-9.-]\+
regexp'inizi

Hayır, yapmak regex değiştirmek istediğiniz [[:graph:]] yerine [a-z...blah.anything]herhangi alfanümerik + noktalama karakterleri maç olacak çünkü - o PPA isimleri oluşur şeydir.
MichalH

Sanırım form debverilmemişse her bir depo hattının başına bir kelime eklemelisiniz ppa:$USER/$PPA.
Jarno

@stwissel Kullandığınız herhangi bir neden bulduktan sonra grep? Kabuğun ayrıştırdığı ve grep'e geçirdiği bir küreyi kolayca yapabilirsiniz. grep -Po "(?<=^deb\s).*?(?=#|$)" /etc/apt/{sources.list,sources.list.d/*.list} | while read ENTRY ; do echo $ENTRY; doneBu yazının size gösterdiği gibi, her girişin geldiği dosya adını gösterir, böylece sonucun başından ilk iki noktaya kadar bir kesim yapmanız gerekebilir, ancak kesilmesi zor değildir. uniqAynı kaynak için birden fazla giriş yapmak istemiyorsanız (örneğin Google Chrome Stable / Beta / Dev yüklü ise) de geçmek isteyebilirsiniz.
dragon788,

23

Etkinleştirilen tüm ikili yazılım kaynaklarını birlikte belirledikleri dosyayla birlikte almanın en basit ancak en etkili yolunun henüz gönderilmediğine şaşırdım:

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

İşlenen tüm dosyalardan, bu satırlardan başlayarak her satırı basacaktır deb. Bu, yorumlanmış satırların yanı sıra deb-srckaynak kodu havuzlarını etkinleştirmek için satırları hariç tutar .

Gerçekten yalnızca *.listayrıştırılacak tüm dosyaları arar apt, ancak *.list.saveyedekleme için kullanılan dosyaları veya yasadışı adlara sahip olmayan dosyaları arar .


Daha kısa ama büyük olasılıkla sadece tüm vakaların% 99.9'unda çok fazla dosya arayabilen doğru çıktı ( /etc/apt/sources.list*sadece tüm dosyaları ve dizinleri içerir , sadece /etc/apt/sources.listve `/ etc / ph / sources.list.d/*) bunu kullan:

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

Orada olmaması gereken dosyalar yoksa, çıktı aynı olacaktır.


Makinemdeki bir örnek çıktı şöyle olabilir:

/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

Daha güzel çıktı almak istiyorsanız, üzerinden geçelim 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/'

Ve bunu göreceğiz:

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

1
Kabul edilen cevaptan yola çıkarak, OP'nin PPA'ların ppa:<user>/<project>formda gösterilmesini istediği görülüyor .
muru

Asıl soru, tüm depoları yükleyen / etkinleştiren bir komut dosyası oluşturmayı istiyor. Ancak soru başlığı sadece onları listelemekle ilgilidir. Ayrıca en yüksek puan alan 2. cevap sadece onları da listeler, fakat çok fazla listeler.
Byte Commander

Güzel, ama ben zaten çoktan oyumu kazandım. : D
muru

Grep için dosya isimlerini bırakmak için `-h` seçeneğini kullanabilirsiniz.
jarno

11

Aşağıdaki komutu çalıştırın:

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

Kaynak


Biyonik bu tür 'olarak çizgileri yazdırır mirrors.nic.funet.fi/ubuntubionic-security/main '
Jarno

1
Not: apt-cache policySadece çalıştırdıktan sonra depoları gösterecektir apt-get update. Eğer sadece bir repo ile eklediyseniz add-apt-repository, onunla görünmez apt-cache policyçalıştırmak kadarapt-get update
wisbucky

Her @wisbucky: sudo apt update > /dev/null 2>&1 && sudo apt-cache policy | grep http | awk '{print $2 $3}' | sort -uiyi çalışıyor. gist.github.com/bmatthewshea/229da822f1f02157bff192a2e4a8ffd1
bshea

4

Bu komutu, şu anda devre dışı olanlar dahil , yapılandırılmış tüm yazılım kaynaklarını (havuzları) listelemek için kullanıyorum :

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

Bunu öncelikle sorun giderme için kullanıyorum; bu kesinlikle komut dosyalarına eklenebilir ancak daraltmak isteyebilirsiniz /etc/apt/sources.list.d/*, /etc/apt/sources.list.d/*.listböylece şu anda etkinleştirilmiş olan yazılım kaynaklarını elde edebilirsiniz.


Geri bildirim için teşekkürler. cat dosyaları olduğu gibi listeler, bu yüzden (bir soruda belirtildiği gibi) bir betiği oluşturmak için el ile düzenlemeliyim . Depolardaki zorluk: Dosyaları sadece / etc / apt dizininden kopyalarsanız, depo anahtarlarını alamazsınız. Bu yüzden onları bizim için alan bir senaryo istiyorum
stwissel

2

Yani biraz kazı yapıyoruz AptPkg::Class.

Böylece perlböyle basit bir şey yapabiliriz ..

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

Bu bize tüm AptPkg::Class::PkgFilepaketlerin bir listesini getirir . Muhtemelen apt-add-repositorybununla komutları üretebilirsin .


2

https://repogen.simplylinux.ch/ , Ubuntu versiyonunuz için tüm PPA'ların bir listesini verecektir. İşte kaynak dosyalar olmadan oluşturulan bir liste ve samsung yazıcı ppa yok:

#------------------------------------------------------------------------------#
#                            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

2

İşte betiğim " list-apt-repositories", " /etc/sources.list"ve" /etc/sources.list.d/*.list" deki tüm depoları listeliyor . --ppa-onlyYalnızca PPA'ları göstermek için ekleyebilirsiniz . PPA'lar otomatik olarak ppa:USER/REPObiçime dönüştürülür.

İlgili parçalar 5 satır list_sourcesve list_ppaişlevlerdir, gerisi kullanışlı bir kabuk betiğine sarılmak için sadece bir kazan plakasıdır.

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

Ve bir kurulum betiği yapmak için başka bir betiğe " make-apt-repository-install-script" yazın. Oluşturulan komut etkileşimli olmayan kullanım için -y/ --yesargümanını destekler (bkz. 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"

Yine, önemli kısım xargsson satırdaki komuttur, geri kalan kısım ise kazandır.


1

Ppa.launchpad.net satırlarını ppa olarak eklemek için: $ USER / $ PPA. Diğer depoları tam satırda * .list dosyalarından ekleyin. Dupe çizgisi yok.

#! / Bin / bash
# Benim ~ / bin / mk_repositories_restore_script
mkdir -p ~ / bin 
X = ~ / bin / restore_repositories
echo \ # \! / bin / bash> $ x
chmod u + x $ x
(
 APT için $ (find / etc / apt / -name \ *. list)
    sed -n -e '/ ^ deb / {yap.
     /ppa\.launchpad/s/\(.*\/\/CL^\/AND*.\)\((^ \ t] * \) \ (. * $ \) / sudo apt-add-repository ppa : 2 / p \;
     /ppa\.launchpad/!s / \ (deb [\ t] * \) \ (. * $ \) / sudo apt-add-repository \ 2 / p;
    } '$ APT
 tamam
) | sıralama | uniq | tee -a ~ / bin / restore_repositories

0

Teşekkürler BobDodds!
Herhangi biri ilgini çekerse, kodunuzu biraz güncelledim (umarım sakıncası yoktur) ..
Bu komut dosyası yalnızca kullanıcı tarafından eklenen PPA'ları (/etc/apt/sources.list.d) yazacaktır.

    #!/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

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/*

Ancak, olası kaynak havuzlarını (deb-src) etkinleştirmek için komutlar oluşturmaz.


-1

Yüklemek ppa-purge

apt install ppa-purge

Sonra sekme tamamlayarak ppa listesini alın ...

ppa-purge -o( Tabiki kez tuşa bas)


2
Bu tür geriye doğru. OP'nin depolama veya işleme için kabuk tamamlama çıktısını toplamasını nasıl önerirsiniz? Ayrıca, kılavuz sayfasına göre bayrak ppa-purgeyoktur . -1-o
David Foerster
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.