freebsd-update -r 9.2-RELEASE upgrade - cast 1, operacni system

Dan Lukes dan at obluda.cz
Thu Mar 6 22:27:57 CET 2014


Vilem Kebrt wrote:
> uz ponekolikate jsi to tu zminil, nicmene tak jak prohledavam konferenci
> tak mi prijde ze vzdy das k dispozici cast informace a pote zase cast.
> Chtel bych te Dane pozadat, mohl by jsi nekam vystrelit "jednoduche
> howto" se seznamem nastroju, pripadne hacku ktere by jsi rad zverejnil
> pro tyto prilezitosti ?

Ono je to tak trochu tim, ze ten problem ma celou radu samostatnych
podproblemu a ja vetsinou zminim jen ten, ktery se tyka prave probirane
otazky. Popsat uplne vsechny casti, kazdou do detailu by bylo pomerne
dlouhe (a vite, ze ja pro dlouhy dopis nejdu daleko - takze myslim sakra
dlouhy) a pomerne neprehledny.

Takze radeji bych to rozebiral "odshora", od nejake osnovy, a do detailu
zabihal jen tam, kde problematika neni srozumitelne dostatecne rozbrana
nekde jinde. Tam, kde se nekdo zepta.

Takze ta hruba osnova (i ta je dost dlouha).

A) Zacneme od "repository" - to je "bezny" pocitac s instalaci metodou
"kompilace ze zdrojaku" a zdrojovymi kody udrzovanymi metodou 'svn'. A v
teto fazi se budeme venovat OS, nikoli portum.

I tak to ma nekolik samostatnych podproblemy:

A.1) Udrzba zdrojaku s pomoci 'svn'.
Zakladni literatura:
> http://www.freebsd.org/doc/handbook/svn.html

Konkretni tipy pro 9.1-R:
A.1.a) inicializace svn:
svn checkout https://svn0.eu.freebsd.org/base/releng/9.1 /usr/src

A.1.b) aktualizace zdrojoveho stromu
  cd /usr/src ; make update
  procemz predpokladam, ze v /etc/make.conf je
> SVN_UPDATE=     yes
> SVN=/usr/local/bin/svn

A.2) Preklad systemu ze zdrojaku
Zakladni literatura:
> http://www.freebsd.org/doc/handbook/makeworld.html

Odchylky a poznamky:
Z popsanych kroku provadim tyto:
2,3,7,4,8,9
pozor, 9 je na strance popsany chybne, pouzijte mergemaster -iF
ja osobne bodu 2 a 3 & 8 spojuju do jednoho make, takze
make -DNOCLEAN KERNCONF=MUJCONF buildkernel buildworld
a obdobne pro installkernel installworld

v pripade "drobne" aktualizace (zmena patchlevel) pouzivam u make v
bodech 2 a 3 option -DNOCLEAN, pokud se meni release tak ne

Teprve po restartu a aktualizaci portu (ktere se ted nebudeme venovat)
provadim kroky 10 a 12

Ruznych kernelu si muzete prelozit i vic, nainstalovat na tomto stroji
samozrejme chcete jen jeden. V praxi prekladam dalsi kernely az pote co
mam kompletne dokoncene vyse popsane kroky. Kazdy dalsi kernel prelozite
samostatnym volanim
make -DNOCLEAN KERNCONF=jmenokonfigurace buildkernel
pro pouziti NOVLEAN plati stejna pravodla jako popsana vyse

ANO, jsem si vedom moznych potizi, ktere mohou vzniknout tim, ze
installworld neprovadim v single-user rezimu. Upgrade se muze nepovest a
muze to skoncit i ve stavu, kdy po restartu stroj nepujde bootnout. To
je cena za to, ze spravu tohoto stroje provadim vzdalene a v typickem
pripade to proces zjednodusuje a zrychluje. POKUD k nejakym problemum
dojde a stroj se stane nepouzitelnym, tak to ale nicemu moc nevadi -
toto je jen aktualizacni repository na jehoz funkcnosti akutne nic
nevisi a tudiz je cas problem resit (v krajim pripade az novou
instalaci). Z praxe, ktera saha az nekam k 6.x-R muzu rict, ze se to
stava velmi vyjimecne.

ANO, jsem si vedom potizi, ktere mohou vzniknout vynechanim bodu 1 za
soucasneho pouziti parametru -DNOCLEAN v bodech 2 a 3. Vyrazne to
zkracuje preklad s rizikem, ze vznikne poskozeny build, ktery dokonce
mozna nasledne rozinstaluju na vsechny stroje se vsemi katastrofalnimi
dusledky, ktere to muze mit na produkcni stroje. Konecne rozhodnuti zda
zvolim tenhle postup (ja vetsinou ano) udelam kdyz si v UPDATINGS prectu
co se mezi temi patchlevel zmenilo. Pravdepodobnost, ze je rozhodnuti
nespravne uzce souvisi se zkusenostmi, ktere nelze predat formou navodu.
V pripade jakychkoliv pochybnosti doporucuju pouzit konzervativni postup
a NOCLEAN nepouzit.

A.3) Vlastni patche zdrojoveho stromu
Tomu, s dovolenim, venuji samostatny mail. Stejne jako portum

A.4) export s pouzitim NFS
Zakladni literatura:
http://www.freebsd.org/doc/en/books/handbook/network-nfs.html

Konkretni rady:
/etc/rc.conf:
> mountd_flags="-ln"
> nfs_server_enable="YES"
/etc/exports:
> /usr/src /usr/obj /usr/ports  -ro -maproot=0 -network A.B.C.D/M


 ---------------

Tak - ted tedy mame pouzitelne centralni repozitory, s aktualnim a
prelozenym worldem a tolika kernely kolik jsme se jich rozhodli
potrebovat. Takze k cemu nam to je ?

B) Aktulizace konkretniho stroje z centralniho repository
Zakladni literatura:
> http://www.freebsd.org/doc/handbook/makeworld.html

Aktualizace se prilis nelisi od aktualizace provadene ze zdrojaky, ktere
bychom meli na danem stroji lokalne a lokalne si je take prelozili.

Jen je lokalne nemame a neprekladame je - misto toho je namountujeme ze
vzdaleneho stroje:

mount_nfs -o tcp name.of.repository.cz:/usr/src /usr/src
obdobne pro /usr/obj

Alternativne si muzeme cesty napsat do /etc/fstab takze od priste bude
stacit prosty
mount /usr/src a mount /usr/obj:
/etc/fstab:
> name.of.repository.cz:/usr/src       /usr/src        nfs     tcp,ro,noauto   0       0
> name.of.repository.cz:/usr/obj       /usr/obj        nfs     tcp,ro,noauto   0       0

Ostatni faze aktualizace uz jsou shodne jako by to cele bylo lokalni.

Konkretne - provadim 4,7,8,9
K devitce stejna poznamka jako u bodu A.2

Teprve po restartu a aktualizaci portu (ktere se ted nebudeme venovat)
provadim kroky 10 a 12

Samozrejme, v bodu 4 pouzijeme parametr KERNCONF a nainstalujme jen ten
spravny kernel pro prave aktualizovany stroj.

ANO, stejne jako vyse jsem si vedom rizika instalace v multi-user
rezimu. Zde uz ale mluvime o aktualizaci produkcniho serveru kde
nasledky nepovedeneho update jsou vyrazne vetsi. Na druhou stranu, kdyz
se nam tento update uspesne povedl na centralnim repository, je sance,
ze se povede bez problemu i tady.

 --------------------------------------------------------------------

Pokud je ten-ktery bod nejasny, nebo nejaky zcela chybi, ptejte se.

Tak - to mame udrzbu OS na centralnim repository a update z nej na
jinych strojich. Nemame porty, nemame vlastni patche. Saga pokracuje ...

Dan



More information about the Users-l mailing list