通过命令行列出(Head)特定 ppa 中可用的软件包

通过命令行列出(Head)特定 ppa 中可用的软件包

我想要列出特定 ppa 提供的所有 Head 包。

例子:webupd8 ppa:nilarimogard/webupd8有以下值得信赖的头包:

屏幕

我可以通过命令行列出它们吗

答案1

我编写了一个函数,用于获取当前版本/架构中将使用的存储库的软件包列表。它相当简单,可以写成一行……但这样写起来会非常笨拙。

function lsppa {
    # expects one argument in the form of ppa:nilarimogard/webupd8

    USAGE="lsppa <ppa:user/ppaname>"

    if [[ "$#" != "1" || ! "$1"  == *"ppa"* ]]; then
      echo "$USAGE"
      return
    fi

    REPO="${1/ppa:/}"
    CODE="$(lsb_release -cs)"
    ARCH="$(dpkg --print-architecture)"
    URL="http://ppa.launchpad.net/$REPO/ubuntu/dists/$CODE/main/binary-$ARCH/Packages"

    awk '/^Package:/ {print $2}' <(wget -qO- "$URL")
}

因此,将其粘贴到终端后,您可以像调用它一样调用它lsppa ppa:nilarimogard/webupd8,它会返回按包列表排序的列表。

在这种情况下,它可能不是按字母顺序排列的,甚至可能包含重复项(不同版本),因此您可以(sort -u如果您想调用,您可以传递它:

lsppa ppa:nilarimogard/webupd8 | sort -u | less

相关内容