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

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

我如何列出添加到系统中的所有 ppa 存储库并将其保存到文件中.txt,这样我就不想花时间搜索用于全新安装的 ppa,而只需选择.txt文件中的 ppa 行并附加到命令中 即可sudo add-apt-repository? 另外,还有其他方法可以做到这一点,而我不想手动提供 gpg 密钥?

答案1

对于那些只想检查自己安装了哪些 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

答案2

如何从命令行获取所有存储库和 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

答案3

我的答案如何从命令行获取所有存储库和 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)。

请参阅我对另一个问题的回答,了解您可以保存和使用的完整脚本,包括生成安装脚本。

相关内容