Это команда vcheckp, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
vcheck - средство проверки последней версии программы и автозагрузчик
СИНТАКСИС
vcheck [параметры]
вчек это инструмент для проверки последних версий программ на HTTP- и FTP-серверах.
задан список URL-адресов и регулярных выражений (в стиле Perl) для сопоставления и, при необходимости,
скачать их автоматически.
Чтобы получить полный список параметров командной строки, запустите
$ vcheck --help
ОПИСАНИЕ
вчекна поведение могут влиять как параметры командной строки, так и файл конфигурации,
который в то же время служит файлом данных, содержащим записи о программах, которые нужно проверить.
Этот файл конфигурации по умолчанию (см. «ФАЙЛЫ»), ~ / .vcheck. Он структурирован в соответствии с
синтаксис, который подробно выводится при запуске как
$ vcheck - грамматика
Подробности как о грамматике в целом, так и о значении задействованного ключевого слова можно найти
в "ГРАММАТИКЕ". Пример того, как в принципе выглядит конфигурационный файл, можно найти в
"ПРИМЕРЫ".
Основное назначение вчек это проверить наличие новых версий программ, перечисленных в его конфигурации
файл. Скрипт поддерживает все типы распространенных номеров версий, в том числе
такие слова, как "pre" или "alpha" и т. д. Когда была найдена новая версия, файл конфигурации
обновлен соответственно.
Кроме того, вчек может использоваться для автоматической загрузки файлов, если есть / была новая версия
найдены, и даже автоматически удаляют устаревшие версии, найденные локально. Специальное поле в
Запись каждой программы в файле конфигурации сообщает, какая версия была загружена последней.
При необходимости или желании загрузка может быть отключена для определенных программ или
отключены в целом и разрешены в особых случаях. Кроме того, вы можете указать предпочтения
(как в целом, так и для каждой программы) относительно того, какие файлы загружать, если они новые
доступны версии, скажем, в разных форматах.
вчек также имеет функции, позволяющие ограничить объем программ для проверки или загрузки подмножеством,
например, как определено:
· Имена регулярных выражений должны совпадать
· Минимальная срочность (которая может быть определена для каждой программы как уровни высокая,
среднийи низкокачественными)
· Те программы, которые еще не были загружены с момента обнаружения новой последней версии
· Те программы, для которых предыдущие запросы не выполнялись (опционально, определенное минимальное количество
раз)
· Сочетание нескольких из этих условий
Если вы находитесь за брандмауэром, прокси-сервер HTTP (на основе) может быть определен несколькими способами.
(приоритет в этом порядке):
· Определенный прокси HTTP или FTP, соответственно, определенный в файле конфигурации
· Общий прокси HTTP + FTP, определенный в файле конфигурации
· Определенный прокси HTTP или FTP, определенный через переменные среды
$ http_proxy / $ HTTP_PROXY и $ ftp_proxy / $ FTP_PROXY, соответственно (каждый в этом порядке
приоритет)
вчек использует escape-последовательности ANSI для визуального улучшения вывода. Сообщения об успехе
обычно печатается зеленым цветом, сообщения об ошибках желтого или красного цвета (сигнализируют о серьезности). Этот
функция может быть временно отключена с помощью соответствующего переключателя командной строки или
постоянно, через настройку в файле конфигурации (см. «РАЗДЕЛ КОНФИГУРАЦИИ»).
ГРАММАТИКА
При запуске как
vcheck - грамматика
вчек напечатает грамматику своего конфигурационного файла, то есть формальную структуру записей
в нем. Имена отдельных полей печатаются вместе с краткими описаниями; Детали
об их значении и использовании можно найти ниже в этом разделе.
По умолчанию (т. Е. Если имя сценария не было изменено (см. «ФАЙЛЫ») и если нет
переопределено через "--file"), вчек читает свою конфигурацию из ~ / .vcheck. Этот файл будет
также должны регулярно переписываться всякий раз, когда обновляется информация о версии и т. д. о программе.
В ходе такой перезаписи записи будут отсортированы определенным образом, а жестко
будет применен закодированный порядок ключевых слов и схема отступов.
По сути, конфигурационный файл может содержать два типа записей: раздел конфигурации и
любое количество разделов программы. Запись (или раздел - эти термины используются как синонимы
в этой документации) состоит из ключевого слова, обозначающего его начало, и имени (это только
относится к разделам программы), за которым следует знак равенства (`= ') и пара фигурных скобок
("{}"), между которыми помещаются данные раздела.
Данные раздела - это последовательность настроек или полей нескольких типов, некоторые из которых
обязательно, а другие - по желанию, разделенные пробелом (обычно перевод строки на
держать вещи читаемыми). Поля бывают следующих типов:
Логический
Ключевые слова этого типа устанавливают свойство, основанное на простом их наличии. Пример этого
это конфиг поле раздела dldefaultno:
конфигурация = {
dldefaultno
}
string
Строковые поля состоят из ключевого слова, за которым следует знак равенства (`= ') и строки
представляющий значение поля. Если строковое значение содержит пробел или (двойной)
кавычки, он должен быть заключен в (двойные) кавычки (`" ').
случае кавычки внутри строки и обратная косая черта должны быть экранированы
обратная косая черта (`\ '). Обратите внимание, что строковые значения не могут охватывать несколько строк, но должны быть
содержится на одном, и могут быть правила проверки того, какое значение может быть
как. Кроме того, строковые поля обычно должны иметь ненулевую длину.
Примером этого типа поля является прог поле раздела комментарий:
прог фу = {
[...]
comment = Здравствуйте!
comment = "Комментарий с пробелом и \" кавычками \ "!"
[...]
}
перечисление строк
Перечисления строк - это в основном строковые поля с ограниченным набором разрешенных
ценности. Примером этого является прог поле раздела dl, значение которого должно быть либо
«да» или «нет», если присутствует:
прог фу = {
[...]
dl = да
[...]
}
КОНФИГУРАЦИЯ РАЗДЕЛ
Раздел конфигурации является необязательным и, если он присутствует, содержит глобальные настройки.
затрагивающий вчекповедение по умолчанию. Раздел конфигурации уникален для каждого файла
(хотя разрешено несколько экземпляров с неконфликтующими настройками, но они будут
быть объединенными в единый раздел после перезаписи файла).
Ключевое слово, вводящее раздел конфигурации, - конфиг, Таким образом, конфиг раздела
Принципиальная планировка выглядит так:
конфигурация = {
[...]
}
Ключевые слова, разрешенные внутри ("[...]") конфиг раздел подробно объясняется ниже
(перечислены в алфавитном порядке):
невыполнение обязательств (перечисление: высокая, средний, низкокачественными)
Задает предполагаемый уровень срочности проверки, если иное не указано в
запись программы через прог. срочность. Срочность позволяет сделать грубый выбор программ для
проверьте это с помощью параметра командной строки "--urgency". При отсутствии этой опции
срочность по умолчанию средний.
удалить старый (Логический)
Если включен в конфиг раздел, заставляет скрипт автоматически искать и
удалить устаревшие версии программы при новой загрузке. Может быть отменено
прог.удалитьстарый. Увидеть последний для
Специальное примечание: Используйте at собственный риск!
dldefaultno (Логический)
По умолчанию не скачивать. Это заставляет скрипт загружать только эти программы.
чья dl опция явно установлена на Да при запуске с параметром "--download".
Длдир (строка: абсолютный путь к каталогу)
Этот параметр указывает абсолютный путь (т. е. относительно корневого каталога) к
каталог, куда помещать загруженные файлы. Если каталог загрузки не установлен с помощью этого
или даже более явно через прог.dldir вариант, загрузки попадут в этот каталог
в котором выполняется сценарий.
dlexec (Строка)
Задает команду, которая будет выполняться после любой успешной загрузки (если она не переопределена для
конкретная программа через прог.dlexec). Успешная загрузка в этом контексте - это одно
чей тип файла был распознан и целостность которого может быть подтверждена. В унизоиде
среды, команда выполняется в любой оболочке переменная среды
$ SHELL определяет.
Командная строка может быть дополнена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__DLURL__», «__FILE__», «__NEWVER__», «__PROG__»,
«__RAWVER__», «__URL__». Кроме того, `~ / 'будет заменен на домашний адрес пользователя.
каталог.
config.dlexec может оказаться полезным, например, для автоматического преобразования, скажем, сжатого gzip-архива в bzip-архив.
файлы с помощью вспомогательного скрипта или для регистрации загрузок (см. «СОВЕТЫ»).
dlprefs (Строка)
Разделенный точкой с запятой (`; '-) список регулярных выражений в стиле Perl, определяющих загрузку
предпочтения. Предполагается, что каждое из регулярных выражений соответствует определенному файлу.
тип, который возможен или вероятен. Порядок, в котором выражения
происходят, определяет их приоритет (первое совпадающее выражение будет определять, какой из
для загрузки будет выбран набор доступных типов файлов данной версии программы).
Это значение действует по умолчанию, если для каждого конкретного пользователя не определены конкретные предпочтения.
программная основа с использованием прог.dlprefs, Если ни то, ни другое config.dlprefs ни прог.dlprefs установлен,
загружаемый файл выбирается псевдослучайно, если происходит несколько совпадений с шаблоном.
Чтобы эти предпочтения загрузки имели какой-либо смысл, выражения сопоставления файлов и версий
должны быть достаточно неограничивающими, чтобы соответствовать нескольким возможным расширениям. За
Например, "foo - (" __ VER __ ") \\. t" будет соответствовать файлам ".tar.gz" и ".tar.bz2", а
установка dlprefs в "\\. tar \\. bz2 $; \\. tar \\. gz $" заставит скрипт предпочтительно
скачать файлы ".tar.bz2".
dlretry (строка: неотрицательное целое число)
Количество повторных попыток загрузки после неудачной загрузки. Если этого варианта нет
указано, количество повторных попыток по умолчанию равно 0. Повтор считается неудачным, если
либо соединение не удалось, полученный документ был пуст, либо тип файла
был признан и его целостность проверена.
нетерпеливый (Логический)
Если этот параметр установлен, все строковые параметры параметров файла конфигурации будут
в двойных кавычках. По умолчанию кавычки используются только там, где это необходимо (например,
для строковых параметров, содержащих пробелы).
эхоexec (Логический)
Если этот параметр установлен, команды выполняются благодаря Ньюверексек or dlexec варианты будут
эхом отозвался перед казнью.
ftpproxy (строка: URL-адрес HTTP или «сервер: порт»)
Этот параметр указывает прокси-сервер, который будет использоваться для получения документов из расположений FTP. Это
указывает либо полный URL-адрес, либо сервер и порт (как «сервер: порт»)
прокси, и прокси должен быть FTP-прокси на основе HTTP. Этот вариант имеет приоритет
за config.прокси, если указано. Если ни то, ни другое config.ftpproxy ни config.прокси установлен,
сценарий использует значение переменных окружения $ ftp_proxy или $ FTP_PROXY (в этом
порядок приоритета) установлены или вообще отсутствуют FTP-прокси.
httpпрокси (строка: URL-адрес HTTP или «сервер: порт»)
Этот параметр указывает прокси, который будет использоваться для получения документов из расположений HTTP. Это
указывает либо полный URL-адрес, либо сервер и порт (как «сервер: порт»)
прокси. Эта опция имеет приоритет перед config.прокси, если указано. Если ни то, ни другое
config.httpproxy ни config.прокси установлен, скрипт использует значение окружения
переменные $ http_proxy или $ HTTP_PROXY (в этом порядке приоритета) установлены в значение или нет
HTTP прокси вообще.
Последняя проверка (строка: дата в формате «ГГГГ-ММ-ДД ЧЧ: ММ»)
Дата и время последнего запуска сценария при обновлении файла конфигурации. Это значение
создается и обновляется автоматически.
Ньюверексек (Строка)
Команда, которая будет выполняться всякий раз, когда будет найдена новая версия программы, если она не отменена.
для каждой программы через прог.newverexec. Команда выполняется под любым
shell определяет переменную окружения $ SHELL.
Командная строка может быть дополнена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__NEWVER__», «__PROG__», «__RAWVER__», «__URL__».
Кроме того, `~ / 'будет заменен домашним каталогом пользователя.
NoCache (Логический)
Этот параметр экономит память, не кэшируя извлеченные документы (полученные из
прог.url локации). По умолчанию скрипт кэширует полученный документ, чтобы программа
записи, относящиеся к одной и той же веб-странице, не приведут к (ненужным) многократным поискам
во время того же сеанса.
простой (Логический)
Эта опция заставляет скрипт генерировать простой (в отличие от ANSI-расширенного) вывод с помощью
дефолт. Параметр можно изменить, указав "--noplain" в командной строке.
полномочие (строка: URL-адрес HTTP или «сервер: порт»)
Этот параметр указывает прокси, который будет использоваться для получения документов как по HTTP, так и по FTP.
локации. Он указывает либо полный URL-адрес, либо сервер и порт (как
«сервер: порт») прокси. Прокси, установленный с помощью этой опции, может быть переопределен с помощью
config.ftpproxy и / или config.httpproxy.
Сортировать по (перечисление: имя, URL)
Этот параметр указывает, следует ли сортировать прог записи по названию программы (прог .
идентификатор) или URL при перезаписи файла конфигурации. По умолчанию выполняется сортировка по
имя.
xfersum (Логический)
Соответствует параметру командной строки «--xfersum». Если установлено, скрипт напечатает
общий объем данных, полученных при выходе. Может быть отменено с помощью
ключ командной строки "--noxfersum".
Тайм-аут (строка: неотрицательное целое число)
Время (в секундах), по истечении которого попытки удаленного извлечения должны быть прерваны. В
по умолчанию 90 секунд.
подробный (Логический)
Если этот параметр установлен, сценарий также будет печатать номера версий, которые не были
устарело. По умолчанию печатаются только новые версии (и сообщения об ошибках). Этот
настройку можно изменить с помощью переключателя командной строки «--noverbose».
ПРОГРАММА РАЗДЕЛЫ
Каждый раздел программы определяет для отдельной программы (пакета, ...) URL-адрес HTTP или FTP на основе
на которой последняя доступная версия этой программы может быть определена с помощью вчек с помощью
дополнительно определяемое регулярное выражение. Может (гипотетически) быть любое количество
программные разделы в файле конфигурации.
Ключевое слово, вводящее раздел программы, - прог. Каждый прог раздел обозначен
уникальный идентификатор (не может быть нескольких прог разделы с одинаковым идентификатором).
Таким образом, конфиг Принципиальная схема раздела выглядит так:
прог Фу = {
[...]
}
Ключевые слова, разрешенные внутри ("[...]") a прог раздел подробно объясняется ниже
(перечисление в алфавитном порядке). Все поля необязательны и разрешены, но один раз на прог
раздел, если явно не указано иное.
комментарий (строка; допускается несколько)
Произвольная строка комментария. Если для одной программы существует несколько таких записей
записи, их относительный порядок будет сохранен при перезаписи файла конфигурации.
удалить старый (перечисление: Да, нет)
Эта опция определяет, должен ли скрипт искать и удалять устаревшие версии.
программы, находящейся в ее каталоге загрузок, после каждой «успешной» загрузки
новая версия этой программы. Успешной загрузкой в этом контексте считается любая загрузка
файл известного типа, целостность которого можно проверить. Отменяет config.deleteold;
удаление устаревших версий отключено по умолчанию и активируется только
config.deleteold or прог.удалитьстарый.
Любое появление prog.dleexplicit or прог.dlintermediate в записи программы запрещает
применение удалить старый для этой программы.
Специальное примечание: Используйте at собственный риск!
инвалид (Логический)
Эта опция приводит к тому, что рассматриваемая запись программы игнорируется (кроме случаев, когда команда
используется линейный переключатель "--force").
dl (перечисление: Да, нет)
Этот параметр указывает, загружать ли рассматриваемую программу при запуске сценария.
с опцией "--download". По умолчанию программа будет загружена при новом
версия найдена, и сценарий запускается с указанным параметром, если только config.dldefaultнет is
комплект. прог.дл отменяет последний вариант.
Длдир (Строка)
Этот параметр указывает каталог загрузки для каждой программы. Если каталог
абсолютный (т. е. относительно корневого каталога, на что указывает начальная косая черта), он
будет рассматриваться как абсолютный путь, в противном случае он будет считаться относительным либо
config.dldir, если указано, или каталог, в котором выполняется сценарий.
Строка dldir может быть расширена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__NEWVER__».
dldirlast (Строка)
Этот параметр указывает каталог загрузки последней загруженной версии
программа. В отличие от prog.dldir, он не содержит "PLACEHOLDERS". Если каталог
абсолютный (т. е. относительно корневого каталога, на что указывает начальная косая черта), он
будет рассматриваться как абсолютный путь, в противном случае он будет считаться относительным либо
config.dldir, если указано, или каталог, в котором выполняется сценарий.
Эта опция используется только для хранения свободного dldir "PLACEHOLDER", он перезаписывается при каждом новом
скачать.
dlexec (строка, может быть нулевой длины)
Задает команду, которая будет выполнена после любой успешной загрузки программы,
переопределение config.dlexec (если установлено). Успешная загрузка в этом контексте - это та, чья
Тип файла был распознан и целостность которого может быть подтверждена. Команда
выполняется в любой оболочке, в которой установлена переменная окружения $ SHELL.
Командная строка может быть дополнена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__DLURL__», «__FILE__», «__NEWVER__», «__PROG__»,
«__RAWVER__», «__URL__». Кроме того, `~ / 'будет заменен на домашний адрес пользователя.
каталог.
явный (строка: HTTP или FTP URL; разрешено несколько)
Задает явный URL-адрес загрузки. Всякий раз, когда появляется новая версия рассматриваемой программы
найден, URL-адрес, указанный с помощью этой опции, будет загружен (при запросе) вместо
тот, который выведен из прог.url и прог.regex.
Командная строка может быть дополнена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__NEWVER__», «__RAWVER__».
Эту опцию также можно использовать, например, для загрузки нескольких пакетов при обнаружении нового
версия при условии, что их имена могут быть указаны. Для примера см.
"ПРИМЕРЫ".
средний (Логический)
Если этот параметр установлен, промежуточные версии (т. Е. Версия, указанная в URL новее, чем
dlверсия но старше самой последней доступной версии) также будут загружены
если они встречаются при обнаружении новой версии программы. Этот вариант
полезно для загрузки патчей и т.п., которые зависят друг от друга последовательно.
По умолчанию промежуточные версии игнорируются.
dlprefs (Строка)
Разделенный точкой с запятой (`; '-) список регулярных выражений в стиле Perl, определяющих загрузку
предпочтения. Предполагается, что каждое из регулярных выражений соответствует определенному файлу.
тип, который возможен или вероятен. Порядок, в котором выражения
происходят, определяет их приоритет (первое совпадающее выражение будет определять, какой из
для загрузки будет выбран набор доступных типов файлов данной версии программы).
Это значение переопределяет предпочтения по умолчанию, которые могут быть определены с помощью config.dlprefs. Если
ни config.dlprefs ни прог.dlprefs установлен, выбирается файл для скачивания
псевдослучайно, если происходит несколько совпадений с образцом.
Чтобы эти предпочтения загрузки имели какой-либо смысл, выражения сопоставления файлов и версий
должны быть достаточно неограничивающими, чтобы соответствовать нескольким возможным расширениям. За
Например, "foo - (" __ VER __ ") \\. t" будет соответствовать файлам ".tar.gz" и ".tar.bz2", а
установка для `dlprefs 'значения" \\. tar \\. bz2 $; \\. tar \\. gz $ "приведет к тому, что сценарий предпочтительнее
скачать файлы ".tar.bz2".
dlreferrer (строка, может быть нулевой длины)
Задает реферер HTTP для использования при загрузке пакета программы. По умолчанию
документ, определяющий версию (т. е. последний URL значение с развернутыми заполнителями) равно
используемый.
dlверсия (Строка)
В этом параметре хранится последняя загруженная версия рассматриваемой программы.
обновляется всякий раз, когда обнаруживается новая версия (за исключением работы в режиме только для чтения). Если
прог.преобразование установлен, сохраненная версия будет преобразована из
соответствует прог.regex.
Ошибки (строка: неотрицательное целое число)
В этом поле хранится количество ошибок во время проверки версии и сбрасывается после проверки.
удается. Высокое значение этого поля указывает на устаревший URL-адрес или имя файла.
соответствует регулярному выражению и будет отмечено сценарием. Кроме того, это
можно ограничить объем операции ошибочными записями с помощью "--errors"
параметр командной строки.
Последняя проверка (строка: дата в формате «ГГГГ-ММ-ДД ЧЧ: ММ»)
В этом поле хранятся дата и время последней проверки рассматриваемой программы (неважно
успешно или безуспешно).
Ньюверексек (строка, может быть нулевой длины)
Команда, которая будет выполняться всякий раз, когда будет найдена новая версия программы, переопределив
возможное определение через config.newverexec. Команда выполняется под любой оболочкой
переменная окружения $ SHELL определяет.
Командная строка может быть дополнена следующими заполнителями (см.
«PLACEHOLDERS» для их значения): «__NEWVER__», «__PROG__», «__RAWVER__», «__URL__».
Кроме того, `~ / 'будет заменен домашним каталогом пользователя.
регулярное выражение (нить; обязательный; разрешено несколько)
Эти обязательный поле должно содержать соответствие регулярному выражению в стиле Perl
желаемые версии рассматриваемой программы с учетом документа по адресу прог.url в качестве ввода.
Обратите внимание, что регулярное выражение не обязательно должно совпадать с полным именем файла - при рассмотрении загрузки
сценарий автоматически расширит совпадение по своему усмотрению.
Регулярные выражения для сопоставления номеров версий программ должны быть записаны в таком формате.
таким образом, что часть $ 1 (см. справочную страницу "perlre"), если все выражение совпадает, является
точно номер версии. Параметр подлежит расширению заполнителя: «__VER__»
будет заменен готовой (не жадной) версией сопоставления регулярных выражений
номера, соответствующие любой из ряда распространенных схем. Обратите внимание, что для получения
Если требуется, соответствует $ 1, "__VER__" по-прежнему нужно заключить в круглые скобки. Для примеров
прог.regex значения, см. «ПРИМЕРЫ».
Чтобы справиться с особенно сложными удаленными сценариями (такими как зависящие от версии
иерархии каталогов), несколько URL, регулярное выражениеи трансформировать поля могут быть указаны в
программа. В этом случае сценарий будет соответствовать URLs и регулярное выражениеes начиная с первого
и непрерывно переходить к следующему полю каждого типа (синхронно, пока оба
они доступны, или с использованием последнего доступного в противном случае) и соответствуют регулярному выражению
против соответствующего документа. Для того, чтобы это было полезно, второй (и
каждый потенциал позже) URL должен содержать «__NEWVER__» или «__RAWVER__»
заполнитель (см. «PLACEHOLDERS»), который будет заменен предыдущим сопоставленным последним
[преобразованная] версия (такая же замена сделана для регулярное выражение). Версия, которая будет
окончательно считаться последней для рассматриваемой программы будет определена
сопоставив последний регулярное выражение против последнего URLдокумент. Для примера того, как это
можно использовать на практике, см. «ПРИМЕРЫ».
Возможные множественные трансформировать поля будут обрабатываться синхронно с соответствующими URL и
регулярное выражение поля до тех пор, пока дополнительные трансформировать поля указаны. Если есть еще
URL и / или регулярное выражение поля, чем трансформировать поля, указанные последним трансформировать выражение
будет использоваться для дальнейших итераций. Если же, с другой стороны, больше трансформировать
чем URL/регулярное выражение поля, дальнейшие поиски / совпадения будут производиться на основе последних
URL/регулярное выражение. Автор, однако, не понимает, как это может быть полезно.
При перезаписи файла конфигурации несколько URL, регулярное выражениеИ / или трансформировать поля будут
чередуются, чтобы облегчить понимание и сохранить их относительный порядок.
трансформировать (строка; допускается несколько)
Выражение Perl, преобразующее номер версии в $ _ (полученное прог.regex соответствие)
в некотором роде пользователь считает адекватным. Примеры того, как это может пригодиться, см. В разделе
"ПРИМЕРЫ". Возвращаемое значение фрагмента кода, т. Е. Значение его последнего
выражение, используется как преобразованная версия и отныне будет основой для
сравнение версий рассматриваемой программы.
острая необходимость (перечисление: высокая, средний, низкокачественными)
Определяет срочность проверки указанной программы. Срочность позволяет
грубый набор программ для проверки с помощью параметра командной строки "--urgency".
Если срочность не определена, по умолчанию используется либо config.defaultсрочность (если установлено) или
средний.
URL (строка: HTTP или FTP URL; обязательный; разрешено несколько)
Эти обязательный поле определяет URL-адрес HTTP или FTP для получения в качестве документа для сканирования
для определения наличия новых версий программы путем сопоставления с
прог.regex. Обратите внимание, что если URL-адрес является каталогом (особенно каталогом FTP, который
должен быть указан), URL потребности заканчиваться косой чертой (`/ '). Если целевой документ
это HTML-страница, ее исходный код будет сопоставлен с прог.regex, нацеленные на ссылки
встроены в документ. Альтернативный URL для загрузки можно указать через
prog.dleexplicit.
Чтобы справиться с особенно сложными удаленными сценариями (такими как зависящие от версии
иерархии каталогов), несколько URL, регулярное выражениеи трансформировать поля могут быть указаны в
программа. В этом случае сценарий будет соответствовать URLs и регулярное выражениеes начиная с первого
и непрерывно переходить к следующему полю каждого типа (синхронно, пока оба
они доступны, или с использованием последнего доступного в противном случае) и соответствуют регулярному выражению
против соответствующего документа. Для того, чтобы это было полезно, второй (и
каждый потенциал позже) URL должен содержать «__NEWVER__» или «__RAWVER__»
заполнитель (см. «PLACEHOLDERS»), который будет заменен предыдущим сопоставленным последним
[преобразованная] версия (такая же замена сделана для регулярное выражение). Версия, которая будет
окончательно считаться последней для рассматриваемой программы будет определена
сопоставив последний регулярное выражение против последнего URLдокумент. Для примера того, как это
можно использовать на практике, см. «ПРИМЕРЫ».
Возможные множественные трансформировать поля будут обрабатываться синхронно с соответствующими URL и
регулярное выражение поля до тех пор, пока дополнительные трансформировать поля указаны. Если есть еще
URL и / или регулярное выражение поля, чем трансформировать поля, указанные последним трансформировать выражение
будет использоваться для дальнейших итераций. Если же, с другой стороны, больше трансформировать
чем URL/регулярное выражение поля, дальнейшие поиски / совпадения будут производиться на основе последних
URL/регулярное выражение. Автор, однако, не понимает, как это может быть полезно.
При перезаписи файла конфигурации несколько URL, регулярное выражениеИ / или трансформировать поля будут
чередуются и сохраняют свой относительный порядок.
версия (Строка)
Хранит последнюю известную версию программы. В отличие от прог.dlверсия, Это
обнаружена последняя версия, а не самая последняя загруженная. Если прог.преобразование
установлен, сохраненная версия будет преобразована из версии, сопоставленной с
прог.regex.
МЕСТОПОЛОЖЕНИЯ
В ряде строковых полей определенные заполнители подлежат замене во время выполнения.
ценности. Эти заполнители (в алфавитном порядке):
«__DLURL__»
URL-адрес (файла), с которого была загружена последняя версия соответствующей программы.
"__ФАЙЛ__"
Локальный путь к загрузке соответствующей последней версии.
«__NEWVER__»; «__NEWVER1__», «__NEWVER2__», ...
«__NEWVER__» заменяется последним преобразован (или нетрансформированный, если нет трансформировать
выражение действует) версия доступна, как определено сценарием.
При использовании нескольких URL/регулярное выражение/трансформировать поля, чтобы справиться с более сложными удаленными
иерархии сайтов, «__NEWVER1__», «__NEWVER2__», ... предоставляют доступ к промежуточным-
определены версии. В этом случае "__NEWVER1__" заменяется версией, совпадающей с
первый URL/регулярное выражение/трансформировать кортеж, "__NEWVER2__" соответствует версии, соответствующей
второй URL/регулярное выражение/трансформировать кортеж и так далее.
«__PROG__»
Название (идентификатор) соответствующего прог .
«__RAWVER__»; «__RAWVER1__», «__RAWVER2__», ...
«__RAWVER__» заменяется последней доступной версией, определенной сценарием.
При использовании нескольких URL/регулярное выражение поля, чтобы справиться с более сложным удаленным сайтом
иерархии, «__RAWVER1__», «__RAWVER2__», ... предоставляют доступ к промежуточно определенным
версии. В этом случае "__RAWVER1__" заменяется версией, соответствующей первой
URL/регулярное выражение пара "__RAWVER2__" соответствует версии, соответствующей второму URL/регулярное выражение пара,
и т. д.
«__URL__»
URL-адрес (последний и развернутый), используемый для определения последней версии программы.
«__VER__»
Предварительно изготовленное (не жадное) регулярное выражение, соответствующее номерам версий, совместимых
с любой из ряда распространенных схем.
HINTS
· Если вы используете Vim (версия 5 или выше) в качестве редактора, вы можете указать vcheck создать Vim
файл синтаксиса, обеспечивающий подсветку синтаксиса в редакторе, запустив сценарий как
vcheck --create-vim-синтаксис-файл
Если вы хотите, чтобы Vim автоматически применял правила синтаксиса при редактировании "~ / .vcheck",
добавьте эту строку:
au BufEnter * /. vcheck so $ VIM / syntax / vcheck.vim
или, альтернативно, с явным путем:
au BufEnter * /. vcheck so /path/to/syntax/vcheck.vim
на ваш "~ / .vimrc"и подставьте подходящий путь. Конечно, вам нужно
обязательно скопируйте файл в указанный каталог.
· Нет проблем просто проверить наличие новых версий по умолчанию и запустить вчек снова
затем загрузить обновленные пакеты. Запуск скрипта как
vcheck -dc
or
vcheck --скачать --догнать
соответственно, будут пытаться загрузить только те файлы, последняя загруженная версия которых
были заведомо устаревшими, без повторной проверки наличия новых версий всех остальных программ.
· Чтобы проверить только те расположения программ, которые не удалось выполнить во время последней попытки, запустите
vcheck -е
or
vcheck - ошибки
соответственно.
· Если добавить строку
dlretry = ЧИСЛО
в ваш файл конфигурации конфиг раздел, вчек попытается загрузить файл до NUMBER
раз, если он обнаруживает, что он был получен не полностью. Так будет, если:
- файл имеет нулевой размер
- расширение загруженного файла распознано, и проверка соответствующим
декомпрессор и т. д. привели к ошибкам
· вчек кэширует данные, полученные с URL-адресов (если NoCache установлен в файле конфигурации), поэтому, если
вы указываете точно, то же URL для разных программ, это не приведет к множеству
поисков, тем самым повышая эффективность.
· Если вам интересно узнать, сколько программных записей фактически накоплено в
ваш файл конфигурации с течением времени, запустите вчек as
vcheck --синтаксис
Это проверит синтаксис файла конфигурации и, как побочный эффект, напечатает количество
программы зарегистрированы.
· Даже если вы знаете из другого источника, что есть is новая версия программы вчек
настроен для, вы все равно можете использовать его для загрузки пакета. Просто используйте его
возможности сопоставления, например:
vcheck -dm фу
· Если одна из ваших записей указывает на исправления какой-либо программы, и вы хотите убедиться, что
не пропустит промежуточный при загрузке (и предположим, что вы не запускаете вчек in
режим загрузки слишком часто), вы можете добавить логическое поле средний до
соответствующий раздел программы в файле конфигурации, и вчек постараюсь скачать все
версии новее, чем dlверсия. Обратите внимание, что в этих обстоятельствах dlверсия на
последняя (промежуточная) версия, для которой была выполнена успешная попытка загрузки (что означает, что,
если, скажем, должны быть загружены версии с 1 по 3, и все загрузки, кроме
версия 1 успешна, dlверсия тем не менее будет установлено значение 3). Полезный пример для этого:
prog Linux / patches = {
средний
dlprefs = \ .bz2 $; \. gz $
dlверсия = 2.3.6
regex = patch - (__ VER __) \. [bg] z
URL = ftp://ftp.kernel.org/pub/linux/kernel/v2.3/
версия = 2.3.9
}
Предположим, что 2.3.9 все еще является последней версией, запуск ее в режиме загрузки будет
получить исправления ядра Linux с 2.3.7 по 2.3.9, * .bz2 предпочел * .gz (но
принятие последнего, если первое отсутствует, вместо того, чтобы пропускать загрузку
целиком).
· Могут быть сложные структуры удаленных сайтов, включая каталоги, зависящие от версии
иерархии, такие как макет, используемый сервером для ядра Linux серии AC
патчи. Основной макет этого сайта выглядит (или, во всяком случае, раньше выглядел) следующим образом:
...
... / linux-2.4 / 2.4.8 / patch-2.4.8-ac1.gz
... / linux-2.4 / 2.4.8 / patch-2.4.8-ac2.gz
...
... / linux-2.4 / 2.4.9 / patch-2.4.9-ac1.gz
... / linux-2.4 / 2.4.9 / patch-2.4.9-ac2.gz
...
Проблема здесь в том, что имя каталога нижнего уровня меняется в зависимости от
обычная версия Linux, на которой основан патч AC. Как справиться с этим самым
удобно в вчек выглядит так:
прога Linux / patch / AC = {
средний
URL = http://www.kernel.org/.../linux-2.4/
регулярное выражение = (\ d + \. \ d + \. \ d +)
URL = http://www.kernel.org/.../linux-2.4/__NEWVER__/
регулярное выражение = патч - (__ VER __- ac \ d +) \. gz
}
(Обратите внимание, что URL-адреса были сокращены для удобства чтения.)
конфигурация вызовет вчек начать с получения первого URL полевой документ
и соответствовать первому регулярное выражение против этого. Затем он перейдет ко второму URL поле
документ, сопоставив его со вторым регулярное выражение, заменив его __НОВИНКА__ заполнитель
последняя версия ранее совпадала. Версия окончательно определена как текущая
версия для записи программы - это версия, определенная по последнему совпадению.
Кстати, номера версий, определенные во время совпадений, были более ранними, чем предыдущие.
к одному можно получить доступ через разделители формата __NEWVER #__, где `# '- число
с указанием номера (1 ..) URL/регулярное выражение версия пары совпадает с заменой
от. Подробнее о механизме см. В описании URL и регулярное выражение in
«РАЗДЕЛЫ ПРОГРАММЫ» и «СОБСТВЕННИКИ».
Что касается примера, пользователю остается выяснить, как расширить запись до
даже автоматически справляется с изменениями младшей версии ядра Linux. ":-)"
Вот еще один пример трехуровневой иерархии, которая использовалась для соответствия сайту GIMP.
макет в один момент времени:
prog GIMP / devel / patch = {
comment = "Будет загружен полный пакет, если патч недоступен."
dlprefs = patch -. *? \. bz2 $; patch -. *? \. gz $; gimp -. *? \. bz2 $; gimp -. *? \. gz $
URL = ftp://ftp.gimp.org/pub/gimp/
регулярное выражение = (?
URL = ftp://ftp.gimp.org/pub/gimp/v__NEWVER__/
регулярное выражение = (?
URL = ftp://ftp.gimp.org/pub/gimp/v__NEWVER1__/v__NEWVER__/
regex = (?: patch | gimp) - (__ VER __) \. [bgt]
}
· Если вы хотите получить какую-то программу, версия которой, скажем, представляет собой дату в формате "дд-мм-
yyyy ", это будет неверно интерпретировано компаратором версий, потому что большинство
значимая под- "версия" не является исходной. Вы можете обойти это, указав
некоторое выражение Perl, преобразующее исходную версию в соответствующий программный
раздел, например:
transform = "s / (\ d +) - (\ d +) - (\ d +) / $ 3- $ 2- $ 1 /; $ _"
Этому фрагменту кода дается соответствующая версия в $ _, и после его оценки
вчек заменяет исходное значение тем, что eval () возвращается. В качестве альтернативы это
достигнет того же:
transform = "join '-', обратное разделение / - /, $ _"
· Некоторые сайты используют сценарии перенаправления для URL-адресов загрузки. Рассмотрим ситуацию, когда
на странице загрузок перечислены доступные пакеты программы со ссылками, указывающими на некоторые
серверный скрипт, отсылающий ваш браузер к некоторому URL-адресу , которые is in очередь перенаправлена by
HTTP означает к URL-адресу конечного файла (например, сайт PHP использовал этот
непонятная схема в свое время). Как справиться с этим в вчек состоит в использовании
явный поле как это:
прог PHP = {
dlexexplicit = http://www.php.net/distributions/php-__VER__.tar.gz
регулярное выражение = php - (__ VER __) \. t
URL = http://www.php.net/downloads.php
}
Фактически, это будет использовать фактический URL поле только для определения текущей версии
а затем вставьте его в шаблон соответствующего URL-адреса загрузки, минуя
перенаправления. Очевидный недостаток этой функции - ее повышенная
зависимость от структур доступа на стороне сервера.
· Предположим, вас интересует какая-то программа, распространяемая более чем в одном пакете (например,
Vim, который разделен на исходный код и пакет времени выполнения). Значения вчек предоставляет
справиться с этим еще раз явный опции:
прог Вим = {
dlexexplicit = ftp://ftp.vim.org/pub/editors/vim/unix/vim-__VER__-src.tar.gz
dlexexplicit = ftp://ftp.vim.org/pub/editors/vim/unix/vim-__VER__-rt.tar.gz
регулярное выражение = vim - (__ VER __) (- src)? \. tar
URL = ftp://ftp.vim.org/pub/editors/vim/unix/
}
· Чтобы иметь вчек отслеживать, что было загружено (и когда), вы можете добавить
что-то вроде этого в ваш файл конфигурации:
конфигурация = {
dlexec = "echo` date +% Y-% m-% d` '__PROG__' '__NEWVER__' >>~ / .vchecklog"
}
Однако обратите внимание, что для конкретной программы dlexec будет иметь приоритет над этой настройкой.
· Немного креативности, вчек можно использовать для проверки не только последних версий
программы или пакеты, а также обновления веб-сайтов и т.п. Так же Ньюверексек (См.
"ГРАММАТИКА") можно использовать для передачи ссылки на внешний инструмент загрузки, если для некоторых
причина вчекСпособностей оказывается недостаточными для определенного сценария.
ПРИМЕРЫ
Обязательно прочтите, что напечатано вчек когда запускается как
vcheck --help --грамматика
а также «ГРАММАТИКА» перед чтением этого раздела, чтобы узнать о параметрах командной строки
и грамматика конфигурационного файла. Сделано так? Тогда читайте дальше ...
Предположим, есть файл конфигурации ~ / .vcheck со следующим содержанием:
конфигурация = {
dlprefs = \ .tar \ .bz2 $; \. (tar \. | t) gz $; \. zip $
lastcheck = "1999-06-21 08:15"
}
прог Фу = {
dl = нет
ошибки = 2
регулярное выражение = foo - (__ VER __) \. tar
срочность = высокая
URL = http://www.foo.org/pub/foo/
}
прог Бар = {
dlversion = 0.01бета
регулярное выражение = (? i: bar - (__ VER __) \. tar)
URL = http://www.bar.org/bar/index.html
версия = 0.01
}
прог Баз = {
регулярное выражение = baz - (\ d +) \. tar
срочность = низкая
URL = фтп://ftp.baz.net/pub/source/
версия = 123
}
Во-первых, отсюда вы можете определить дату и время. вчек последний раз запускался с этим
конфигурационный файл. Пытаюсь проверить Foo привели к каким-либо ошибкам в течение последних 2
попыток, и поскольку нет поля версии, вероятно, он никогда не запрашивался
успешно. Foo никогда не будет загружен. Барпоследняя версия, определенная во время
одна из последних проверок была 0.01, но она не была загружена (0.01beta - это версия
последняя загрузка). Ну наконец то, База никогда не загружался (согласно файлу конфигурации,
так или иначе). Что касается загрузок в целом, * .tar.bz2 предпочтительнее * .tar.gz и * .tgz, который
в свою очередь более желательны, чем * .zip файлы. Если ни одна из целей не соответствует ни одному из этих
extension без учета регистра, ничего не будет загружено.
Предположим, кроме того, что следующие ссылки в настоящее время упоминаются в соответствующих
URL-адреса каждой программы:
· за Foo:
http://www.foo.org/pub/foo/foo-3.14.tar.gz
http://www.foo.org/pub/foo/foo-3.14.tar.bz2
http://www.foo.org/pub/foo/foo-3.14a.tar.gz
http://www.foo.org/pub/foo/foo-3.14alpha.tar.gz
http://www.foo.org/pub/foo/Foo-4.0.tar.gz
· за Бар:
бар-0.01.zip
БАР-0.01.tar.bz2
· за База:
http://www.baz.net/pub/download/baz-124.rpm
Теперь давайте обсудим, какие конкретные вызовы вчек, каждый из которых основан на вышеизложенном
конфигурации, приведет к. Опять же, для полного списка параметров командной строки (все
короткие варианты имеют эквивалентные длинные), см. "vcheck --help`".
- "$ vcheck -n"
Это проверит все программы без обновления файла конфигурации. Он сообщит Foo
3.14 как новая версия (не 4.0, как регулярное выражение не соответствует этому), а также База 124.
- "$ vcheck -d"
Это проверит все программы, сообщит, как указано выше, и попытается загрузить следующие
файл:
http://www.bar.org/bar/BAR-0.01.tar.bz2
Обратите внимание, что База 124 не входит в число, потому что не было ссылки, соответствующей dlprefsи
загрузки Foo были отключены явно. В Ошибки поле Foo устранен
так как проверка прошла успешно.
- "$ vcheck -c"
Это установит dlверсия = версия для Бар и База, без проверки наличия
новых версий. Фактически, это предотвратит будущие звонки вчек с параметром
"" -d "" от загрузки этих файлов.
- "$ vcheck -dc"
Это будет проходить через все программы, загрузка которых не была отключена в
принцип и чей dlверсия ниже чем версия (То есть, Бар и База в нашем примере).
Для этих, вчек запросит соответствующие сайты для определения URL-адреса загрузки и попытается
Скачать
http://www.bar.org/bar/BAR-0.01.tar.bz2
как в приведенном выше примере.
- "$ vcheck -m \! foo"
проверит наличие новых версий Бар и База. Обратите внимание, что вам, возможно, придется процитировать ведущий
восклицательный знак, а также некоторые символы, используемые в регулярных выражениях, указанных в
командная строка, чтобы ваша оболочка не интерпретировала их.
- "$ check -u medium -mb"
будет проверять только для Бар, поскольку это единственная программа, острая необходимость по крайней мере средний и
имя которого содержит букву `b '.
- "$ vcheck -e"
будет проверять только для Foo, поскольку проверка этого ранее не удалась.
ПРИМЕЧАНИЯ
· Прежде всего, вчек Не идеально, и это не годится ВСЕ виды ситуаций. Но я
думаю, что он может справиться с большинством из них, и если действительно есть какой-то сайт, вчек
не может определить URL-адреса загрузки или какую-либо схему нумерации версий,
эвристика задыхается, вам просто придется разобраться с этим вручную. Но для большинства
случаев, вчек должно способствовать поддержанию актуальности вашей настройки.
· Не запускайте несколько экземпляров в режиме, не предназначенном только для чтения, с одним и тем же файлом конфигурации, или
иначе один вызовет потерю изменений, внесенных другими. вчек помешает
эта ситуация возникает из-за использования файла блокировки, при условии, что ваша установка Perl
поддерживает это.
не отредактировать файл конфигурации, в то время как вчек либо выполняется, либо ваши изменения будут
перезаписывается, когда сценарий перезаписывает файл.
Используйте vcheckp онлайн с помощью сервисов onworks.net