Как мне искать PPA через CLI, командную строку?

9

Если у apt searchменя ppasearchничего не получается, следующим шагом обычно является поиск PPA, но он кажется заброшенным, так что я могу использовать для поиска PPA (через командную строку)?

Джонатан
источник
2
Используйте браузер командной строки, такой как ссылки, для поиска нужного вам пакета или ppa
Panther
2
По-видимому, есть альтернатива графическому интерфейсу , но пока ничего нет в командной строке. Хороший вопрос, хотя.
Сергей Колодяжный
2
Что интересно Y Y PPA Manager (зрелое приложение с графическим интерфейсом PPA) имеет y-ppa-cmd, но для него требуется переменная $ DISPLAY.
Норберт

Ответы:

2

Не очень понимаю, почему вы хотите искать PPA из командной строки, потому что у большинства людей уже открыто окно браузера. Вот несколько вариантов:

  • Если вы используете браузер, который поддерживает добавление ключевых слов в закладки, вы можете сделать закладку https://launchpad.net/ubuntu/+ppas?name_filter=%sс помощью ключевого слова ppa. Затем введите ppa [package-name]в строку URL для поиска.

  • Если ppasearchделает то, что вам нужно, продолжайте использовать его до тех пор, пока он продолжает работать. Вы можете попробовать внести свой вклад в разработку, чтобы добавить функции или исправить ошибки. Если разработчики не реагируют, вы можете создать личную форк.

  • Вы можете создать свой собственный скрипт, похожий на следующий:

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

    Этот скрипт открывает ссылку на поиск Launchpad для данного пакета в браузере по умолчанию. С соответствующим флагом -lон выводит список имен PPA с их URL и описаниями.

    Вы можете добавлять дополнительные функции по мере необходимости.

xiota
источник
1
Все дело в том, что OP хочет иметь инструмент, похожий на apt-cache search package_name. Проблема с этим заключается apt-cacheв поиске в пакет метаданных репозиториев, которые уже были добавлены в систему. Тем не менее, вы не за горами - эта ссылка может быть использована для перечисления PPA, поэтому создание запроса и анализ ответа должны быть довольно простыми, но, вероятно, большая часть PITA в части синтаксического анализа
Сергей Колодяжный,
Вы не можете предполагать, что у людей открыт браузер. Они могут быть в автономной системе, такой как сервер, или Raspberry Pi. Можно утверждать, что большинство систем Linux без головы, поскольку Linux в основном используется серверами, а не настольными компьютерами
Джонатан,
Устройства, которые вы используете для доступа к автономным серверам, также не имеют браузеров? Это безголовые серверы?
Xiota
1
Вы не можете предположить, что у меня есть глаза, я даже могу быть безголовым
Джонатан