Jak wyszukać PPA za pomocą wiersza polecenia?

9

Jeśli apt searchmi się nie powiedzie, następnym krokiem jest zazwyczaj poszukiwanie PPA, ale wygląda na to, ppasearchże porzuciłem oprogramowanie, więc czego mogę użyć do wyszukiwania PPA (za pomocą wiersza poleceń)?

Jonathan
źródło
2
Użyj przeglądarki wiersza polecenia, takiego jak łącza, aby wyszukać pakiet lub ppa, który chcesz
Panther
2
Najwyraźniej istnieje alternatywa dla GUI , ale jak dotąd nic na linii poleceń. Dobre pytanie.
Sergiy Kolodyazhnyy
2
Co ciekawe, Y PPA Manager (dojrzała aplikacja GUI PPA) ma y-ppa-cmd, ale wymaga zmiennej $ DISPLAY.
N0rbert

Odpowiedzi:

2

Naprawdę nie rozumiem, dlaczego chcesz szukać PPA z wiersza poleceń, ponieważ większość ludzi ma już okno przeglądarki na stałe otwarte. Oto kilka opcji:

  • Jeśli używasz przeglądarki obsługującej dodawanie słów kluczowych do zakładek, możesz dodać zakładkę https://launchpad.net/ubuntu/+ppas?name_filter=%sdo słowa kluczowego ppa. Następnie wpisz ppa [package-name]w pasku adresu URL, aby wyszukać.

  • Jeśli ppasearchrobi to, czego potrzebujesz, używaj go tak długo, jak długo działa. Możesz spróbować przyczynić się do rozwoju, aby dodać funkcje lub naprawić błędy. Jeśli programiści nie reagują, możesz utworzyć osobisty widelec.

  • Możesz utworzyć własny skrypt podobny do następującego:

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

    Ten skrypt otwiera link do wyszukiwania Launchpad dla danego pakietu w domyślnej przeglądarce. Odpowiednia flaga -lwyświetla listę nazw PPA wraz z ich adresami URL i opisami.

    Możesz dodać dodatkowe funkcje, gdy napotkasz ich potrzebę.

Xiota
źródło
1
Chodzi o to, że OP chce mieć narzędzie podobne do apt-cache search package_name. Problem apt-cachepolega na wyszukiwaniu w pakiecie metadanych repozytoriów, które zostały już dodane do systemu. To powiedziawszy, nie jesteś daleko - ten link może być użyty do listy PPA, więc składanie wniosku i analizowanie odpowiedzi powinno być dość proste, ale prawdopodobnie cała część PITA w części analizującej
Sergiy Kolodyazhnyy
Nie możesz zakładać, że ludzie mają otwartą przeglądarkę. Mogą być w systemie bezgłowym, takim jak serwer lub Raspberry Pi. Prawdopodobnie większość systemów linuksowych jest bezgłowa, ponieważ linux jest używany głównie przez serwery, a nie komputery stacjonarne
Jonathan
Urządzenia używane do uzyskiwania dostępu do serwerów bezgłowych również nie mają przeglądarek? Czy serwery są bezgłowe do samego końca?
xiota
1
Nie możesz założyć, że mam oczy, mogę nawet być bez głowy
Jonathan