Автор Тема: [Решен] задържане на текуща версия на пакет  (Прочетена 1961 пъти)

mimosh

  • Напреднали
  • *****
  • Публикации: 317
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
Имам следният проблем

Компютър на който има инсталирано Кубунту 10.04 и което ще ползва от потребител който нищо не разбира. Направено е кубунтуто да се ъпдейтва автоматично, когато има ъпдейти.

Как може да се направи така че да не се ъпдейтва единствено ядрото, защото за да работи безжичната мрежова карта се пише в стартиращият ред на ядрото. (не мога да цитирам какво точно се пишеше в стартиращия ред, но то е написано в menu.lst, а при ъпдейт на ядрото този файл се променя и съответно мрежовата карта не работи)

За предпочитане е да се направи така, защото компютърът се ползва в друг град и се администрира през нета.
« Последна редакция: Jun 18, 2010, 14:04 от mimosh »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: задържане на текуща версия на пакет
« Отговор #1 -: Jun 02, 2010, 17:12 »
Ако забраниш обновяването на ядрото, ще трябва да забраниш обновяването на още една торба пакети покрай него. Покажи точно какво добавяш към параметрите на ядрото, за да видим може ли да се измисли по-удачно решение ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

tyuio

  • Напреднали
  • *****
  • Публикации: 145
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #2 -: Jun 02, 2010, 17:50 »
И какъв е модела на тая безжична че да се правят такива гимнастики?
Активен

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #3 -: Jun 03, 2010, 05:05 »
https://help.ubuntu.com/community/PinningHowto
С две думи:
Код:
$ sudo aptitude install linux-image=2.6.32.22.23

Добавяш в /etc/apt/preferences:

   Package: linux-image
   Pin: version 2.6.32.22.23
   Pin-Priority: 1001

И въпрос:
Цитат на: neter
Ако забраниш обновяването на ядрото, ще трябва да забраниш обновяването на още една торба пакети покрай него.
Какво имаш предвид?
Код:
$ apt-cache rdepends linux-image-2.6.32-22-generic
linux-image-2.6.32-22-generic
Reverse Depends:
  linux-image-generic
  linux-backports-modules-wireless-2.6.32-22-generic
  linux-backports-modules-alsa-2.6.32-22-generic
Видно три пакета, и то все части от ядрото и метапакет. Няма"торба" зависими.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #4 -: Jun 03, 2010, 07:38 »
emerge -1 sys-kernel/gentoo-sources

При мен така задържам версиите
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: задържане на текуща версия на пакет
« Отговор #5 -: Jun 03, 2010, 12:41 »
И въпрос:
Цитат на: neter
Ако забраниш обновяването на ядрото, ще трябва да забраниш обновяването на още една торба пакети покрай него.
Какво имаш предвид?
Първо, за да забраниш обновяването на ядрото, трябва да забодеш (pin-неш) версиите на всички пакети, които съдържат linux-image в името си, а не само мета пакетa linux-image (т.е. още 2-3 пакета).
Второ, забранявайки обновяването на ядрото, трябва да забраниш и обновяването на linux-headers (въпреки забраната за обновяване на ядрото, apt ще иска да обновява хедърите), т.е. трябва да забраниш обновяването и на всички пакети, които съдържат linux-headers в името си. А rdepends за linux-headers-generic показва списък с модули като nvidia, fglrx, virtualbox и други. Т.е., спираме обновяването и на видео драйвера, ще трябва да се обновява ръчно.
Трето, на него не му трябва спиране обновяването на ядрото, а спиране надграждането на ядрото, понеже само тогава се добавя нов ред в bootloader-а (когато се промени поне числото 22 от версията 2.6.32-22). Полезно е да се остави ядрото да се обновява, дори и да не се надгражда.
Четвърто, нещо хипотетично. Например, ако стане някаква генерална промяна в някоя бъдеща версия на ядрото, поради което да се промени действието на пакети, които са в списъка със зависимости на ядрото, и тези пакети се надградят, но не се надгради и ядрото, какво ще се случи с работата на системата? Например, променя се начинът, по който се зареждат модули в ядрото, пакетът module-init-tools се надгражда и започва да действа по новия начин, но ядрото е старо - не биха могли да се заредят нужни модули към него.
Петото няма да е свързано с въпроса - спирайки обновяването на ядрото, оставя за постоянно в системата си потенциални дупки в сигурността, които ще са оправени в следващи версии.

Не съм против забраната за обновяване на ядрото, но е твърде крайно решение, особено за тази ситуация. Най-вероятно текущият проблем може да се реши и по много по-безболезнен начин, но нека видим какво толкова добавя към boot параметрите, за да видим какво може да е най-доброто решение. Промени в нормалната работа на системата не са препоръчителни за системи, които ще се ползват от начинаещи потребители, тъй като винаги могат да се появят неочаквани резултати от промяната. В текущата ситуация, ако все пак в краен случай се налага добавянето на параметъра в bootloader-а, то вместо да се забранява обновяването на ядрото, по-добре да се драсне един скрипт, който да се задейства автоматично след обновявания, и който да добавя нужния параметър в реда на новото ядро.

P.S.: В друга посока на размисли, защо ще се оставя възможност на потребителя да обновява системата, щом е толкова начинаещ, че не може и един параметър да си добави в bootloader-а след това? Аз предпочитам Debian базирани дистрибуции (въпрос на навик, а не на реално предпочитание), но забелязвам, че при Debian базираните дистрибуции често се случва нещо да се счупи след надграждане. Най-често е нещо незначително, но понякога се налага и стабилна намеса след надграждане. Не че в другите дистрибуции не се случва понякога, ама... Какво ще прави този толкова неоправен потребител, който не може да добавя параметри в bootloader-а, когато му се счупи нещо в системата след някое обновяване? Ако ще работи с някоя система (независимо каква), трябва да се научи поне на някои елементарни неща, нужни за обслужването й. Все едно да има фотоапарат, но да не се научи как да форматира паметта му, когато се напълни. Ако няма желание да се научи поне на някои неща, нужни за обслужването на системата, то решението далеч не е да се забрани обновяването на ядрото. Този потребител се оставя в ръцете на някой, който е наясно (било то безплатно или платено), и на потребителя се забранява да прави каквито и да е било системни неща. Разни такива половинчати решения водят само до допълнителни главоболия.
« Последна редакция: Jun 03, 2010, 13:47 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #6 -: Jun 03, 2010, 15:45 »
Идея номер две преди заспиване снощи ми беше да вкараме параметрите на ядрото в дефолтни, така при всяко обновяване ще се добавят автоматично към всяко ново ядро, само трябва да се промени kopt в menu.lst. (Тук нещо не е както трябва, това 10.04 с ГРУБ 1 ли е? Странна комбинация.) А виж за хедъри.. не съм убеден че ще е проблем, дори да се обновяват. В крайна сметка нали хедърите на текущата версия никой не ги е махал, те се и използват за пакети/компилации които имат нужда $(uname -r), а новите просто ще са там.
Експеримент за тест: инсталира се виртуалка, пинва се ядрото и се пуска надграждане.
Организационно: mimosh, този компютър в друг град администриран през нет не е желателно този нет да е безжичен. Като ще е време за администрация по-добре добрата стара жица за малко, и администратора може да стартира надграждане на ядрото с промяна на параметрите и всичко което му душа иска, докато връзката му е сигурна. Потребителят после може спокойно да си го ползва до следващия сеанс на връзка, без да се занимава с обновявания въобще.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: задържане на текуща версия на пакет
« Отговор #7 -: Jun 03, 2010, 16:38 »
А виж за хедъри.. не съм убеден че ще е проблем, дори да се обновяват. В крайна сметка нали хедърите на текущата версия никой не ги е махал, те се и използват за пакети/компилации които имат нужда $(uname -r), а новите просто ще са там.
Ами не е баш така. Когато не се прави минорно обновяване (например, минаване от версия 2.6.31-15.49 към 2.6.32-22.23, т.е. имаме повишаване на версията поне от числото 15 наляво), старите хедъри си остават и се инсталират новите, но ако се прави минорно обновяване (например, от версия 2.6.31-22.23 към 2.6.31-22.60, т.е. обновява се последното число от версията), новите хедъри се плесват на мястото на старите. Същото е положението и с ядрото, затова при минорно обновяване не се слага нов ред в bootloader-а - просто новите ядро и хедъри се слагат в папките на старите. Често промяната в последното число от версията на хедърите се прави само с цел изравняване с числото от версията на ядрото без да има някакви промени в хедърите, при което няма да има проблем със съчетаването на новите хедъри със старото ядро, но и често има разлика в хедърите дори при минорно обновяване, и тогава ще има проблем. За да се избегне това разминаване без да се забожда версията на хедърите, трябва забождането на версията на ядрото да се направи, когато поддръжката за тази версия на дистрибуцията приключи (като преди забождането системата трябва да се обнови без да се надгражда). Тогава ще е сигурно, че повече минорни обновявания за тези хедъри няма да излизат, и ще се качват само допълнителни нови хедъри без да се заменят старите.
С останалите неща съм съгласен. Предложението за kopt също е добро, но не съм сигурен как стои въпросът с него в Grub2 - до момента сблъсъкът ми с него е само на една машина на инстал феста. Между другото, Ubuntu-то, което беше сложено на тази машина, първо е било с Grub1, а мисля, че си беше 10.04, но след обновяване на пакетите след инсталацията си качи Grub2, и то така, че си омаза конфигурационния файл menu.cfg, та се налагаше ръчно да махнем няколко грешно попълнени реда в новата конфигурация, за да запали. Може би ще трябва да се забожда и версията на Grub :)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #8 -: Jun 04, 2010, 16:36 »
@ neter, ткс за инфото. Не знаех че е възможно заменяне на нови хедъри в старите места. Все още се съмнявам обаче, че такова обновяване ще направи проблем, хубаво ще е някой да сподели реален опит. За ГРУБ 2 - промяна на GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" в /etc/default/grub ще свърши същото както kopt в ГРУБ 1.
ПП странно надграждане сте направили на инстал феста - моята домашна машина е доведена до 10.04 от 9.04 и все още си работи с ГРУБ1 без проблеми. И не, няма нужда да се боде ГРУБ.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

mimosh

  • Напреднали
  • *****
  • Публикации: 317
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #9 -: Jun 04, 2010, 23:28 »
Съжалявам за забавеният отговор.

Това което трябва да се добави в реда при на кернела е pci=use_crs

само така работи безжичната мрежова карта.
Това Кубунту 10.04 е с Grub 2 - нова инсталация не е ъпдейт.
Този ред трябва да се добавя при ядра 2.6.32 и 2.6.33.  С 2.6.34 не съм пробвал, с по-стари работеше без проблем.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: задържане на текуща версия на пакет
« Отговор #10 -: Jun 05, 2010, 12:02 »
Добре, явно все пак ще се наложи параметърът да си остане вписан в реда за ядрото. Явно wireless картата не успява да се свърже правилно към ядрото и е нужна малко помощ с този параметър. Щом си с Grub2, вкарай параметъра в настройката, за която спомена dejuren, и така параметърът ще се добавя към реда за всяко новоинсталирано ядро. Т.е., отваряш файла /etc/default/grub с root права, намираш този ред:
Цитат
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
и го променяш да бъде така
Цитат
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=use_crs"
Има малка вероятност текущо въведените параметри на реда да не са същите като в примера, така че търси реда за GRUB_CMDLINE_LINUX_DEFAULT и добави нужния ти параметър към останалите. Така няма да ти е нужно забождане версията на ядрото.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

tolostoi

  • Напреднали
  • *****
  • Публикации: 1337
  • Distribution: Ubuntu
  • Window Manager: Unity
  • левел: авераж :)
    • Профил
Re: задържане на текуща версия на пакет
« Отговор #11 -: Jun 05, 2010, 12:14 »
Допълнение към поста на neter: След като направиш корекцията, изпълни
Код:
update-grub
И виж дали се оплаква от нещо, както можеш да видиш дали са добавени в /boot/grub/grub.cfg
Активен


... в Столичен инспекторат една година след миграцията, продължават да работят под Linux. Което, май прави "експеримента" успешен
by entusiast

mimosh

  • Напреднали
  • *****
  • Публикации: 317
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
Евала neter това ми върши идеално работа
Цитат
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=use_crs"

ама като не съм се сблъсквал с Grub2 (е то аз и с grub1 толкова се бях сблъсквал  :D ) ама благодарско от мен  [_]3 [_]3 [_]3
Активен