%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2%2C%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D1%85%20%D0%B8%D0%B7%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20ppa%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8.png)
Я хочу перечислить все пакеты Head, доступные из определенного PPA.
Пример:webupd8 ppa:nilarimogard/webupd8
имеет следующие пакеты голов для trusty:
Могу ли я получить их список с помощью командной строки??
решение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