列出所有添加到我的系统中的PPA存储库


21

如何列出所有添加到系统中的ppa存储库并将其保存到.txt文件中,这样我就不想花时间在ppa上进行全新安装搜索,而我只能在.txt文件中选择一个ppa行并追加命令 sudo add-apt-repository?也有其他方法可以做到,我不想手动给gpg键?

Answers:


19

我怎样才能进入安装脚本命令行的所有存储库和PPA的列表?

答案的一部分看起来像您在寻找什么:

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

另存为 listppa.sh

listppa.sh > installppa.sh

这将创建一个脚本,您可以将其备份到某个位置,然后通过运行以下命令来运行以在全新安装中添加您的PPA:

installppa.sh

20

对于只想检查已安装的PPA却不自动对其进行任何操作的用户,您可以执行以下操作:

$ apt-cache policy

在我的系统中,它显示了一些内容:

% apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-rael-gc-scudcloud,a=precise,n=precise,l=ScudCloud - Linux client for Slack,c=main
     origin ppa.launchpad.net
...

这里引用:

[ apt-cache policy]检索与每个存储库资源关联的优先级。从其输出中,可以推断所有可用存储库和PPA的列表。

资料来源:http : //ask.xmodulo.com/list-installed-repositories-ppas-ubuntu.html


5
这很简单,但是输出还包括Ubuntu基本存储库。如果您打算这样做,则最好使用在您作为源的链接中使用的完整的最终命令apt-cache policy | grep http | awk '{print $2 $3}' | sort -u。输出井井有条,在眼睛上更轻松。
pjd

注意:apt-cache policy仅在运行后显示回购apt-get update。如果您仅添加了一个仓库add-apt-repository,它将apt-cache policy在您运行之前不会显示apt-get update
wisbucky

0

我的回答我怎样才能在命令行中的所有存储库和PPA的列表到安装脚本?

列出PPA的ppa:USER/REPO格式:

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' |\
  grep '^ppa:'

列出所有存储库,包括PPA ppa:USER/REPO格式:

只需删除最后一个grep(别忘了|\sed命令)。

请参阅我对其他问题的回答,以获取可以保存和使用的完整脚本,包括生成安装脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.