пʼятниця, 22 листопада 2013 р.

Новая утилита- Центр обновления PC-BSD

В последнее время у меня появилось время чтобы что-то попрограммировать для PC-BSD. Такое случается в последнее время нечасто, поэтому я попытался за это освободившееся время принести как можно больше пользы.
Одна из вещей, которые меня немного напрягают в PC-BSD это необходимость запускать сразу три утилиты для поддержания системы в актуальном состоянии. Обычно это происходит так: я вижу наличие обновлений в иконке лотка, потом правая кнопка, потом запускаю менеджер обновлений и менеджер пакетов (часто обновления пакетов идут примерно в одно время с обновлениями системы). А если еще и PBI устарели... Не критично, конечно, но хочется сделать лучше.
В итоге все это вылилось в разработку утилиты которая на момент попадания в PC-BSD должна уметь:
  • Обновлять систему, пакеты и PBI
  • Делать обновления всего в один клик (но при этом предоставлять возможность выбрать то что нужно)
  • Показывать максимально подробную информацию об обновлениях, но при этом иметь визуальное представление с минимумом информации для тех кому не интересно. Другими словами- максимально простой интерфейс по умолчанию и по желанию максимально много деталей для маньяков
  • Показывать максимум информации о самом процессе обновления (прогресс, состояние) для тех кто любит медитировать на прогресс бары. Например, текущая реализация обновления пакетов мне не нравится отсутствием информации о том сколько пакетов еще осталось скачать. Обычно обновления это 100 и больше пакетов. Я вижу что качается, скажем opencv, но я не знаю сколько пакетов уже скачалось и сколько еще предстоит скачать.
  • Иметь возможность отменить действие когда это безопасно. Опять же, скачивая 400 пакетов (что не быстро) я хочу иметь возможность отменить этот процесс штатными средствами. А при установке пакетов видеть что отменять текущее действие не стоит.
  • Утилита должна работать с тюрьмами (jails). Как минимум Warden сейчас вызывает менеджер пакетов с определенными флагами чтобы обновить пакеты в тюрьме. Это в любом случае должно быть реализовано. Но еще хочется это же делать через штатное меню без запуска warden или шаманства с командной строкой.
  • Быть интеллектуальной. Это касается как правильного порядка установки обновлений так и не которых других вещей вроде проверки изменились ли ключевые пакеты текущего окружения рабочего стола и если да предложения выйти из сессии.
На сейчас более или менее работают обновления PBI и пакетов. Проверка системных обновлений в общих чертах тоже сделана. Из оставшегося:
  1. Установка системных обновлений (их есть аж 3 вида - патч, апгрейд между версиями и обычный freebsd-update)
  2. Нужно улучшить обработку ошибок и причесать код.
  3. Добавить поддержку тюрем (кстати, не так сложно как может показаться)
Когда закончу сказать не возьмусь. Сейчас все готово где- то на 70%, но не стоит забывать о правиле 80/20. Да и со временем не факт что будет все так радужно.

Прямо перед публикацией этой записи получил письмо от Криса. Он не против проведения раннего бета теста. Основная идея- добавить утилиту в PC-BSD, но маркировать ее как раннюю бету для ознакомления и ни в коем случае не отказываться пока от существующих средств обновления. Кстати, это неплохой прецедент. Думаю в будущем можно будет так делать и дальше. 
Надеюсь вам будет интересно центр обновлений попробовать пораньше. И самое главное для чего это делается: пожалуйста пишите о найденных ошибках в баг трекере  http://trac.pcbsd.org/ или в списке рассылки testing@. Это не значит что я буду выкатывать абсолютно сырую и неюзабельную утилиту. Но все мы люди и ошибки вполне возможны. В том числе, порой, просто идиотские. Лично мне очень хочется увидеть полностью готовый и стабильный центр обновлений в  релизе 10.0.

Что в итоге получается можно увидеть ниже (скриншоты разной степени готовности так что могут немного отличатся):

Главная вкладка с минимумом информации


Детально об обновлениях системы





Детально об обновлениях пакетов



Установка обновлений пакетов


Детально об обновлениях PBI


Обновления PBI




Немає коментарів:

Дописати коментар