argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: ULTILEX - автоматичен ъпдейт на дистрибуциите  (Прочетена 1315 пъти)

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

Здравейте всички,

Един от проектите, по които работя в свободното си време е ULTILEX (http://ultilex.linux-bg.org) и обмислям два варианта за автоматично обновяване на системата.

1) Офлайн - потребителите теглят една или повече от вградените дистрибуции, които искат да ъпдейтнат. Пуска се скрипт, който извършва самата дейност по ъпдейта.

2) Онлайн - потребителят стартира скрипт от вече изтегленото ISO и този скрипт се занимава с това да изтегли зависимостите (дистрибуциите, които имат нужда от обновяване, допълнителни скриптова за ъпдейт, конфигурационни файлове и т.н.). Оттам нататък скриптът има грижата да "подмени" файловите структури.

Причинаат да обмислям тези варианти е защото ULTILEX включва в себе си дистрибуции, които се release-ват сравнително често и не е ефективно да пускам нова версия на ULTILEX при всяко обновяване на някоя от вградените дистрибуции. Освен това често получавам запитвания дали съществува лесен и прост начин потребителите сами да правят ъпдейти на включените в компилацията дистрибуции.

Затова искам в следващия release на ULTILEX да включа и скрипт, който да ъпдейтва включените дистрибуции като план максимум е следния (обновяване в онлайн режим):

1) Потребителят стартира скрипта.
2) Скриптът казва на потребителя кои от включените дистрибуции имат нови версии.
3) Потребителят избира кои от всички дистрибуции иска да обнови (по default са всички налични обновления).
4) Скриптът тегли ISO-тата на съответните дистрибуции.
5) Скриптът разпакетира текущо ползваното ISO на ULTILEX и извършва необходимите промени по файловата структура, ъпдейтва стартовото меню, подменя графичните изображения и т.н.
6) Скриптът пакетира наново обновената файлова структура и генерира ISO с последните ъпдейти на дистрибуциите. В случай, че инсталацията се прави от USB се стартира и скриптът за обновяване на boot сектора на USB устройството (ако е необходимообмовяване).

Друг примерен вариант, който е от тип service:

1) Потребителят тегли backbone версия на ULTILEX, която не съдържа нищо, само скриптът, който извършва обновяването.
2) Потребителят стартира скрипта и сам решава кои от възможните дистрибуции да включи в неговата лична версия на ULTILEX.
3) Изпълнението продължава така, както е описано в т.4 от горната последователност.

Тъй като това е проект, с който се занимавам в свободното си време, не разполагам с достатъчно свободно време, за да реализирам подобен скрипт в кратки срокове, затова пускам следната

О Б Я В А

Търси се млад и ентусиазиран студент, който да има желание да навлезе в света на Linux shell scripting. Препоръчителни изисквания:

1) Работа с bash, wget, windows batch files, mkisofs, cygwin и SYSLINUX се считат за предимство.
2) Нито едно от горните изисквания не е задължително и може да се компенсира с огромно желание за самообучение.
3) Да има свободно време (от опит знам, че такова винаги се намира при добро желание).

Заплащане - това е Open Source проект и облагата от тази дейност е съавторството в проекта + авторските права върху update скриптовете. Отделно, авторът (или авторите) на скрипта имат пълното право да публикуват скрипта както самостоятелно, така и в някакъв модифициран вариант на ULTILEX. Това е въпрос на избор от страна на авторът/авторите. И не на последно място - подобен проект стои много добре в професионалното CV.

От своя страна аз предлагам пълна техническа подкрепа, дистанционно обучение в областите, където е необходимо такова, съдействие за самото написване на скрипта и т.н.

Този проект е доста голям challenge - кажете ми, знаете ли колко са на брой скриптовете, които позволяват подобно генериране на bootable CD / bootable USB от няколко live Linux дистрибуции? :)

Ако познавате някой, който би проявил желание да се включи, ще съм благодарен ако го препратете към мен! :)
« Последна редакция: 29.07.2011, 16:34:50 от Иван Давидов »
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Аз от своя страна обещавам на заинтригувалият се студент, ако е 4-ти курс Информатика (или е магистър СТ/БИАЕ последна година) да го подкрепя и ръководя, така че това да му стане дипломна работа!
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

Аз от своя страна обещавам на заинтригувалият се студент, ако е 4-ти курс Информатика (или е магистър СТ/БИАЕ последна година) да го подкрепя и ръководя, така че това да му стане дипломна работа!

Супер (за студентите)! Също така искам да отбележа, че както проектът от тази тема, така и проектът от линка по-долу са уникални и нямат аналог в българското интернет пространство, а аналогичните им проекти в световното интернет пространство са много малко (ако изобщо можеда се каже, че има аналогични проекти).

Има огромно поле за изява, стига човек да поиска. :)

https://forum.uni-plovdiv.bg/index.php?topic=3923.msg112648
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Аз съм имал дипломант с подобна тема, хем преди 6-7 години - за ъпдейтване на софтуер и сега си го ползвам неговият компонент (на Delphi) за моите си проекти (с негово разрешение, а и той като основа ползваше Open Source неща, разбира се). Но искам да поема ръководенето не от користни цели, а просто като стимул за студента! А, и то ми се наложи да го ползвам чак миналата година - и добре че се сетих за него...
« Последна редакция: 02.11.2010, 11:55:37 от Светослав Енков »
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

Да дам малко повече визия каква се очаква да бъде крайната цел.

Например следната поредица от команди:

dist-get install sysrescd
dist-get install finnix
dist-get install puppy
dist-get usbinstall


Горната поредица би трябвало да свали няколко ISO файла от интернет и да генерира файлова структура, която да съдържа System Rescue CD, Finnix и Puppy Linuxи, след което да направи цялата тази файлова структура bootable (при условие,че всичко това се прави в-у флашка).

И след това примерно:

dist-get update sysrescd
dist-get remove finnix
dist-get createiso


Горната поредица би трябвало да ъпдейтне System Rescue CD, да премахне Finnix и след това новогенерираната файлова структура да се "препакетира" в bootable CD ISO image.

Номерът е някой програмист да седне и да направи dist-get (за Linux и Windows), да се измисли в какъв формат, къде и по какъв начин ще се пазят мета-данните за инсталираните дистрибуции (за да може да се прави update/uninstall) и да се измисли адекватен механизъм разработчиците на live Linux дистрибуции лесно да могат да добавят собствени скриптове или мета-данни, така че тяхната дистрибуция да може да се използва през dist-get.

Както вече казах, имам визията как всичко това може да се реализира, но ако работим повече хора, крайният резултат ще дойде много по-бързо. А и не се съмнявам, че ще влезем в историята с този проект (ако някой намери реализиран аналог на тази идея, моля да ми каже)!
« Последна редакция: 04.11.2010, 19:29:18 от Иван Давидов »
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

Реших да извадя темата от прахта, защото кой знае - може пък някой студент да реши, че подобен проект е интересен! :)
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Аз отново ще потвърдя, че става за дипломна работа и ще го поема. Ако има някой навит без тема, но разбиращ от тези неща и ги направи до 15-20 септември - го пускам на защита на 8-9 октомври.
Активен