Способ командной строки для просмотра информации о PPA?

Давайте представим, что у меня есть добавленное хранилище под названием ppa:something/amazing, но я забыл, что такое PPA, и название PPA слишком расплывчато, или PPA очень большой. Я хочу проверить, что это такое, не используя интернет-браузер и не заходя на сайт Launchpad. Есть ли способ просмотреть информацию о PPA из командной строки? Я в основном заинтересован в просмотре списка пакетов, содержащихся в PPA.

5
задан 25 February 2013 в 05:55

2 ответа

Вот сценарий оболочки на основе этого ответа:

#!/bin/bash

if [ $# -eq 1 ]; then
    CMD=s
    PPA=$1  
else
    CMD=$1
    PPA=$2
fi

case "$CMD" in
"-f" | "f")
    cat $(echo "$PPA"|sed -e 's!/!_!' -e 's!^ppa:!/var/lib/apt/lists/ppa.launchpad.net_!' -e 's!$!_ubuntu_dists_'$(lsb_release -sc)'_main_binary-'$(dpkg --print-architecture)'_Packages!') | less
    ;;
"-s" | "s")
    cat $(echo "$PPA"|sed -e 's!/!_!' -e 's!^ppa:!/var/lib/apt/lists/ppa.launchpad.net_!' -e 's!$!_ubuntu_dists_'$(lsb_release -sc)'_main_binary-'$(dpkg --print-architecture)'_Packages!') | grep 'Package:' | sed 's/Package: //'
    ;;
*)
    echo "Usage: $0 [mode] PPA"
    echo ""
    echo "mode:"
    echo "  -f:  Displays detailed information about each package in the PPA"
    echo "  -s:  Displays only the names of the packages in the PPA"
    ;;
esac

Сохраните это в файл, такой как ppa-info, и удостоверьтесь, что это расположено в системном пути и является исполняемым файлом.

Когда Вы выполняете это только с названием PPA (или опция -s), это просто распечатает список названий всех пакетов в PPA. Однако, если Вы выполняете его с опцией -f, это распечатает подробную информацию обо всех пакетах в PPA, так же, как в исходном ответе.

3
ответ дан 25 February 2013 в 05:55

Предполагая, что вы загрузили список пакетов (apt-get update сделает это), вы можете увидеть, какие пакеты доступны для вашего дистрибутива из этого PPA.

Если вам нужен какой-то шелл-код, это должно сработать:

PPA=ppa:something/amazing
less $(echo "$PPA"|sed -e 's!/!_!' -e 's!^ppa:!/var/lib/apt/lists/ppa.launchpad.net_!' -e 's!$!_ubuntu_dists_'$(lsb_release -sc)'_main_binary-'$(dpkg --print-architecture)'_Packages!')
0
ответ дан 25 February 2013 в 05:55

Другие вопросы по тегам:

Похожие вопросы: