Como pesquiso um PPA via CLI, linha de comando?

9

Se apt searchfalhar comigo, o próximo passo é geralmente procurar um PPA, mas ppasearchparece um abandonware, então o que posso usar para procurar PPAs (através da linha de comando)?

Jonathan
fonte
2
Use um navegador de linha de comando, como links para procurar o pacote ou ppa você quer
Panther
2
Aparentemente, existe uma alternativa da GUI , mas nada na linha de comando até agora. Boa pergunta, no entanto.
Sergiy Kolodyazhnyy
2
O que é interessante o Y PPA Manager (aplicativo GUI PPA maduro) y-ppa-cmd, mas requer a variável $ DISPLAY.
N0rbert

Respostas:

2

Realmente não entendo por que você deseja procurar PPAs na linha de comando, porque a maioria das pessoas já tem uma janela do navegador sempre aberta. Aqui estão algumas opções:

  • Se você usar um navegador compatível com a adição de palavras-chave aos favoritos, poderá marcar https://launchpad.net/ubuntu/+ppas?name_filter=%scom a palavra-chave ppa. Em seguida, digite ppa [package-name]na barra de URL para pesquisar.

  • Se ppasearchfizer o que você precisa, continue usando-o enquanto continuar funcionando. Você pode tentar contribuir com o desenvolvimento para adicionar recursos ou corrigir bugs. Se os desenvolvedores não responderem, você pode criar uma bifurcação pessoal.

  • Você pode criar seu próprio script, semelhante ao seguinte:

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

    Esse script abre um link para uma pesquisa no Launchpad para o pacote fornecido no navegador padrão. Com o sinalizador apropriado -l, ele gera uma lista de nomes de PPA com seus URLs e descrições.

    Você pode adicionar recursos adicionais à medida que for necessário.

xiota
fonte
11
O ponto principal é que o OP quer ter uma ferramenta semelhante a apt-cache search package_name. O problema disso é apt-cachea procura de empacotar metadados dos repositórios que já foram adicionados ao sistema. Dito isto, você não está longe - esse link pode ser usado para listar PPAs, portanto, fazer uma solicitação e analisar a resposta deve ser bastante direto, mas provavelmente toda a PITA na parte de análise
Sergiy Kolodyazhnyy
Você não pode assumir que as pessoas têm um navegador aberto. Eles podem estar em um sistema sem cabeça, como um servidor ou um raspberry pi. Indiscutivelmente maioria dos sistemas Linux estão sem cabeça, pois o Linux é usado principalmente por servidores não desktops
Jonathan
Os dispositivos que você usa para acessar servidores sem cabeça também não têm navegadores? São servidores sem cabeça até o fim?
Xiota 31/05/19
11
Você não pode supor que eu tenho olhos, posso até ficar sem cabeça também #
315 Jonathan