¿Cómo busco un PPA a través de CLI, línea de comandos?

9

Si apt searchme falla, el siguiente paso generalmente es buscar un PPA, pero ppasearchparece abandonware, entonces, ¿qué puedo usar para buscar PPA (a través de la línea de comandos)?

Jonathan
fuente
2
Use un navegador de línea de comandos como enlaces para buscar el paquete o ppa que desee
Panther
2
Aparentemente hay una alternativa GUI , pero hasta ahora nada en el frente de la línea de comandos. Buena pregunta, sin embargo.
Sergiy Kolodyazhnyy
2
Lo que es interesante Y PPA Manager (aplicación PPA GUI madura) tiene y-ppa-cmd, pero requiere la variable $ DISPLAY.
N0rbert

Respuestas:

2

Realmente no entiendo por qué querría buscar PPA desde la línea de comandos porque la mayoría de las personas ya tienen una ventana de navegador abierta perpetuamente. Aquí hay algunas opciones:

  • Si utiliza un navegador que admite agregar palabras clave a los marcadores, puede marcar https://launchpad.net/ubuntu/+ppas?name_filter=%scon la palabra clave ppa. Luego escriba ppa [package-name]en la barra de URL para buscar.

  • Si ppasearchhace lo que necesita, siga usándolo mientras continúe funcionando. Puede intentar contribuir al desarrollo para agregar funciones o corregir errores. Si los desarrolladores no responden, puede crear una bifurcación personal.

  • Puede crear su propio script, similar al siguiente:

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

    Este script abre un enlace a una búsqueda de Launchpad para el paquete dado en el navegador predeterminado. Con el indicador apropiado -l, genera una lista de nombres de PPA con sus URL y descripciones.

    Puede agregar funciones adicionales a medida que las necesite.

xiota
fuente
1
El punto es que OP quiere tener una herramienta similar a apt-cache search package_name. El problema radica apt-cacheen buscar paquetes de metadatos de los repositorios que ya se han agregado al sistema. Dicho esto, no está muy lejos: ese enlace se puede usar para enumerar los PPA, por lo que hacer una solicitud y analizar la respuesta debería ser bastante sencillo, pero probablemente una gran cantidad de PITA en la parte de análisis
Sergiy Kolodyazhnyy,
No puedes asumir que las personas tienen un navegador abierto. Pueden estar en un sistema sin cabeza, como un servidor, o una frambuesa pi. Podría decirse que la mayoría de los sistemas Linux no tienen cabeza, ya que Linux es utilizado principalmente por servidores, no por computadoras de escritorio
Jonathan
¿Los dispositivos que usa para acceder a los servidores sin cabeza tampoco tienen navegadores? ¿Son servidores sin cabeza todo el camino?
xiota
1
No puedes asumir que tengo ojos, incluso puedo estar sin cabeza también
Jonathan