Как использовать package.ubuntu.com как поиск в apt-файле для разных выпусков?

Я хотел бы использовать возможности http://packages.ubuntu.com/ из командной строки аналогичным образом. apt-file search -i работает, чтобы найти пакеты, предоставляющие файл, содержащий определенный шаблон.

Я не могу использовать apt-file потому что мне нужно искать не только релиз, который я запускаю (14.04), но также 14.10 и 15.04.

Как я могу получить, например, все пакеты, содержащие схемы glib-2.0, содержащие com.canonical.Unity но для 14.10, если я запускаю 14.04 из командной строки?

1 ответ

Решение
  1. устанавливать html2text:

    sudo apt-get install html2text
    
  2. вставьте следующую функцию в ваш .bashrc:

    apt-file-remote()
    {
        pattern="$1"
        release="$2"
        if [ -z "$release" ]; then
            release="$(lsb_release -c -s)"
        fi
        wget "http://packages.ubuntu.com/search?searchon=contents&keywords=$pattern&mode=filename&suite=$release" -qO- |
        html2text -width 999 | grep --color=never '^/'
    }
    
  3. Перезапустите свою оболочку или откройте новый терминал

Запустите его с шаблоном в качестве первого аргумента, а затем с именем кода выпуска (необязательно, по умолчанию используется текущая версия):

$ apt-file-remote com.canonical.unity utopic
/etc/dbus-1/system.d/com.canonical.Unity.Greeter.Broadcast.conf                 unity-greeter-session-broadcast
[...]
/usr/share/glib-2.0/schemas/com.canonical.Unity.Thumbnailer.gschema.xml         thumbnailer-service
/usr/share/glib-2.0/schemas/com.canonical.Unity.gschema.xml                     unity-schemas
/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml             unity-greeter
/usr/share/glib-2.0/schemas/com.canonical.unity-gtk-module.gschema.xml          unity-gtk-module-common
/usr/share/glib-2.0/schemas/com.canonical.unity.clickscope.gschema.xml          unity-scope-click
/usr/share/glib-2.0/schemas/com.canonical.unity.webapps.gschema.xml             unity-webapps-service
/var/lib/polkit-1/localauthority/10-vendor.d/com.canonical.unity.webapps.pkla   unity-webapps-common

Благодаря этой функции я обнаружил, что:

/usr/share/glib-2.0/schemas/com.canonical.Unity.Thumbnailer.gschema.xml 

был установлен только как утопический.

Заметки:

  • я использую -width 999 по умолчанию html2text выводит данные, используя 80 столбцов, которые могут разбить некоторые имена на 2 строки.
  • Это на самом деле быстрее, чем местный apt-file search -i
Другие вопросы по тегам