Wie suche ich über CLI, Befehlszeile nach einem PPA?

9

Wenn apt searchich versage, ist der nächste Schritt normalerweise die Suche nach einer PPA, ppasearchscheint aber eine Abbruchware zu sein. Was kann ich also verwenden, um nach PPAs zu suchen (über die Befehlszeile)?

Jonathan
quelle
2
Verwenden Sie einen Befehlszeilenbrowser wie Links, um nach dem gewünschten Paket oder ppa zu suchen
Panther
2
Es gibt anscheinend eine GUI-Alternative , aber bisher nichts auf der Kommandozeilenfront. Gute Frage.
Sergiy Kolodyazhnyy
2
Was interessant ist Y PPA Manager (ausgereifte GUI PPA-Anwendung) hat y-ppa-cmd, aber es erfordert $ DISPLAY Variable.
N0rbert

Antworten:

2

Ich verstehe nicht wirklich, warum Sie über die Befehlszeile nach PPAs suchen möchten, da die meisten Benutzer bereits ein Browserfenster haben, das ständig geöffnet ist. Hier sind einige Optionen:

  • Wenn Sie einen Browser verwenden, der das Hinzufügen von Schlüsselwörtern zu Lesezeichen unterstützt, können Sie Lesezeichen https://launchpad.net/ubuntu/+ppas?name_filter=%smit Schlüsselwörtern erstellen ppa. Geben Sie dann ppa [package-name]in die URL-Leiste ein, um zu suchen.

  • Wenn ppasearchSie das tun, was Sie brauchen, verwenden Sie es so lange, wie es weiter funktioniert. Sie können versuchen, zur Entwicklung beizutragen, um Funktionen hinzuzufügen oder Fehler zu beheben. Wenn Entwickler nicht reagieren, können Sie eine persönliche Abzweigung erstellen.

  • Sie können ein eigenes Skript erstellen, ähnlich dem folgenden:

    #!/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
    

    Dieses Skript öffnet einen Link zu einer Launchpad-Suche nach dem angegebenen Paket im Standardbrowser. Mit dem entsprechenden Flag -lwird eine Liste der PPA-Namen mit ihren URLs und Beschreibungen ausgegeben.

    Sie können zusätzliche Funktionen hinzufügen, wenn Sie diese benötigen.

Xiota
quelle
1
Der springende Punkt ist, dass OP ein ähnliches Tool haben möchte apt-cache search package_name. Das Problem dabei ist, dass apt-cachenach Metadaten der Repositorys gesucht wird, die dem System bereits hinzugefügt wurden. Das heißt, Sie sind nicht weit weg - dieser Link kann verwendet werden, um PPAs aufzulisten, daher sollte es ziemlich einfach sein, eine Anfrage zu stellen und die Antwort zu analysieren, aber wahrscheinlich eine ganze Menge PITA im Parsing-Teil
Sergiy Kolodyazhnyy
Sie können nicht davon ausgehen, dass ein Browser geöffnet ist. Sie befinden sich möglicherweise auf einem kopflosen System wie einem Server oder einem Himbeer-Pi. Wahrscheinlich sind die meisten Linux-Systeme kopflos, da Linux hauptsächlich von Servern und nicht von Desktops verwendet wird
Jonathan,
Die Geräte, mit denen Sie auf Headless-Server zugreifen, haben auch keine Browser? Sind es kopflose Server?
Xiota
1
Sie können nicht annehmen, dass ich Augen habe, ich kann sogar kopflos sein
Jonathan