@дом≥вка ¬≥ктора „мел¤

 
 [√оловна / Ќотатки консультанта]

ќновленн¤ FreeBSD. CVSup. make [build|install] world|kernel


@ «адача: ѕ≥дтримка системи в поточному стан≥ FreeBSD-STABLE.

 оли виход¤ть чергов≥ пов≥домленн¤ про проблеми в безпец≥ (Security Advisories) њх можна вир≥шити дек≥лькома способами. ѕерший - встановленн¤ окремих латок (patches), що виправл¤ють помилки знайден≥ в вих≥дних кодах ≥ подальша перекомп≥л¤ц≥¤. ƒругий - синхрон≥зац≥¤ вс≥х вих≥дних код≥в системи до наступного стаб≥льно працюючого стану, ≥ знов таки перекомп≥л¤ц≥¤. ≤снуЇ певна р≥зниц¤ м≥ж цими п≥дходами (докладн≥ше див. листа в≥д ¬алер≥¤ ЌечаЇва "«алатуванн¤ системи: патч≥ чи cvsup?"), але ¤ надаю перевагу другому вар≥анту ¤к такому, що може бути найб≥льше автоматизований.

  1. «роб≥ть резервн≥ коп≥њ вс≥х важливих даних, та каталог≥в з конф≥гурац≥йними файлами (/etc, /usr/local/etc).

  2. —инхрон≥зуйте ваш≥ вих≥дн≥ коди з бажаною г≥лкою дерева розробки FreeBSD. я роблю це через cvsup(1), див. гарний переклад документац≥њ дл¤ CVSup в≥д —ерг≥¤ ќсок≥на, та коротенький опис, ¤к це зроблено у мене.

  3. якщо ви закачували вих≥дн≥ коди в /usr/src, то прочитайте файли /usr/src/UPDATING та /usr/src/Makefile, вони м≥ст¤ть всю необх≥дну ≥нформац≥ю, ¤ку треба знати дл¤ побудови ¤дра та системи.

  4. ƒал≥ коп≥юють /usr/src/etc/defaults/make.conf в /etc/make.conf та при бажанн≥ редагують цей файл:

    #cp /usr/src/etc/defaults/make.conf /etc/make.conf

    #vi /etc/make.conf

    ќсь де¤к≥ корисн≥ реч≥:
      CFLAGS= -O -pipe
    CPUTYPES=p3
    MASTER_SITE_BACKUP?=...ftp7.ua.freebsd.org/...
    MASTER_SITE_OVERRIDE?=

    ¬и можете поекспериментувати ≥ з ≥ншими опц≥¤ми, але не зм≥нюйти н≥чого без ч≥ткого усв≥домленн¤ того що ви робите (див. файл defaults/make.conf та стор≥нку документац≥њ дл¤ make.conf(5)).
  5. ќчистити систему в≥д залишк≥в попередн≥х комп≥лювань та зб≥рок:

    #cd /usr/obj

    #chflags -R noschg *

    #rm -rf *

  6. ѕеребудова системи та ¤дра (див. http://www.understudy.net/makeworld.html)

    ѕосл≥довн≥сть команд при перезбиранн≥ з /usr/src/Makefile:

     # 1.  `cd /usr/src'       (or to the directory containing your source tree).
    # 2. `make buildworld'
    # 3. `make buildkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
    # 4. `make installkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
    # 5. `reboot' (in single user mode: boot -s from the loader prompt).
  7. ≤нод≥ новим верс≥¤м програм потр≥бн≥ ≥ нов≥ в≥дпов≥дн≥ конф≥гурац≥йн≥ файли, або ¤к≥сь нов≥ опц≥њ в них. ќтже окр≥м власне оновленн¤ програм треба оновити ≥ файли. ѕор≥вн¤йте стар≥ конф≥ги (/etc)з новими (/usr/src/etc) та внес≥ть зм≥ни. ўоб трохи автоматизувати цей процес скористуйтесь ут≥л≥ткою mergemaster (¤кщо њњ не ≥снуЇ в базов≥й систем≥ - про≥нсталюйте з порт≥в [sysutils/mergemaster], б≥льше див. http://www.freebsddiary.org/mergemaster.php ). ƒана ут≥л≥та перев≥р¤Ї однаков≥ файли чи н≥, пропонуЇ вар≥анти њх зам≥ни/не зам≥ни/злитт¤, а вам залишаЇтьс¤ лише уважно читати њњ вив≥д ≥ обирати.

    - make.conf


    ÷ей файл впливаЇ на команду make. « правильно настроЇними опц≥¤ми можна п≥двищити продуктивн≥сть комп≥л¤ц≥њ ≥ роботи програм. ‘айл знаходитьс¤ в /usr/src/etc/defaults/ directory. …ого потр≥бно зкоп≥ювати в /etc/ та зм≥нити :

    - /ets/passwd (/etc/master.passwd & /usr/src/etc/passwd)

    - /etc/group
    (/etc/group & /usr/src/etc/group)

  8.  # 6.  `mergemaster -p'
    # 7. `make installworld' (All right? Does ps(1) and top(1) work?)
    # 8. `mergemaster'
    # 9. `reboot'
  9. ѕерев≥рка

  10. Ќу ≥ п≥сл¤ того ¤к... «апуст≥ть щось на зразок
    #uname -a
    щоб перев≥рити чи все працюЇ, ≥ що ви маЇте в результат≥.

  11. ўе раз все перев≥рте чи не забуте щось, ≥ ... насолоджуйтесь!

@ cvsup tuning

Download source code from cvsup-server:


# cvsup -g -L 2 /etc/cvsupfile

Key features in cvsupfile (more see in "CVSUP tuning."):
 # We have FreeBSD 4.7 installed => for obtaining all current security advisories for this branch we need:
*default tag=RELENG_4_7
# cvsup servers for Ukraine: cvsup5.ua.freebsd.org, cvsup7.ua.freebsd.org.ua
*default host=cvsup5.ua.freebsd.org
*default base=/usr
*default release=cvs delete use-rel-suffix compress
src-all

Command line:

# cvsup -g -L 2 <cvsupfile>
where
-g - not use GUI,
-L 0-2 - verbose level.

Of course the best way is put this command into some crontab file.

2 main files:

/etc/cvsupfile



bash-2.05b# cat /etc/cvsupfile
*default host=cvsup5.ua.freebsd.org

# The release branch for FreeBSD-4.7, used only for security advisories and other seriously critical fixes.
*default tag=RELENG_4_7

# for ports collection
# *default tag=.

# where to put status info
*default base=/usr/local/etc/cvsup

# where to put src dir
*default prefix=/usr

# synchronize with cvs repository, allow delete, ???, allow compress on communication channel
*default release=cvs delete use-rel-suffix compress

src-all

/usr/local/etc/sup/refuse

The refuse file goes in /usr/local/etc/cvsup/sup/refuse as mentioned in the handbook at http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html Section A.5.3.1 "The refuse file essentially tells *CVSup* that it should not take every single file from a collection; in other words, it tells the client to /refuse/ certain files from the server. The refuse file can be found (or, if you do not yet have one, should be placed) in /base//sup/.
/base/ is defined in your supfile; by default, /base/ is /usr/local/etc/cvsup, which means that by default the refuse file is /usr/local/etc/cvsup/sup/refuse."


bash-2.05b# cat /usr/local/etc/cvsup/sup/refuse
ports/chinese
ports/french
ports/german
ports/hebrew
ports/japanese
ports/korean
ports/vietnamese
doc/de_DE.ISO8859-1
doc/el_GR.ISO8859-7
doc/es_ES.ISO8859-1
doc/fr_FR.ISO8859-1
doc/it_IT.ISO8859-15
doc/ja_JP.eucJP
doc/nl_NL.ISO8859-1
doc/pt_BR.ISO8859-1
doc/sr_YU.ISO8859-2
doc/zh_TW.Big5

@ Patching system: patches or cvsup?


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From: Valentin Nechayev
To: Viktor V. Chmel
Cc: freebsd AT freebsddiary dot org dot ua
Date: Friday, November 21, 2003, 7:50:23 PM
Subject: [freebsd] «алатуванн¤ системи: патч≥ чи cvsup?
Files:
--====----====----====----====----====----====----====----====----====----===--
Thu, Nov 20, 2003 at 09:23:30, chmelvv wrote about "[freebsd] «алатуванн¤ системи: патч≥ чи cvsup?":

>  оли знаход¤ть д≥рку в систем≥, то в Security Advisories
> (http://www7.ua.freebsd.org/security/) часто пропонують дек≥лька
> вар≥ант≥в вир≥шенн¤ проблеми:
> 1) патч (зм≥ни в висх≥дних кодах) + перекомп≥л¤ц≥¤ т≥Їњ частини коду,
> де в≥дбулис¤ зм≥ни;
> 2) оновленн¤ до певноњ верс≥њ системи через cvsup(1), де ц¤ помилка
> виправлена + знов таки перекомп≥л¤ц≥¤.
> ћожливо ≥снують ще ¤к≥сь вар≥анти?
”гу, можно готовые бинарники накатывать, если их уже кто-то сделал.

> - ¬иникаЇ питанн¤, а ¤ка р≥зниц¤?
–азница в действи¤х, соответствующих описани¤м.
  тому же в первом варианте больше шансов чего-то недофиксить - например,
при исправлении в libc может потребоватьс¤ пересобрать всЄ, что собрано
статиком.

> - ўо краще п≥дходить дл¤ оновленн¤ системи на сервер≥, де "крут¤тьс¤"
> в≥дпов≥дальн≥ прикладенн¤ ≥ ¤кий не варто зайвий раз перезавантажувати?
ѕочти одинаково.

> - як можна найкраще автоматизувати цей процес?
—обрать команды в скрипт, скрипт выложить на ftp, команду забрать
скрипт с ftp и запустить его - засунуть в буфер мыши или X'ов,
далее - логин и paste из буфера.

> - якщо ви в св≥й час обрали той чи ≥нший вар≥ант, то чому?
¬торой - когда есть врем¤ на полную пересборку и еЄ не мешает сделать
(например, прошЄл мес¤ц от предыдущей). ѕервый - если надо срочно.


-netch-
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

@ ѕерел≥к посилань

Viktor V. Chmel, 11/11/2003 08:48:00 PM.

ќстанн≥ публ≥кац≥њ

Powered by Blogger

 

[√оловна / Ќотатки консультанта] Last update:

Copyright © „мель ¬≥ктор, , 2001-2004

Hosted by uCoz