Hogyan frissítsük a FreeBSD 4.x rendszerünket FreeBSD 5.0-ra

Címkék

Frissítés FreeBSD 4.x rendszerről FreeBSD 5.0-ra mini-HOWTO

Micskó Gábor trey@hup.hu - Hungarian Unix Portal

v.1.0, 2003. január. 21 - Copyright © Hungarian Unix Portal

1. Bemutatás

2. CVS tag beállítása

3. CVSup futtatása

4. Olvasd el az UPDATING filet!

5. /etc/make.conf szerkesztése

6. Tisztítás

7. make buildworld

8. Kernel fordítás és telepítés

9. Reboot

10. mergemaster

11. make installworld

12. Frissítsd a /dev-et!

13. Frissítsd a /stand-ot!

14. Újraindítás

15. Copyright, licenc, visszajelzés és ilyesmi

1. Bemutatás

Ez mini-HOWTO leírja, hogy hogyan frissítsük a FreeBSD 4.x verziójú rendszerünket FreeBSD 5.0 rendszerre.

A frissítési eljárás kicsit más a 4.x rendszerekről az FreeBSD 5.0-ra mint előzőleg volt, ezért néhány lépést be kell építeni a frissítés folyamatába. Ezek a lépések meg lesznek jelölve a **MEGJEGYZÉS módon.

2. CVS tag beállítása

Fontos hogy meg kell változtatnunk a CVS tag-et:

*tag=RELENG_5_0_0_RELEASE

akkor, ha a RELEASE branch-et akarjuk használni. Ha a STABLE branch-ra van szükség, akkor a következőket kell tenni:

*tag=RELENG_5_0

3. CVSup futtatása

Ha még nem futtattad a 'cvsup'-ot eddig, akkor itt az idő, hogy frissítsd a forrásaidat, felhasználva a feljebb említett RELENG tag-ek valamelyikét. Legyél biztos abban, hogy tisztítottad a 'src' könyvtáradat.

#cd /usr/src

#make cleandir

#/usr/local/bin/cvsup -g -L 2 /usr/local/etc/src-supfile

(feltételezzük, hogy a supfile a /usr/local/etc könyvtárban van)

4. Olvasd el az UPDATING filet!

Ha készen vagy, olvasd el a frissítési jelentést, hogy biztos legyél benne, hogy a kód nem igényel-e további lépéseket vagy parancsokat.... Ezt megtalálod a /usr/src/UPDATING helyen. Jelenleg (az írás pillanatában) nincs más a fileban, minthogy megjelent a FreeBSD 5.0.

5. /etc/make.conf szerkesztése

Szerkeszd a /etc/make.conf filet igény szerint:

[...]

CFLAGS= -O -pipe

NOPROFILE= true

USA_RESIDENT= no

[...]

6. Tisztítás

A régi fileok eltávolítása, object könyvtárak törlése. Ez eddig nem volt szükséges lépés, de ajánlott az 5.0-ra való áttérés előtt.

# cd /usr/obj

# chflags -R noschg *

# rm -rf *

7. make buildworld

Itt az idő az új források lefordítására!

# cd /usr/src

# make buildworld

8. Kernel fordítás és telepítés

Forgasd le és telepítsd az új kerneled!

# cd /usr/src

# make buildkernel KERNCONF=KERNEL_KONFIGOD_NEVE

**MEGJEGYZÉS (új lépések itt)

cp src/sys/i386/conf/GENERIC.hints /boot/device.hints

# make installkernel KERNCONF=KERNEL_KONFIGOD_NEVE

**MEGJEGYZÉS (újabb új lépés)

# cd src/sys/boot ; make install

MEGJEGYZÉS: KERNEL_KONFIGOD_NEVE= GENERIC hacsak nem készítettél saját kernel konfigot!

MEGJEGYZÉS: Ha a rendszered secure_level beállítással futtatod, akkor a telepítés nem fog sikerülni. Ilyenkor be kell állítanod a 'kern_securelevel="-1"'-et a /etc/rc.conf-ban, és újra kell indítanod a rendszert. Ha a telepítéssel készen vagy, vissza lehet állítani az értéket az eredeti szintre.

9. Reboot

Újraindítás (reboot) egy-felhasználós módba (single user) . Ez nem szükséges, ha a 4.x-Stable-t futtatod.

# shutdown now

# mount -u /

# mount -a -t ufs

# swapon -a

10. mergemaster

Majdnem kész.. Még frissítenünk kell a /etc-t. Előtte mentsük el a /etc-t mondjuk /etc.old néven. Mielőtt nekiállunk a 'mergemaster'-nek, tudnunk kell, hogy fontos fileok kerülhetnek visszaállításra. Ha engeded, hogy visszaálljanak az eredeti verzióra, sok értékes beállítást veszthetsz el. Ilyenek a felhasználóid a passwd és group fileban. Megpróbálja eltávolítani a tűzfal szabályaidat a rc.firewall-ból, a tárcsázási beállításaidat a ppp.conf-ban, a használható héjak (shellek) listáját, stb. A végeredmény egy frissen telepített rendszerhez hasonlítana. Ha hagynánk. A 'mergemaster' lehetővé teszi, hogy vizuálisan "beolvaszd" (merge) a változásokat; de a javaslatom az, hogy ezt inkább kézzel tegyük meg a kedvenc editorunkkal. Ha bármilyen hibát vétünk, akkor az eredeti konfigurációs fileokat megtaláljuk a /etc.old könyvtárban. Nem véletlenül mentettük el. Vagy csináljuk ízlés szerint. A backup sohasem árt!

Ha telepítettél új funkciókat, akkor a 'mergemaster' megpróbálja beilleszteni az új konfigurációs fileokat a /etc könyvtárba. A 'mergemaster' szólni fog, ha nem talál a konfig fileból előző verziót, és megkérdezi, hogy akarod-e installálni az új filet. A biztonságos válasz az "i" (insert), azaz illessze be az új filet.

**MEGJEGYZÉS A 4.6-RELEASE óta futtatni tudod a mergemaster(8)-t egy ún. pre-buildworld módban a -p kapcsolóval. Ez csak azokat a fileokat fogja összehasonlítani amelyek szükségések a sikeres buildworld vagy installworld-höz. Ha a mergemaster régebbi verziójával rendelkezel, akkor az nem biztos, hogy támogatja a -p kapcsolót, így ebben az esetben használd a legfrissebb verziót a forrásfádból. Első alkalommal való futtatáshoz:

# cd /usr/src/usr.sbin/mergemaster

# ./mergemaster.sh -p

A parancsok frissíteni fogják a /etc-t a következőképpen:

# cp -Rp /etc /etc.old

# /usr/sbin/mergemaster -v -w 132

**MEGJEGYZÉS Újabb új lépés következik itt:

# rm -rf /usr/include/g++

(Mert a FreeBSD 5.0 a GCC 3.x-et igényli)

11. make installworld

Itt az idő az make installworld-re!

# cd /usr/src

# make installworld

12. Frissítsd a /dev-et!

# cd /dev

# ./MAKEDEV all

13. Frissítsd a /stand-ot!

# cd /usr/src/release/sysinstall

# make clean

# make all install

14. Újraindítás

Reboot a többfelhasználós módba (multi-user). Kész.

15. Copyright, licenc, visszajelzés és ilyesmi:

Micskó Gábor trey@debian.szintezis.hu - Hungarian Unix Portal - http://www.hup.hu/

Ez a dokumentum szabadon másolható és terjeszthetõ, ha a copyright és az engedély szövegét minden másolaton megõrzik. E dokumentum módosított változatai a változatlan másolatokkal megegyezõ feltételek alapján másolhatók és terjeszthetõk, ha a módosított változatot is az ezzel az engedéllyel megegyezõ feltételekkel terjesztik. A fordítások is a ``módosított változat'' kategóriájába tartoznak.

Garancia: Nincs.

Ajánlások: Az üzleti célú terjesztés megengedett és támogatott, de nyomatékosan ajánlott, hogy a terjesztõ lépjen kapcsolatba a szerzõvel a terjesztés elõtt, a dolgok naprakészségének biztosítása végett. (Küldhetsz egy példányt abból, amit csinálsz, ha már úgyis csinálod.) A fordítóknak is ajánlott kapcsolatba lépni a szerzõvel, mielõtt lefordítják. A nyomtatott változat jobban néz ki. A papírt használd fel újra!

Visszajelzéseket, építõ jellegű kritikát a trey@portal.fsn.hu email címre várok.

A dokumentum otthona a Hungarian Unix Portal. A legfrissebb verziót a

még nem tudom

URL-en keresd.

Sok szerencsét!

Hozzászólások

Ehh, csak így naív hozzánemértőként, azért láttam a doksiban olyat, hogy na itten reboot rekvirálva :-)

Csendben megjegyezném, debianokat már potato-ról woody-ra is tudtam úgy frissíteni, hogy távolról ssh-n, és reboot, meg ilyesmire nem volt szükség. libc upgrade meg kb. a csomagkezelő által rendesen leregisztrált szolgáltatásokat, mint pl. ssh, cron, stb. fogta, leállította, majd újraindította.

Mondhatni minimális downtime, merthogy 0 :-)

Teljesen más a megközelítés. Azt, hogy melyik a helyes, döntsd el te.

Jobb helyeken azért, amit csináltál, erősen megszóltak volna. Hogy miért? Mert élő rendszeren nem kísérletezünk. :)

A dolog lényegével egyébként te is tiszában vagy. Míg Linuxon igyekeznek tartani a visszafelé kompatibilitást, addig a BSD-knél a kernel és a userland együtt fejlődik. Ha bárkitől azt kérdezed, hogy miért nem megy a FreeBSD 2.2.8-as userlandje a FreeBSD 5.0-ás kernellel, hülyére röhögik magukat rajtad.

Tudsz egyébként még egy olyan OS-t mondani, amelynél a Linux fejlesztési módszerét használják?

Én így hirtelen nem...

Én máshogy frissítenék 4.x-es FreeBSD-ről 5.x-re: újratelepítéssel.

Előnyök: "tiszta" rendszer, UFS2-re formázhatod a fájlrendszereidet, stb, stb.

Véletlen gondolatok a fentivel kapcsolatban:

általában a kernelt szokás először lefordítani, telepíteni és azzal single user módba bootolni, mivel a buildworld során már előfordulhatnak olyan dolgok, amelyekhez kell az új kernel.

FreeBSD 5.0-ban devfs van, így nem igazán értem, miért is kéne a MAKEDEV-et lefuttatni a /dev könyvtárban, inkább a devfs-t kéne oda bemountolni.

És egy általános jótanács: produktív környezetben lehetőleg csak kb. az 5.1, 5.2-től használj FreeBSD-t! Meglehetősen sok hiba van még és jelentősen csökkent a 4.x-hez képest a hálózati sebesség is.