Child pages
  • The first update
Skip to end of metadata
Go to start of metadata

Az első frissítés

A telepítés során előfordulhat, hogy egy pár hónapos telepítőkészletről telepítünk, hiszen nagyjából fél-egy évente kerül ki újabb kiadás, amely telepítő készlettel jár, ezt hívjuk bináris disztribúciónak. Két bináris disztribúció között forrásból fordítva tudjuk frissen tartani a FreeBSD alaprendszerünket. Nagyon fontos, hogy rendbe tegyük az alaprendszert, a kernelt és a telepített csomagokat, hiszen a frissítés nélkül a szerver stabilitását vagy biztonságát veszélyeztetjük!

Az alaprendszer frissítése

Mivel a telepítés után egy olyan FreeBSD van a szerverünkön, amely elavult lehet, ezért frissíteni kell rajta. Ehhez a FreeBSD alaprendszer teljes forrását le kell hoznunk, amely némi előzetes munkát jelent. Először is kell egy /etc/make.conf ahol a make parancs globális változóit tároljuk:

/etc/make.conf
WITHOUT_X11=yes
KERNCONF=JAVAFORUM
OPENSSLBASE=/usr/local
WRKDIRPREFIX=/tmp

A FreeBSD frissítéséhez először a ports adatbázist kell frissítenünk, hogy friss programokhoz juthassunk, ugyanis a feltelepített ports adatbázis az alaprendszerrel együtt elavult, egyébként is érdemes naponta frissíteni, s az első futás el fog tartani egy jó darabig:

Parancssor
freebsd# portsnap fetch extract
Looking up portsnap.FreeBSD.org mirrors... none found.
Fetching public key from portsnap.FreeBSD.org... done.
Fetching snapshot tag from portsnap.FreeBSD.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Fri Aug 22 02:21:34 CEST 2008:
[...]
/usr/ports/x11/yelp/
/usr/ports/x11/zenity/
Building new INDEX files... done.

Ezek után telepítsük fel a cvsup programot, amely a FreeBSD forrásait szinkronba hozza majd a CVS-ben tárolt forrás aktuális állapotával, a telepítés során a -P azt jelzi, hogy próbáljon meg bináris csomagot szerezni a portinstall, ha ez nem sikerül, akkor fordítson forrásból, így időt tudunk nyerni, s később majd le tudjuk fordítani a telepített programokat:

Parancssor
freebsd# portinstall -P cvsup
[...]
===>  Cleaning for ezm3-1.2_1
===>  Cleaning for cvsup-without-gui-16.1h_4
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 15 packages found (-0 +2) .. done]

Most, hogy megvan a cvsup program, hozzuk létre a /usr/local/etc/supfile.sources fájlt az alábbi tartalommal (a _RELENG_7_1 jelenti, hogy a 7.1-es FreeBSD kiadáshoz tartozó forrás érdekel minket):

/usr/local/etc/supfile.sources
*default host=cvsup.hu.FreeBSD.org
*default base=/usr/local/etc
*default prefix=/usr
*default release=cvs tag=RELENG_7_1
*default delete use-rel-suffix
src-all

Majd frissítsük le az alaprendszer forrásokat is:

Parancssor
freebsd# /usr/local/bin/cvsup -g -L 2 /usr/local/etc/supfile.sources
Parsing supfile "/usr/local/etc/supfile.sources"
Connecting to cvsup.hu.FreeBSD.org
Connected to cvsup.hu.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection src-all/cvs                           
[...]
 Edit src/usr.sbin/ypserv/ypserv.8
  Add delta 1.41.10.1 2008.03.30.19.39.29 matteo
Shutting down connection to server
Finished successfully

Nos, a FreeBSD kernelhez kell egy saját konfiguráció, amely jelen esetben csak a nevében különbözik a GENERIC nevű kerneltől (ha nem AMD64 a gépünk típusa, akkor keressük meg a nekünk megfelelő architektúrát):

Parancssor
freebsd# cd /usr/src/sys/amd64/conf/
freebsd# sed s/GENERIC/JAVAFORUM/g <GENERIC >JAVAFORUM

Ha szükségünk van a DTrace tudásra, akkor ezt be kell kapcsolnunk a kernel fordítása előtt:

options       KDTRACE_FRAME           # Ensure frames are compiled in
options       KDTRACE_HOOKS           # Kernel DTrace hooks
options       DDB_CTF                 # all architectures - kernel ELF linker loads CTF data

A fordításkor ebben az esetben az alábbi paramétert is meg kell adni:

make buildkernel WITH_CTF=1

Ezek után mehet a fordítás, amely a gép sebességétől függő időt vesz igénybe igénybe (egy átlagos kiszolgón 30 percre lehet számítani):

Parancssor
freebsd# cd /usr/src
freebsd# time make buildworld
--------------------------------------------------------------
>>> World build started on Tue Jan 13 20:46:58 CET 2009
--------------------------------------------------------------
[...]
--------------------------------------------------------------
>>> World build completed on Tue Jan 13 22:06:07 CET 2009
--------------------------------------------------------------

real    79m10.056s
user    61m19.016s
sys     11m49.993s
freebsd# time make buildkernel
--------------------------------------------------------------
>>> Kernel build for JAVAFORUM started on Tue Jan 13 22:12:18 CET 2009
--------------------------------------------------------------
[...]
--------------------------------------------------------------
>>> Kernel build for JAVAFORUM completed on Tue Jan 13 22:32:37 CET 2009
--------------------------------------------------------------

real    20m19.106s
user    13m46.135s
sys     2m5.310s

A fordítás közben esetleg csinálhatunk snapshot-ot a ports és az src mostani állásáról, így folyamatosan tudunk frissíteni adatbázist és forrásokat, szükséges esetben pedig vissza tudunk állni egy korábbi állapotra, másrészt pedig amint külön fájlrendszert hozunk létre, arra a szülő fájlrendszer snapshot-ja nem érvényes (lásd: usr@install):

Parancssor
freebsd# zfs snapshot bpool/usr/ports@install
freebsd# zfs snapshot bpool/usr/src@install
freebsd# zfs snapshot bpool/usr/local@install

Ha elkészült a buildworld és az buildkernel, akkor újra single-user módba kell ugranunk, és felcsatolni a ZFS köteteket, a / fájlrendszert pedig írhatóan újracsatolni:

Parancssor
# /etc/rc.d/hostid start
Setting hostuuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Setting hostid: 0xFFFFFFFF.
# /etc/rc.d/zfs start
# mount -u /
freebsd# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
bpool                     2.34G  5.47G    19K  /bpool
bpool/tmp                 1.46M  5.47G  1.44M  /tmp
bpool/usr                 2.27G  5.47G   224M  /usr
bpool/usr@install          155M      -   214M  -
bpool/usr/local           90.8M  5.47G  90.8M  /usr/local
bpool/usr/local@install     48K      -  90.8M  -
bpool/usr/obj             1.51G  5.47G  1.51G  /usr/obj
bpool/usr/ports            146M  5.47G   146M  /usr/ports
bpool/usr/ports@install       0      -   146M  -
bpool/usr/src              162M  5.47G   153M  /usr/src
bpool/usr/src@install     9.46M      -   153M  -
bpool/var                 69.8M  5.47G  69.7M  /var
bpool/var@install          167K      -   244K  -
dpool                      105K   207G    18K  /dpool

Ha minden rendben van, akkor telepíthetjük az új alaprendszert:

Parancssor
# cd /usr/src
# time make installworld
[...]
rm -rf /tmp/install.PNth69uR
19.573u 24.694s 2:53.19 25.5%   351+572k 48+2664io 436pf+0w
# make installkernel
[...]
kldxref /boot/kernel
5.264u 2.768s 1:30.34 8.8%      444+2362k 4+3358io 132pf+0w
# exit

A single-user módban bármikor ki tudjuk adni az exit parancsot, amelynek hatására a multi-user módba kerülünk, tehát nem szükséges egy reboot ahhoz, hogy távolról is hozzáférhessünk a FreeBSD szerverünkhöz.

Az újraindítás után ellenőrizzük, hogy a saját kernelünk fut-e:

Parancssor
# uname -a
FreeBSD freebsd.javaforum.hu 7.0-STABLE FreeBSD 7.0-STABLE #0: Thu Aug  7 16:02:12 CEST 2008     toor@freebsd.javaforum.hu:/usr/obj/usr/src/sys/JAVAFORUM  amd64

A telepített csomagok frissítése

A telepített csomagokat mindenképpen frissíteni kell, hiszen ezek is a feltelepített kiadással együtt érkeztek – és ugyanúgy elavultak, napi szinten 10-50 csomag frissül, általában mindig van olyan programunk, amelyet tudunk frissíteni.

A csomagok frissítését mindig azzal kezdjük, hogy frissítjük a ports adatbázist:

Parancssor
freebsd# portsnap fetch update
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug  6 21:55:43 CEST 2008 to Thu Aug  7 13:56:25 CEST 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 52 patches.....10....20....30....40....50. done.
Applying patches... done.
Fetching 4 new ports or files... done.
Removing old files and directories... done.
Extracting new files:
/usr/ports/UPDATING
[...]
/usr/ports/x11/xtset/
Building new INDEX files... done.

A csomagok telepítéséhez hasonlóan a frissítés is egyszerű:

Parancssor
# portupgrade -a -i
--->  Session started at: Thu, 07 Aug 2008 16:20:23 +0200
** No need to upgrade 'perl-5.8.8_1' (>= perl-5.8.8_1). (specify -f to force)
--->  ** Upgrade tasks 15: 0 done, 1 ignored, 0 skipped and 0 failed
--->  Upgrade of devel/pcre started at: Thu, 07 Aug 2008 16:20:29 +0200
--->  Upgrading 'pcre-7.4' to 'pcre-7.7' (devel/pcre)
OK? [yes]
[...]
--->  Packages processed: 9 done, 5 ignored, 0 skipped and 1 failed
--->  Session ended at: Thu, 07 Aug 2008 19:06:03 +0200 (consumed 02:45:39)

Nos, elkészült a lehető legfrissebb FreeBSD szerverünk, a lehető legfrissebb kernellel és a legfrissebb csomagokkal.

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels