Câu hỏi Danh sách (Head) gói có sẵn từ ppa cụ thể bằng dòng lệnh


Tôi muốn liệt kê tất cả các gói Head có sẵn từ ppa cụ thể.

Thí dụ: webupd8  ppa:nilarimogard/webupd8 có các gói đầu sau đáng tin cậy:

screen

Tôi có thể liệt kê chúng bằng dòng lệnh không?


2
2018-06-09 05:38


gốc




Các câu trả lời:


Tôi đã viết một hàm lấy danh sách các gói cho repo sẽ được sử dụng trên bản phát hành / kiến ​​trúc hiện tại. Nó khá đơn giản và có thể được viết thành một dòng ... Nó sẽ chỉ là một dòng rất khó sử dụng.

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")
}

Vì vậy, sau khi dán nó vào một thiết bị đầu cuối, bạn có thể gọi nó như lsppa ppa:nilarimogard/webupd8 và nó trả về một danh sách theo thứ tự của danh sách các gói.

Trong trường hợp này, nó có thể không phải là chữ cái và thậm chí có thể chứa các bản sao (các phiên bản khác nhau) để bạn có thể (bạn có thể chuyển nó qua sort -u nếu bạn muốn gọi:

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

2
2018-06-09 08:41



Tôi đã thêm một kiểm tra sử dụng đơn giản cho hàm. Tôi hy vọng bạn không nhớ. - Glutanimate