Это команда xara, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
xara - интерфейс GTK2 для вышеуказанного
СИНТАКСИС
Графический интерфейс (ГТК2):
Xara
Графический интерфейс позволяет пользователю вводить запросы и просматривать результаты. Меню
предусмотрены опции для установки и удаления выбранных пакетов с помощью APT-получить,
Пакеты, которые интересуют пользователя, могут быть добавлены в закладки.
Интерфейс командной строки (GTK2): интерфейс командной строки, ара(1), предоставляется Debian
пакет ара.
запрос синтаксис
Смотрите пост в ПРИМЕРЫ раздел для быстрого знакомства; Xara имеет некоторую встроенную помощь. В
синтаксис подробно описан ниже.
ОПИСАНИЕ
ара и Xara позволяют пользователю выполнять поиск в базе данных пакетов программного обеспечения Debian (которая включает
установленных и удаленных пакетов), используя мощные запросы, состоящие из логических комбинаций
регулярные выражения, действующие на поля, заданные шаблонами.
Например, запрос section = utils & зависит: (gtk or tk8 or xlibs or где or гном or кварта)
& Debian & пакет отобразит пакеты в разделе Utils которые имеют графические
интерфейсы (потому что они зависят от графических инструментов или библиотек X11), и чьи
описание содержит слова Debian и пакет.
ОБОСНОВАНИЕ
Пользователи Debian могут легко устанавливать программное обеспечение с помощью команд Dselect or APT-получить устанавливать.
Они могут выбирать (в нестабильной версии Debian 3.1) из более чем 30,000 XNUMX пакетов. В поисках правильного
упаковка может быть довольно сложной. Хотя пакеты разбиты на грубые разделы,
пакетов по-прежнему слишком много, и о прочтении всех описаний не может быть и речи.
Файлы базы данных огромны, и их синтаксис, похожий на почтовый, затрудняет поиск с помощью
линейно-ориентированные инструменты, такие как grep. Существуют такие команды, как dpkg-iasearch(1) или
dpkg-dctrl(1) но их возможности ограничены. Графические инструменты управления пакетами, такие как
as способность or синаптических есть возможности поиска. Несмотря на то что ара может позвонить склонный установить или
Удалите пакеты, он ориентирован на мощный инструмент поиска. Действительно, название ара
происходит от повелительной формы турецкого глагола поиск что означает «искать».
DEBIAN ПАКЕТ DATABASE
База данных пакетов Debian - это огромный текстовый файл по адресу / var / lib / dpkg / доступно (или
сборник текстовых файлов под / var / lib / apt / lists /). Эти файлы находятся в почтовом ящике
формат, и типичная запись выглядит так:
Приоритет: обязательно
Раздел: база
Установленный размер: 460
Происхождение: debian
Сопровождение: Dpkg Development[электронная почта защищена]>
Ошибки: debbugs: //bugs.debian.org
Архитектура: i386
Источник: dpkg
Версия: 1.10.24
Заменяет: dpkg (<< 1.10.3)
Зависит от: libc6 (> = 2.3.2.ds1-4), ....
Имя файла: pool / main / d / dpkg / dselect_1.10.24_i386.deb
Размер: 119586
MD5sum: c740f7f68dab08badf4f60b51a33500a
Описание: пользовательский инструмент для управления пакетами Debian.
dselect - это основной пользовательский интерфейс для установки, удаления и
управление пакетами Debian. Это интерфейс для dpkg.
Таким образом, каждый пакет описывается набором полей (например, Пакет, Описание, Версия ...).
ЗАПРОС СИНТАКСИС И СЕМАНТИКА
Здесь мы подробно опишем синтаксис запроса. Начиная с версии 1.0, ара вводит новое,
упрощенный синтаксис, который является довольно традиционным и должен быть знаком всем, кто использовал
поисковые системы. Условия поиска просто комбинируются с И, OR и НЕ логические операторы.
Взглянув на ПРИМЕРЫ раздел в конце этого руководства должен предоставить вам
отправная точка.
Рассмотрим набор D описаний пакетов Debian, содержащихся в файле
/ var / lib / dpkg / доступно (или в файлах под / var / lib / apt / lists /). Каждое описание - это
набор пар формы (е, в) в котором f и v строки: f это название поля
(А именно, Упаковка, Описание, Имя файла, Зависит, и т.д.); v это его ценность. Таким образом D это набор
множества пар, образующих вселенную. Запросы выбирают подмножества вселенной D.
Параметры вывода выбирают, какие поля выбранной части юниверса отображать, и
как их отобразить.
Запросы
A запрос представляет собой логическую комбинацию атомарных выражений. An атомное выражение выбирает
подмножество множества D описаний. Я называю этот набор вещества выражения; если e
обозначает атомарное выражение, его значение обозначается [Е]. Значение логического
комбинация атомарных выражений - это просто логическая комбинация значения его
составляющие. Другими словами, если e1 и e2 атомарные выражения, тогда e1 & e2 - это
запрос, значение которого является пересечением значений e1 и e2; и значение
e1 | e2 это объединение значений e1 и e2.
атомное выражения
Атомарные выражения могут иметь форму описания, / Регулярное выражение /, quoted_строка, fieldpec
оператор1 stringили fieldpec оператор2 RegExp.
Логический Операторы и постоянная
e1 & e2 (В том числе e1 И e2, e1 и e2)
Это логическое соединение (пересечение множества). Возвращает пересечение [e1]
и [e2], т.е. пакеты, удовлетворяющие как e1, так и e2.
e1 | e2 (В том числе e1 OR e2, e1 or e2)
Это логическая дизъюнкция (объединение множеств). Объединение [e1] и [e2], т.е. пакетов
удовлетворяющие e1, e2 или обоим.
! e1 (В том числе НЕ e1, e1)
Это логическое отрицание (дополнение множества). Дополнение к [e1], т.е. пакеты
не удовлетворяет e1.
Обратите внимание, что ~ обозначает текущий спецификатор поля по умолчанию и не является
псевдоним для оператора дополнения.
правда (В том числе ВСЕ)
Набор всех описаний, т.е. всех пакетов.
ложный (В том числе никто)
Пустой набор, т.е. пакетов нет.
Поиск спецификаторы
Спецификатор поля fieldpec представляет собой список шаблонов полей, разделенных запятыми.
Шаблоны полей похожи на простые шаблоны оболочки и могут содержать символы звездочки (которые
обозначают что угодно) или вопросительные знаки (которые обозначают любой отдельный символ). Они есть
без учета регистра. Они определяют набор полей.
Например описание и Описание указать набор полей { Описание }, в то время как
де * определяет { Описание, Зависит }.
Специальный спецификатор ~ обозначает текущий спецификатор по умолчанию (см. ниже).
Текущий поля спецификаторы и упрощенный атомное выражения
Необходимость повторения спецификатора поля может сделать приведенный выше синтаксис громоздким. Поэтому
есть текущий поле спецификатор. Текущее указанное поле по умолчанию:
Описание, упаковка. Упрощенные атомарные выражения - это просто слова или упрощенная оболочка
выражения (которые не нужно заключать в двойные кавычки), и они ищутся в
поля в спецификаторе текущего поля. Они могут состоять из букв, цифр, знаков подчеркивания,
тире и точки. Они могут содержать звездочки или вопросительные знаки, которые интерпретируются как
шаблоны полей (т. е. как упрощенные выражения оболочки). Если используются двойные кавычки, другие
могут использоваться символы и пробелы.
Спецификатор поля по умолчанию в запросе запрос можно изменить на fieldpec просто
префикс запроса с fieldpec:, Это дает fieldspec: запрос. Однако если запрос is
сложный (т.е. содержит двоичные логические операторы), вам необходимо заключить запрос in
круглые скобки, как в fieldspec: (запрос1 or запрос2).
строка литералы
строка литералы можно указывать с двойными кавычками или без них; без двойных кавычек
синтаксис такой же, как для идентификаторов C, за исключением того, что вы можете использовать тире, вы должны начинать с символа
латинская буква ([а-я-я]), и вы можете продолжить с латинскими буквами, десятичными цифрами или
подчеркивать ([a-zA-Z0-9_]). Внутри двойных кавычек разрешены все символы, кроме
двойные кавычки, которым должна предшествовать обратная косая черта.
Переменные
Результаты запросов могут быть сохранены в переменных, которые могут быть вызваны позже. Это не
очень полезно в пакетном режиме, но полезно в интерактивном и графическом режимах.
Имена переменных начинаются с доллара и следуют обычным соглашениям для переменных, т. Е. Они
может быть любое сочетание буквенно-цифровых символов и символов, таких как подчеркивание, тире и т. д.
Имена переменных чувствительны к регистру, поэтому $ Установлено и $ установлен разные.
Чтобы присвоить результату запроса (который представляет собой набор пакетов) переменную с именем $ переменная
просто выполните запрос $ переменная := запрос. Затем вы можете вспомнить этот конкретный набор с помощью
просто писать $ переменная.
Пример: $ установлен := статус: (установлен & !не установлен)
Операторы
Операторы иерархического сравнения можно отменить, изменив направление угла.
скобки и добавление или удаление знака равенства в конце (<= становится >). Другие операторы
инвертируются следующим образом: = становится != и =~ становится ! ~.
fieldspec = строка
Атомарное выражение, выбирающее пакеты, имеющие поле в fieldpec имеющий ценность
значение точно равно string.
fieldpec (fieldpec <= строка, fieldspec> строка, fieldspec> = строка)
Атомарное выражение, выбирающее пакеты, имеющие поле в fieldpec чья ценность
строго меньше чем string. Используемый порядок - это порядок версий Debian. Этот
порядок совместим с естественным порядком целых чисел и с версией Debian
числа. При сравнении строк, не содержащих специальных символов, буквы сортируются
перед числами, в отличие от привычного нам лексикографического порядка ASCII. Это означает
что шестнадцатеричные числа (например, суммы MD5) не будут иметь своего обычного порядка.
Обратите внимание, что string должен быть справа от оператора (т. е. вы не можете писать
1000 < Размер).
fieldspec =~ / выражение / (В том числе fieldpec: / выражение /)
Выбирает описания, поле которых названо fieldpec существует и чье значение совпадает,
с учетом регистра регулярное выражение выражение.
fieldspec =~ / выражение / я (В том числе fieldpec: / выражение / я)
То же, что и выше, но в регулярном выражении регистр не учитывается.
fieldspec =~ / выражение / w (В том числе fieldpec: / выражение / w)
То же, что и выше, но регулярное выражение чувствительно к регистру и соответствует только в
границы слов. Обратите внимание, что переходы от букв к цифре или от цифры к букве
считаются границами слов.
fieldspec =~ / выражение / iw (В том числе fieldpec: / выражение / iw)
Регулярное выражение здесь не чувствительно к регистру и сопоставляется по границам слова.
Стандарт выражения
Регулярные выражения помещаются между парой косых черт; за последней косой чертой может следовать
коммутативная последовательность букв, обозначающих флаги. Синтаксис регулярных выражений похож на sed:
группирующие круглые скобки и чередование должны иметь обратную косую черту. Подробнее см.
Глава руководства Objective Caml о модуле Str. Суммируя (x,x1,x2 метасимволы
обозначающие регулярные выражения):
/./ Любой персонаж.
/ toto / Буквальная строка toto.
/ x1x2 / Конкатенация.
/ х1 \ | х2 /
Чередование.
\ (x1 \) *
Закрытие звезды.
[CD] Диапазон символов.
\b Границы слов.
/ х / я Без учета регистра.
/ х / ш На границах слов.
замечание
Большинство запросов будут содержать значительное количество метасимволов оболочки. Например,
логическая дизъюнкция обозначается вертикальной чертой, которая используется всеми известными оболочками.
Проблема усугубляется тем, что имена реальных команд могут появляться в
используемые выражения; поэтому успешная установка конвейера UNIX по ошибке
правдоподобно.
При звонке ара из командной строки в пакетном режиме, настоятельно рекомендуется защитить
ваши запросы, заключив их в простые кавычки; никогда не пиши что-то вроде ара
Пакет * =~ / остановка| перезагрузка | выключение / так как это, скорее всего, перезагрузит вашу систему (и
неверный синтаксис регулярного выражения, если стой or перезагружать or выключение имеется ввиду: трубы должны быть
с обратной косой чертой). Вместо этого следует написать ара 'Пакет * =~ / остановка\ | перезагрузка \ | выключение /'
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Нет.
ПРИМЕРЫ
Раздел = утилит
Перечислите название каждого пакета в разделе utils.
Раздел = утилит и ! Зависит от: (gnome | kde | gtk)
... кроме тех, чье поле зависимости соответствует регулярному выражению gnome \ | kde \ | gtk
Раздел = утилит и Статус: (установлено & !не установлен)
Список всех установленных пакетов в разделе Utils.
section = utils и ! зависит: (gtk | gnome | kde) и приоритет = необязательный
... показывать только необязательные пакеты.
section = utils & (! зависит: (gtk | gnome | kde) | размер <100000) & приоритет = необязательный
Ну, исключите gtk, gnome или kde, только если 100000 байт или больше.
Раздел = игры и (Зависит от: (gtk | sdl | kde | opengl | gnome | qt)
or / стрелять \ | убить \ | уничтожить \ | взрыв \ | гонка \ | бомба / iw
or / multi \ (- \ | \) игрок \ | стратегия \ | завоевание \ | 3 \ (- \ | \) d / iw)
и Зависит от: (xlibs or вга)
и Размер <= 1000000
Вывести все пакеты в разделе игр, размер которых не превышает одного миллиона байт,
и которые не зависят от причудливых вещей, таких как GTK, SDL, KDE, OpenGL, Qt или Gnome, не
упоминают в своем описании какую-либо форму насилия (стрелять, убивать и т. д.), не являются
описывается как многопользовательская, стратегическая, завоевательная или трехмерная, но все же зависит от
либо xlibs, либо svga, чтобы исключить консольные игры.
СКОРОСТЬ
Xara считывает всю базу данных в память, а затем обрабатывает запросы. Поскольку база данных
обычно большой, на это нужно время. Однако тогда запросы выполняются довольно быстро. Так что укажите
несколько запросов или используйте -интерактивный возможность амортизации стоимости чтения
.
Используйте xara в Интернете с помощью сервисов onworks.net