22 януари 2006

Актуализацията на софтуер - нож с две остриета

Преди две седмици се наложи да актуализирам софтуера на един компютър, който се ползва за сървър за бездискови станции. Операционната система, която е сложена на него е Slackware и понеже се бяха намазали едни неща, предпочетох вместо да актуализирам инсталираните пакети, да го преинсталирам наново с последната версия. Като време прецених, че двата подхода са почти еквивалентни, а и при първият от време на време се намазват допълнително нещата. Тъй като пакетната система на Slackware не поддържа зависимости между пакетите и ако новата версия на някоя програма използва пакет, който не го е имал в предишната дистрибуция, поради което не се инсталира при актуализацията, е възможно след нея програмата да не работи коректно. Така например в къщи след като минах от 10.1 на 10.2 нещо KMail не може да стартира процесите за проверка на поща. Тъй като не го ползвам, не ми се е разправяло да търся къде точно се намира проблема, но ако някой знае, няма да му се разсърдя, ако сподели. Въпреки този недостатък, харесвам тази дистрибуция, понеже не е претрупана, компактна е и не натрапва виждането на авторите си върху интерфейса.

Преди да ползвам Slackware, седях няколко години на RedHat, но след версия 9.0, реших да се откажа от него. Първо много прецакаха интерфейса на любимото ми KDE, а освен това зависимостта между пакетите му бе феноменална. Например, ако искате да деинсталирате Qt библиотеката, ще се наложи да деинсталирате и Gnome десктопа, защото някаква конфигурационна програма писана от RedHat използва Qt и виждате ли без нея Gnome не може да върви :-).

Оказа се, че процеса с преинсталация не върви толкова бързо, колкото си мислех, а освен това се натъкнах на няколко подводни камъка. Първият бе свързан с дяловете на диска. Имаше един дял отделен за данни, който не исках да форматирам в процеса на инсталация. Обаче по неясна за мен причина в новата версия на Slackware, дяловете се преномерираха и дялът с данни от hda3 стана на hda4. В това нищо лошо, само че форматирането на swap дяла, който от hda4 стана hda3, явно батиса дяла с данни. Добре че бях направил архивни копия на данните, че съвсем щях да закъсам. Лошото бе, че ги бях направил доста инстинктивно (слава на инстинктите) и в първия момент не се бях сетил за тях. Ругах като каруцар.

Вторият проблем бе свързан с 2.6 версията на ядрото. Засега в Slackware стандартно се слага 2.4 ядро, но в 10.2 имаше опция от инсталатора да се сложи 2.6. В предишните версии на Slackware можеше да се слага ръчно, но не съм се възползвал. Сега реших да опитам. Груба грешка, придържайте се към ръчния подход. Оказа се че инсталатора добре слага ядрото, но незнайно защо не слага модулите към него и те трябва да се доинсталират ръчно, ако заредите успешно разибра се. Също така не пуска зареждащия скрипт за udev и може да имате проблеми с монтиране на cd устройството. Може и други работи да не прави, но аз афектиран от загубата на данни и напредването на времето реших да не се разправям с глупости, реших да карам по изпитания начин.

Третият проблем щях да го имам независимо кой начин бях избрал. Оказа се, че конфигурационния файл на kdm-то е променен. Може би тук загубих най-много време. Искам като се стартира kdm-то да не пуска X на локалния компютър, тъй като и без туй на него никой не сяда, пък и монитора който е закачен на него не се справя много добре с графичните режими. В предишната версия се хващаше файла Xservers и се закометираше един ред в него. В тази версия обаче този файл не се ползваше, а конфигурацията от него бе разхвърляна като разни параметри в kdmrc. Бая време ми трябваше да го стопля това, но накрая поомазах параметрите. Основният ефект бе постигнат: не се пускаше X на локалния компютър. Лошото бе, че имаше и страничен ефект, не се пускаше и login промпт. Както и да, така или иначе никой не сяда там, не е болка за умиране, ще го боря в свободното време.

Четвъртият проблем, който присъства и в двата подхода беше свързан с печатенето. Преди да се прати докуменат към принтера се рендерира през някаква програма, която в случая на Slackware e ESP Ghostscript. В Slackware 10.2 се използва версия 8.15rc4, която на пръв поглед работи коректно. Само, че ако се опитате да разпечатите нещо и в прозореца за печат му дадете повече копия, се оказва че има проблем. Тъй като някои от приложните програми, които се ползваха генерират документи в няколко екземпляра, това се оказа сериозен проблем. Симптома беше, че принтера не печатеше, в лога на cups-а имаше индикация, че рендера дава грешка. Чудех се дали проблема е в самия рендер или в дефиниционните файлове на принтера, но след слагане на предходна версия 7.07 на ESP Ghostscript проблема изчезна.

Защо написах всички тези неща? Първо да съм полезен за някой като го предпазя да прави моите грешки или по-лесно да се справи с тях, ако ги е направил. И второ да дам следния съвет: не актуализирайте версии, преди да сте прочели changelog-а, вярно че в новите версии са отстранени доста грешки, но може да има и нови функционалности, които прецакват предишните. Последното го открих в документацията на kdm, когато се борих с него.

Няма коментари: