如何通过CLI(命令行)搜索PPA?


9

如果apt search失败了,下一步通常是寻找PPA,但ppasearch看起来像是废弃软件,那么我可以用什么来搜索PPA(通过命令行)?


2
使用命令行浏览器(例如,链接)搜索所需的软件包或ppa
Panther,

2
显然有GUI替代方案,但到目前为止在命令行方面还没有。很好的问题。
Sergiy Kolodyazhnyy

2
有趣的是ŸPPA管理器(GUI成熟应用PPA)的y-ppa-cmd,但它需要$ DISPLAY变量。
N0rbert '18年

Answers:


2

不太了解为什么要从命令行搜索PPA,因为大多数人已经永久打开了浏览器窗口。以下是一些选择:

  • 如果使用支持将关键字添加到书签的浏览器,则可以https://launchpad.net/ubuntu/+ppas?name_filter=%s使用keyword 标记书签ppa。然后ppa [package-name]在URL栏中键入要搜索的内容。

  • 如果ppasearch您需要什么,请在继续工作的前提下继续使用它。您可以尝试为开发做出贡献以添加功能或修复错误。如果开发人员没有响应,则可以创建个人分叉。

  • 您可以创建自己的脚本,类似于以下内容:

    #!/usr/bin/env bash
    
    function _show_help_ {
       echo "Usage:" `basename ${0}` "[options] [package-name]"
       echo "Open web browser to search Launchpad for [package-name]."
       echo
       echo "  -l, --list      List PPAs with link and description"
       echo "  -h, --help      Display this help and exit."
    }
    
    function msed {
       perl -0777 -pe "$@"
    }
    
    if [ $# -lt 1 ]; then
       _show_help_
       exit 1
    fi
    
    case "$1" in
       '-h'|'--help')
          _show_help_
          ;;
       '-l'|'--list')
          shift
          curl -s "https://launchpad.net/ubuntu/+ppas?name_filter=$@" \
              | pandoc -f html -t markdown \
              | msed 's@[\s\S]*<div id="ppa_list">@@' \
              | msed 's@\]\(@\]\(https://launchpad.net/@'
              | grep -E '^\s+\[' \
              | msed 's@^\s+@@' \
              | msed 's@\s+[0-9]+\s+[0-9]+\s+@\n@g'
          ;;
       *)
          xdg-open "https://launchpad.net/ubuntu/+ppas?name_filter=$@"
          ;;
    esac

    该脚本在默认浏览器中打开指向启动包搜索的链接,以查找给定的软件包。带有适当的标志-l,它将输出PPA名称及其URL和描述的列表。

    您可以在需要时添加其他功能。


1
关键是OP希望有一个类似于的工具apt-cache search package_name。这样做的问题是apt-cache依赖于搜索打包已经添加到系统中的存储库的元数据。就是说,您就在不远处-该链接可用于列出PPA,因此发出请求和解析响应应该非常简单,但解析部分中可能有很多PITA
Sergiy Kolodyazhnyy,

您不能假设人们打开了浏览器。它们可能位于无头系统(例如服务器或树莓派)上。可以说,大多数Linux系统是无头的,因为Linux是主要由服务器,台式机不
乔纳森·

您用于访问无头服务器的设备也没有浏览器?它是无头服务器吗?
xiota

1
您不能假设我有眼睛,甚至可能也没有头
乔纳森(Jonathan)
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.