ќновленн¤ FreeBSD. CVSup. make [build|install] world|kernel
@ «адача: ѕ≥дтримка системи в поточному стан≥ FreeBSD-STABLE.
оли виход¤ть чергов≥ пов≥домленн¤ про проблеми в безпец≥ (Security Advisories) њх можна вир≥шити дек≥лькома способами. ѕерший - встановленн¤ окремих латок (patches), що виправл¤ють помилки знайден≥ в вих≥дних кодах ≥ подальша перекомп≥л¤ц≥¤. ƒругий - синхрон≥зац≥¤ вс≥х вих≥дних код≥в системи до наступного стаб≥льно працюючого стану, ≥ знов таки перекомп≥л¤ц≥¤. ≤снуЇ певна р≥зниц¤ м≥ж цими п≥дходами (докладн≥ше див. листа в≥д ¬алер≥¤ ЌечаЇва "«алатуванн¤ системи: патч≥ чи cvsup?"), але ¤ надаю перевагу другому вар≥анту ¤к такому, що може бути найб≥льше автоматизований.
«роб≥ть резервн≥ коп≥њ вс≥х важливих даних, та каталог≥в з конф≥гурац≥йними файлами (/etc, /usr/local/etc).
—инхрон≥зуйте ваш≥ вих≥дн≥ коди з бажаною г≥лкою дерева розробки FreeBSD. я роблю це через cvsup(1), див. гарний переклад документац≥њ дл¤ CVSup в≥д —ерг≥¤ ќсок≥на, та коротенький опис, ¤к це зроблено у мене.
якщо ви закачували вих≥дн≥ коди в /usr/src, то прочитайте файли /usr/src/UPDATING та /usr/src/Makefile, вони м≥ст¤ть всю необх≥дну ≥нформац≥ю, ¤ку треба знати дл¤ побудови ¤дра та системи.
ƒал≥ коп≥юють /usr/src/etc/defaults/make.conf в /etc/make.conf та при бажанн≥ редагують цей файл:
ќсь де¤к≥ корисн≥ реч≥:
#cp /usr/src/etc/defaults/make.conf /etc/make.conf
#vi /etc/make.confCFLAGS= -O -pipe
CPUTYPES=p3
MASTER_SITE_BACKUP?=...ftp7.ua.freebsd.org/...
MASTER_SITE_OVERRIDE?=
¬и можете поекспериментувати ≥ з ≥ншими опц≥¤ми, але не зм≥нюйти н≥чого без ч≥ткого усв≥домленн¤ того що ви робите (див. файл defaults/make.conf та стор≥нку документац≥њ дл¤ make.conf(5)).ќчистити систему в≥д залишк≥в попередн≥х комп≥лювань та зб≥рок:
#cd /usr/obj
#chflags -R noschg *
#rm -rf *ѕеребудова системи та ¤дра (див. 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).-
≤нод≥ новим верс≥¤м програм потр≥бн≥ ≥ нов≥ в≥дпов≥дн≥ конф≥гурац≥йн≥ файли, або ¤к≥сь нов≥ опц≥њ в них. ќтже окр≥м власне оновленн¤ програм треба оновити ≥ файли. ѕор≥вн¤йте стар≥ конф≥ги (/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)
- ѕерев≥рка
- ўе раз все перев≥рте чи не забуте щось, ≥ ... насолоджуйтесь!
# 6. `mergemaster -p'
# 7. `make installworld' (All right? Does ps(1) and top(1) work?)
# 8. `mergemaster'
# 9. `reboot'
Ќу ≥ п≥сл¤ того ¤к... «апуст≥ть щось на зразок
#uname -aщоб перев≥рити чи все працюЇ, ≥ що ви маЇте в результат≥.
@ cvsup tuning
Download source code from cvsup-server:
# cvsup -g -L 2 /etc/cvsupfile
# 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-
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@ ѕерел≥к посилань
- ќриг≥нальна документац≥¤, а саме чудова статт¤ Using make world з FreeBSD Handbook.
- "mergemaster - a great tool when upgrading", 4 March 1999 з FreeBSD Diary.
- Mergemaster and Make World
- CVSup FAQ by John D. Polstra (рос≥йський переклад - —ерг≥й ќсок≥н).
Viktor V. Chmel, 11/11/2003 08:48:00 PM.