LINUX.ORG.RU

Идея.: Протокол получения последней версии ПО.


0

0

Уважаемое сообщество. Есть идея, которая может быть полезна системным администраторам, использующим свободное ПО. Так как уследить за всеми новинками обычно бывает сложно даже при наличии подписок на rss-каналы, придумать и внедрить на сайтах протокол(интерфейс), а на файл-серверах демоны, или просто утилиты , который бы получал последнюю версию того или иного продукта и ссылку на скачивание. В принципе это тот же rss, только его желательно было бы заточить для использования в баш-скриптах и т.п.

Пример. Обычно на свой файл сревер я заливаю последние версии такого ПО как Mozilla(fx,tb,sb),календарные обои, мелкие свободные игрушки, для того чтобы, для того чтобы если что можно было бы быстро поставить последнее. Но вот уследить, где что последнее вышло не всегда получается. Причем было бы хорошо чтобы всё то, о чём я говорю,было кросс-платформено.

Да и предвидя то, что появятся комментарии насчёт того что большинство проектом имеют встроенные апдейтеры, иногда вся папка с последним уходит на флешку, флешка в карман, и на баррикады в которых никогда не было интернета...

Вот так сказать высказал, Если тут есть те люди из сообщества, которые смогут протолкнуть идею в массы... это было бы очень хорошо. Особенно в массы тех, кто контрибутит или занимается локализацией.


Ответ на: комментарий от www_linux_org_ru

Видели, только вот хотелось бы чтобы это было де-факто во всех системах, для примера вот то, о чём я примерно веду речь

GET /some.check.version.page HTTP/1.1
Host: mozilla.ru
......

HTTP/1.1 200 Ok
....

#prod    platf arch   version   downloadlink
firefox   winnt  i386  3.0.0.8  http://some.mirror.net/somefile.msi
firefox   linux  i686  2.0.0.21 http://some1.mirror1.org/somefile.tar.gz



Конфиг


[global]
directory=/var/ftp/pub/soft
someoptions = zxvf

#product    platform    arch    din 
# din - download if new
[usefull]
firefox        winnt         i386    yes
thunderbird    winnt        i386    notify
openttd        linux        i686    yes

guilder
() автор топика
Ответ на: комментарий от guilder

Хм... если брать софт из репозиториев, то cron+bash_scripting и можно надстройку над тем же apt'ом сделать. И будет оно Вам само ставить/уведомлять.

А если каждую софтину из своего сайта, так сказать, тянуть, то... бред.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Не, ну погодите меня обратно.

Вот например я пользователь линукс. Обычный дистр у меня. Пакетный менеджер все эти пакеты разруливает и мне это нахер не нужно.

А вот например я мейнтейнер десятка пакетов. Вот уже было бы удобно что-то такое. RSS разные новости доставляет, а так запустил программулину, она получила версии пакетов и радость.

Или, ещё лучше, в багзилле плагин написать. Оно автоматически там по крону запускается, сайты опрашивает, и где есть новые версии на пакет аттрибут ставит. А мейнтейнер как обычно получает уведомление о фичреквесте. Если реализовывать через RSS - то это довольно неудобно - писать много именно для парсинга rss-са, ведь у каждого проекта это будет выглядеть по особому. А так был бы протокол. Реализовал протокол - всё, он один для всех проектов. По мне так идея вполне интересная.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Или вот я админ, понаставил на сервер всякой херни руками (ну пришлось). И теперь шибко волнуюсь об обновлениях безопасности. Каждое утро хожу проверяю RSS и рассылки, не вышло ли обновлнение безопасности.

А так была бы программулина, которая умеет проверять всё что нужно. Счастье )

AndreyKl ★★★★★
()
Ответ на: комментарий от urxvt

к сожалению не все софтины попадают в репозитории. Если с репозиториями ситуация клиентов много он один - то тут наоборот. я один а сайтов(продуктов много).

guilder
() автор топика
Ответ на: комментарий от www_linux_org_ru

опять же changelog`и бывают разные. Тем более что парсинг их занимает болше времени,чем даже тот примерный формат который я предложил, да и в принципе информация получаемая из него будет избыточна в некотором смысле.

guilder
() автор топика
Ответ на: комментарий от AndreyKl

Ну с репозиториями все понятно. Но, неужели Вы позволите автоматом ставить (хотя не думаю что оно хотя бы поставится) неоттестированный софт? Я имею ввиду тестирование с вашими версиями библиотек/ядром и так далее. Ваше окружение. Софт в репозиториях ведь именно в вашем окружении и тестируется и под него затачивается. Вот стянули вы тот же мускуль, собрали, установили автоматом и сидите беды ждете.

P.S. Хотя что-то у меня такое чувство, что я не верно понял суть идеи, на ночь глядя.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Идея в том чтобы получать информаию о текущей версии продукта. И допусти (далее смотря что использовать), слить и/или сообщить о том что вот есть новая версия. Я не ставлю целью изобрести yum и т.п. Простое информирование о версии...(и слитие клиентом если потребуется)

guilder
() автор топика
Ответ на: комментарий от guilder

Извиняюсь, за не внимательность и поспешность. Отличная идея! Попробуйте разработать протокол, потом дело не хитрое, -- реализовать, а потом останется главное, -- популяризировать его среди разработчиков. :)

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

на счёт разработать протокол - я постараюсь. А на счёт популяризации - я уже пытаюсь пробыть данную идею на mozilla.ru. Надеюсь что если эта идея будет реализована и о её существовании узнает хотябы 2 таких больших сообщества - дальше потянуться остальные.

guilder
() автор топика
Ответ на: комментарий от guilder

Simple Version Protocol 
Version 0.1

Краткое описание.
Протокол предоставления информации о последних версиях продуктов компаний.

Цель изобретения.
Быстрый и малоёмкий способ предоставления информации о последних версиях продуктов для загрузки или информирования потребителя. Данный 

протокол не ставит перед собой цель использования его для разработки Пакетных Менеджеров или Менеджеров Обновлений.Пакеты протокола 

должны быть максимально краткими и информативными, легко понимаемыми алгоритмами парсинга и в тоже время понятным человеку. Протокол 

может работать поверх существующих популярных протоколов, таких как HTTP.

Описание протокола.
Протокол текстовый. Не желательно применять в теле сообщения протокола нечитаемые символы. В случае использования поля ПРИМИЧАНИЕ 

перед основными данными указывать кодировку. По умолчанию предлагаю использовать кодировку UTF-8.
Также желательно ПРИМЕЧАНИЕ кодировать в BASE64,хотя и необязательно если указывать кодировку. 

Далее под клиентом понимается программа(демон или просто утилита) запускающаяся по расписанию.

Тело сообщение имеет следующий формат.
Каждая строка - продукт.
Каждый продукт имеет 6 полей разделённых пробелом или знаком горизонтальной табуляции.

Описание полей.
ПРОДУКТ	ПЛАТФОРМА АРХИТЕКТУРА ВЕРСИЯ ССЫЛКА ЗАМЕТКИРЕЛИЗА

ПРОДУКТ 	- например, firefox
ПЛАТФОРМА	- [winnt,linux,solaris,macosx,.., cross]
АРХИТЕКТУРА	- [i386,i686,i*86,ppc,x86_64,noarch]
ВЕРСИЯ		- версия продукта, например 3.0.0.8
ССЫЛКА		- прямая ссылка на скачивание.(рабочая причем)
ЗАМЕТКИРЕЛИЗА	- ССЫЛКА на на статью,информацию о данном релизе или же закодированное(base64) текстовое примичание.
Ссылку на заметку я думаю кодировать не нужно будет.Также это поле является необязательным.
Заметку можно не кодировать если она заключена в кавычки. (данное утверждение спорно)

Примерные длины полей.
Продукт	- не более 32 символов.
заметка релиза - не более 128 символов(именно закодированного сообщения).
Здесь я накладываю ограничение для того, чтобы было всё таки удобнее читать глазами, и не было переносов строк.

ПРИМЕРЫ

HOST:mozilla.ru
---------начало тела-----------
firefox		linux	i*86	3.0.0.8		http://mozilla.org/.../file.ext "The greastes browser in the world"
thunderbird	winnt	i*86	2.0.0.21 	http://mozilla.org/.../file.ext http://mozilla.org/thunderbird/release/
sunbird		macosx	ppc	7.8.9.10 	http://mozilla.org/.../file.ext
chatzilla	cross	noarch	http://mozilla.org/.../file.ext
--------конец тела-------------

Host:joomla.org
---------начало тела-----------
cms		noarch	cross	1.2.3.4		http://joomla.org/.../file.ext "Joomla!"
--------конец тела-------------

ДОПОЛНИТЕЛЬНО

Также скрипты сервера должны понимать аргументы.
допустим по запросу http://example.net/svp.php?platform=winnt
должны выдаваться только версии продуктов для форточек
!!!Аргументом не может служить версия, ссылка и примичание
Список аргументов
product
platform
arch

КРАТКО
[product:64][platform:enum][arch:enum][version][downloadlink]([releasenotes:128
])[newline]

ПРЕДПОЛАГАЕТСЯ
что клиент информирован о предыдущих версиях продукта. Если он запускается впервые, то должен сформаровать эти данные.

Заключение.
Скачивания того или иного продукта, а также информирование и средства информирования оставляются на суд разработчиков клиентов.
Также подразумевается, что скачивание и/или информирование должно быть определено в конфигурационном файле клиента.
Пример секции продуктов конфигурационного файла.
firefox	winnt i*86 http://mozilla.ru/svp.php 
openttd linux i*86 http://openttd.org/svp/
Также считаю чтобы не было разногласий определить(обсудить) точное определение архитектура и платформ.

С уважением, Гилдер.

guilder
() автор топика
Ответ на: комментарий от guilder

Так делать нельзя.

Посмотри, как это делается в Mozilla Firefox (ключи, контрольные суммы). Да и линукс бывает разный, так что строчнкой linux ты не отделаешься

Davidov ★★★★
()
Ответ на: комментарий от www_linux_org_ru

Ну для мейнтейнера это в общем какой-то смысл имеет... а не проще ли написать свой скрипт, чтобы парсить cvs/... и Changelog?

Ключевое слово парсить.

Это геморно. Конечно, один отдельный ченжлог распарсить не проблема, а вот когда у каждого свой.. свои ньюансы. Да и может не лежать это в доступном месте.. а протокол попроще. Лежит, кажем, по вебу файлик version.xml или txt. И там в обговоренном формате всё что нужно.

AndreyKl ★★★★★
()

Что то страшное нагородили. Даже если ты майнтайнер и сам собираешь пакеты, есть уже готовые скрипты. Как например в генту, там качается архив последней версии проги с офф сайта проекта, например сразу из sf.net.

Lucky1 ★★★
()
Ответ на: комментарий от AndreyKl

> Или, ещё лучше, в багзилле плагин написать. Оно автоматически там по крону запускается, сайты опрашивает, и где есть новые версии на пакет аттрибут ставит.

в deb-пакетах есть файл debian/watch, который отвечает за поиск новой версии на сайте производителя. Всё уже украдено до нас :)

gaa ★★
()
Ответ на: комментарий от Lucky1

тут вопрос стоит не только про сборку пакетов. Вебразработчикам, админам, такая весчь бы пригодилась.

К слову о версиях,ключах,контрольных суммах. Мысль конечно интересная.Только вот что брать в контрольную сумму, надо подумать. Я бы например предложил брать в кс версию и размер в байтах. Если есть какие либо ещё предложения, предлагайте.

Опять же напоминаю для тех кто не полностью прочитал предыдущие посты: речь идёт и о тех продуктах которые не включаются в репозиторий и не только под linux платформу.

guilder
() автор топика
Ответ на: комментарий от guilder

>К слову о версиях,ключах,контрольных суммах. Мысль конечно интересная.Только вот что брать в контрольную сумму, надо подумать. Я бы например предложил брать в кс версию и размер в байтах. Если есть какие либо ещё предложения, предлагайте.

Подписанный файл апдейтов, в нём контрольные суммы всех версий, иначе потенциальная дырища.

Придётся заново изобрести зависимости и многие другие уже реализованные технологии.

Всё это актуально только для винды, для которой уже придумали пакетный менеджер.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

Вопрос - зачем нам зависимости????

Цель не в установке какого либо пакета, программы и т.п. а в информировании о последней версии. Пусть установкой занимаются специальные средства такие как yum, apt-get, и т.п.

guilder
() автор топика
Ответ на: комментарий от guilder

>Цель не в установке какого либо пакета, программы и т.п. а в информировании о последней версии. Пусть установкой занимаются специальные средства такие как yum, apt-get, и т.п.

В таком случае, технология уже есть: RSS. А вот линки на дистрибутивы излишни.

Например: http://freshmeat.net/projects/unison/releases.atom

Davidov ★★★★
()
Ответ на: комментарий от Davidov

Меня опять не поняли. Объясню ещё раз почему я всё это затеял и для чего нужны ссылки. Во первых я считаю что RSS - это создано всё таки для людей.

Цель именно получение последней версии и ссылки для того чтобы можно было скачать в какое-нибудь укромное место, не устанавливать. а потом когда надо всё залил на флэшку и побежал на баррикады где нет интернета и приводить в порядок класс надо. Вот как я понимаю, то о что я пытаюсь протолкнуть. Причём клиент(образноговоря) может скачивать то что вы ему подписали или информировать вас о том или ином. Хотя я не веду речь о разработке клиента. С таким форматом какой я предложил это можно быстро реализовать с помощью awk sed и wget. В чём отличие от RSS. - нет лишних слов и предъидущих версий. Зачем мне вагон информации о них, когда мне просто нужно узнать последнюю.

guilder
() автор топика

Помню ещё здесь кто-то предлагал универсальный формат файлов

dimon555 ★★★★★
()
Ответ на: комментарий от guilder

> Опять же напоминаю для тех кто не полностью прочитал предыдущие посты: речь идёт и о тех продуктах которые не включаются в репозиторий и не только под linux платформу.

Все мы прочитали. Напиши свой debian/watch для нужных тебе продуктов.

Никого ты не заставишь вместо тебя парсить RSS/atom/Changelog/выбери по вкусу.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

В значительной степени потому не заставишь, что это (распарсить) очень просто сделать самому. Было бы сложно -- тогда твой протокол имел бы смысл.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Мда уж,хотели как лучше, а получилось как всегда. Хотя большое спасибо за критику.Экая оказия - изобретать слона без Азии.

Более менее внятную спецификацию я всё-таки напишу и выложу или здесь или ещё где-то. Может быть действительно это кому-нибудь поможет. Да и опробую у себя на работе. Надеюсь что кроме меня это попробует сделать ещё кто-нибудь.

guilder
() автор топика
Ответ на: комментарий от guilder

>Более менее внятную спецификацию я всё-таки напишу и выложу или здесь или ещё где-то. Может быть действительно это кому-нибудь поможет. Да и опробую у себя на работе. Надеюсь что кроме меня это попробует сделать ещё кто-нибудь.

для этого есть дистрибутив и его разработчик, пусть ставит последние версии софта в зависимости от политики дистрибутива, а я, как пользователь, буду ориентироваться на эту политику, а потом устраивать флейм, что дистрибутив А лучше чем Б, потому что я пользуюсь Б, но хочу к нему политику из А

dimon555 ★★★★★
()
Ответ на: комментарий от guilder

easy_install из python умеет и последнию версию и находить последнию версию на сайте и много чего ещё

твой протокол не предусматривает расширений и вообще всё плохо :)

dimon555 ★★★★★
()

чур меня, чтобы ГНУ/линукс самообновлялся по дефолту.

это же мастдайщина!

потом, не везде это нужно.

твой домашний компьютер (да и вообще десктоп) - это лишь малая часть ниши, в которой используется линукс.

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.