|
ot zlatozar(24-02-2006)
reiting (57)
[ dobre ]
[ zle ]
Variant za otpechatvane
Za men razlikata v poddruzhkata na UNIX sistemite nai-obshto mozhe da se
svede do instalirane i pravilen update. Razbira se ima mnogo drugi neshta,
no kato za nachalo triabva da se nauchim da pravim tova. Ot tam natatuk
svikvame s ideologiiata i nauchavame "trikovete". Dali ni haresva?
Mnogoznaiaitelno se kazva - vupros na vkus. Kogato zapochnah da se
zanimavam s FreeBSD neshtata pri update mi izglezhdaha slozhni. Te shte
ostanat takiva ako chovek ne proiavi lyubopitstvo i zhelanie za razvitie.
Nauchete kakvo e CVS, make, merge i razbira se ezika S! Eksperimetiraite!
Pitaite! Na men mi triabvashe dosta vreme da razbera i da avtomatiziram
update-a. V tazi statiia shte se opitam da opisha neshtata, makar i s
pravopisni greshki. Iskam mi se da buda polezen i za tova ne se kolebaite
da me pitate i popraviate. Nadiavam se da uchim zaedno.
Purvata trudnost idva s razdelianeto na tvurdiia
disk(HDD). Dosta po-razlichno pod FreeBSD i zatova reshih
da otdelia spetsialno miasto i da go razgledam podrobno. Za tselta shte go sravnia
s DOS/Linux nachina. Za da vi e lesno triabva da zapomnte:
"UNUX partition" e neshto razlichno ot "DOS/LINUX partition" !
Sega veche mozhem da zapochnem. Linux sledva putia
ostaven ot MS-DOS, pri razdelianeto na diska. Tozi put obache e ogranichen
ot
PS BIOS
. Eto kakvo imam vpredvid. Vsiako
HDD
mozhe da ima nai-mnogo 4(chetiri)
Primary partitions
. Ako iskate da imate poveche ot 4
partitions
triabva da izpolzvate
hack
-a vuveden v
MS-DOS 3
(mislia, che purvo tam se poiaviava purvo). V kakvo se sustoi toi?
Hack
-a pozvoliava da se konvertira edin ot dialovete ot
Primary
v t.n.
Extended
. Samiiat
Extended
ot svoia strana se razdelia na
Logical
.
BIOS
-a "vizhda" samo chetiri diala, no na praktika mozhete da imate poveche.
Uhaaa, slozhno a? SHTe se opitam da ilyustriram: Nai-starata ideia
Primary 1
Primary 2
Primary 3
Primary 4
Evolyutsiiata na MS DOS ideiata
Primary 1
Primary 2
Primary 3
Extended
Logical 1
Logical 2
Logical 3
etc...
S tazi shema na razdeliane mozhe da slagate i napasvate razlichni
operatsionni sistemi, no zatova sa nuzhni dosta dialove, zashtoto triabva da
se pridurzhame kum shemata. Edin primer. Da predpolozhim, che iskame da
instalirame Windows 98, Windows 2000 i Linux. Eto i rezultata:
Primary 1: Linux /boot
Primary 2: Windows 98
Primary 3: Windows 2000
Extended :
Logical 1: Linux /
Logical 2: Linux /home
Logical 3: Linux /usr
Logical 4: Linux swap
Logical 5: Shared Data
Zabeliazvate li prehvurlianeto ot
Primary
kum
Logical
. Istinata e niakude drugade?
Unix
sistemi, kato
*BSD
i
Solaris
izpolzvat druga shema na razdeliane, koiato e dalech po-guvkava i iasna. V
PC
arhitekturata
BIOS
-a vse oshte razpoznava samo chetiri diala(ima i sistemi, v koito tozi
problem ne sushtestvuva). Hm, a kak togava shte se zaobikoli problema? Unix
tretira vseki
Primary partition
(Unix vuvezhda termina -
slice
) kato
Extended partition
! Tezi
slice
-ve se razdeliat dopulnitelno za nuzhnite ni dialove, za da razpolozhim
direktoriite. Oburnete vnimanie, che termina
partition
v UNIX ima drug smisul - toi e dial ot
slice
! Taka che, ako triabva da se vurnem kum gorniia primer (Windows 98,
Windows 2000 i Unix) shte poluchim slednata shema:
Primary 1: Unix slice
Primary 2: Windows 98
Primary 3: Windows 2000
Extended :
Logical 1: Shared Data
V samiia UNIX
slice
se razpolagame udobno:
Primary 1: Unix slice
/boot
/
/home
/usr
/var
/tmp
swap
Primary 2: Windows 98
Primary 3: Windows 2000
Extended :
Logical 1: Shared Data
Ako izpolzvate Linux modela, pri puskane na DOS
fdisk
shte vidite 3
Primary
i 5
Logical
v
Extended
diala. Sushtoto shte e i pri puskane na Linux
fdisk
. Ako puk minete po putia na UNIX i pusnete DOS
fdisk
shte vidite 3
Primary
i 1
Logical
v
Extended
diala. Pri puskane na UNIX
fdisk
vizhdate sushtoto, no dopulnitelno oshte se pokazvat i UNIX
partitions
v UNIX
slice
-a. Ne moga da kazha, koia ideia e po-dobra. Sravniavam dvata metoda, za da
obiasnia po-dobre ideiata za UNIX
slice
. Za men lichno pri UNIX neshtata stoiat po-dobre, edna operatsionna sistema
na edno miasto, a spodelenite neshta na drugo. Pri
DOS/LINUX
neshtata se smesvat, niama iasna granitsa i lesno mozhe da se oburka chovek. Za
pulnota shte kazha i niakolko dumi za imenovaneto. Vseki
partition
v FreeBSD se identifitsira s bukvi ot
a
do
h
. Vseki
partition
mozhe da sudurzha samo edna failova sistema. Eto i tablitsa na imenata na
ustroistvata:
ad ATAPI (IDE) disk
da SCSI direct access disk
acd ATAPI (IDE) CDROM
cd SCSI CDROM
fd Floppy disk
Shemata na sustaviane na imenata e slednata:
(ime na ustroistvo)(nomer na slice)(partition)
Vednaga davam primer:
ad0s1a The first partition (a) on the first slice (s1) on the first IDE disk (ad0).
da1s2e The fifth partition (e) on the second slice (s2) on the second SCSI disk (da1).
Sega zapis ot vida:
Filesystem Size Used Avail Capacity Mounted on
/dev/ad6s1a 496M 63M 394M 14% /
/dev/ad6s1e 17G 26K 16G 0% /home
/dev/ad6s1d 16G 2.0G 13G 13% /usr
/dev/ad6s1f 1.8G 27M 1.6G 2% /var
vi govori mnogo poveche. Dano sum go obiasnil dobre, zashtoto pochvam s
instalatsiiata i niama vrushtane nazad.
Vodia se ot printsipa: "Ako se chupi neshto, to da e
kolkoto se mozhe po-rano". Taka se predpazvam ot bezkraino tursene v
FreeBSD Google
za reshavaneto na niakoi problem. Pravia bazovata sistema i ne burzam s
X - desktop
. Stupkite, koito shte predlozha tuk sa suvsem nachalni, no te sa dostatuchni
za lesna po-natatuchna nadstroika i podruzhka. Niakoi neshta sum spestil, a v
niakoi sum izlozhil v dulbochina. Instalatsiiata obache mozhe da poeme v
tolkova mnogo posoki, che e nevuzmozhno da se opishe. Nalaga se da mi se
doverite.
Kogato se poiavi menyuto izbiram
Custom
. Ot tam razdeliam diska (40G):
Filesystem Size Mounted on
/dev/ad6s1a 512M /
/dev/ad6s1b 1G swap
/dev/ad6s1e 22G /home
/dev/ad6s1d 10G /usr
/dev/ad6s1f 2G /var
/dev/ad6s1g 838M /tmp (kakvoto e ostanalo, no po-goliamo ot 512MB)
Otedlil sum
1G
(2hRAM priblizitelno) za
SWAP po vuzmozhnost v nachaloto na diska. SHTe imate i nuzhdata ot
linprocfs
shte ia razberete, kogato zapochnete da instalirate java virtualnata mashina.
Ne go zabraviaite! V edin momen trabva da dobavite v fstab:
linprocfs /compat/linux/proc linprocfs rw 0 0 Kato vtora
stupka instaliram suvsem malko neshta, koito shte mi sa nuzhni za nachalo. Ot
menyuto izbiram
Distributions
i selektiram:
src
(za da moga da kompiliram iadroto),
binaries
(te sa
required
). Taka, do tuk dobre veche imame bazovata sistema. Ostanaha niakoi drebni
dobavki -
Root Password
,
Time Zone
,
Mouse enable
,
Network(enable interface)
. Tuk e i momenta da se dobavi
user
. Kogato se pravi nov potrebitel, dobre e da se znae, che samo
potrebiteli ot grupata
wheel
mogat da izpolzvat komandata
su
. Pretsenete sami. E, mozhe da ne viarvate, no imame raboteshta bazova FreeBSD
sistema! Kogato menyutata sa pred vas shte vi bude po-lesno. Tuk iskam da
napravia edno goliamo otklonenie. Neshto kato raziasniavne na ideologiiata,
malko istoriia i leko namigvane kum Linux fenovte. SHTe se opitam i da vi
vuveda v FreeBSD terminologiiata.
Mnogo hora izpolzvat Linux (niakoia ot mnogoto distributsii). Obshto
vzeto vsichki sme suglasni, che e dobre da se izpolzva tip Unix
operatsionna sistema, no vinagi sme na razlichno mnenie za tova koia ot
mnogoto raznovidnosti e "viarnata". Za da razberem kak i zashto edna Unix
sistema e po-dobra ot druga, triabva da navlezem dulboko pod
povurhnostta. Neshto, koeto ostava chesto nezabeliazano e nachina na
razrabotka, ierarhiiata v ekipite i nachina na puskane na versiia. Poniakoga
se otchitat samo poliraniia grafichen interfeis i nachina na instalatsiia ili
na gradski sluhove ot roda "edin pich mi kaza".
CHesto sreshtan tsitat ot BSD folklora e:
"BSD e togava, kogato grupa Unix hakeri se opitvat da portnat
Unix na PC i e Linux, kogato grupa PC hakeri opitvat da napishat UNIX za
PC"
I tova e taka. Istoriiata na dvete operatsionni sistemi go dokazva. Dokato
BSD se sistematizira i se proekira, Linux prosto nabubva. SHTe pripomnia,
che BSD e priak naslednik na UNIX razraboten ot prez 60-te godini ot Ken
Tomson i Denis Ritchi. Dokato Linux se zapochva ot samoto "nishto" ot Linus
kato student. I e vazhno da se otbelezhi, che tova e samo iadro na OS. Linux
e shtastliva prikazka. I taka neka da zapochnem s neshtata, za koito si
zasluzhava da oburnete po-spetsialno otnoshenie na BSD operatsionata
sistema.
Purvo: The Base System
Termina "bazova sistema" oburkva dosta Linux potrebitelite, zashtoto tazi
ideia ne sushtestvuva v tehniia sviat. Linux vinagi e bil konglomerat. ls,
ps, tar i t.n sa "dopunitelni ekstri" vzeti ot niakude. Za da bude
kompyutura izpolzvaem mu triabva neshto poveche ot iadro. Linux niama iasna
granitsa mezhdu "bazova sistema" i "ekstri". Kak stoiat neshtata pri BSD? BSD
vinagi e imal tsentraliziran nachin na razrabotka. "Bazova sistema" se
razrabotva kato samostoiatelen modul i v nego ima vsichko, koeto pravi
kompyutura rabotesht i e gotov za dopulnitelna nadstroika. Vidahte kolko
burzo instalirahme neshtata. BSD niama GNU ls ili GNU libc, BSD izpolzva
BSD ls i BSD libc. X-a ne e chast ot "bazovata sistema" toi e
dopulnitelen paket, koito mozhe da se instalira. Osnovnata razlika e,
kude se razrabotvat. Dori i da se izpolzva niakoi GNU paket, toi se
"pipva", taka che da mozhe da "pasne" v BSD shemata. Primerno:
gcc e FreeBSD kompilator baziran na GNU gcc
Vsichko se pravi taka, che sistemata da raboti kato tsialo, a ne na parche. V
Linux, "Linux distribuorite" reshavat, koe shte bude neobhodimiia minimum.
Distributsii kato Debian i Gentoo se spraviat dosta dobre. I vupreki
vsichko Vie mozhete da podmenite primerno libc s paket vzet ot niakoi
treti, dokato tova v FreeBSD ne mozhe da stane.
Vtoro: The Ports System
"Ekstrite" sa po zhelanie na klienta. V BSD te se narichat "portove". Tui
kato tova sa programi ot "treti litsa", sa neohodimi dopulnitelni usiliia
te da stanat chast ot distributsiiata, toest na zhargon te triabva da budat
"portnati". Do sega ima 13654 portnati prilozheniia i te neprekusnato
rastat. Edna ot razlikite e, che Linux potrebitelite instalirat binary
paketi, dokato FreeBSD potrebitelite kompilirat sorsove(mogat i binary).
Pri BSD e taka zaradi instrumenite, koito se predostaviat za update i
install. Tova shte go razgledame po-kusno. V Gentoo sushtestvuva podobna
ideia Portage sistemata.
Treto: Release Engineering
FreeBSD izpolzva CVS, za da sledi versiite na vseki fail. Kakvo e CVS,
predpolagam che znaete. Vsichki BSD-a davat nachin da vidite koda, da
chetete komentarite i da namirate razlikata. Mnogo strano e, che Linux ne
polzvashe do skoro revision system. Sega kakto znaete Linus izpolzva
BitKeeper, koiato zabelezhete e komersialna. Izpolzvaneto na CVS-a e
vazhno, zashtoto neshtata se razvivat ustoichivo i konsistentno vsiaka edna
minuta. Vie po vsiako vreme mozhete da izteglite sorsovete i da
kompilirate. Linux po-skoro se asemblira! Dava se opredeleno iadro i
vsichko zapochva da se "zahvashta" za nego. V FreeBSD ima dve osnovni
napravleniia sled puskane na versiiata - "CURRENT" i "STABLE", koiato e i
produktsionnata. Kato pravilo, v "STABLE" se slagat security paches, a v
"STABLE" osven tova kato dopulnitelno mogat da se slagat i novi neshta.
Debian imat pochti sushtiia plan za rabota - "stable", "unstable". Triabva da
podchertaia, che tova sa "branches" v CVS durvoto, tova ne se release. Za
da poemem edin ot dvata putia izpolzvame suotvtnite CVS tags RELENG_X_Y i
HEAD.
CHetvurto: Upgrading
Tui kato FreeBSD se razrabotva kato edno tsialo, nie mozhem lesno da vzemem
tsialata "base system" i vsichki sorsove na portnatite prilozheniia.
Zabelezhete, che vzemame promenite do poslednata sekunda! Posle startirate
"buildworld", za da kompilirate t.n. userland i posle "buildkernel" i
imate kompilirana raboteshta operatsionna sistema. Pak propuskam
podrobnostite, koito shte razgledame po-natatuk.
Peto: Ports
Kogato instalirate dopulnitelnite prilozheniia vie mozhete da izbirate,
dali da instalirate kato "ports"(source) ili kato "packages"
(precompiled binaries). I v dvata sluchaia vsichki "dependancy" shte budat
resheni. Posle shte vi predlozha nachin za podurzhane na sistemata vi
up-to-date posredstvom CVSup. Ako znaete malko C i neshtichko za Makefile
shte vi bude ot polza. Vsiako prilozhenie se namira v opredelena direktoriia.
Bih kazal, che BSD e po-porodista i vuzpitavana v po-strogi pravila. Kato
tsialo e testvana ot niakolko pokoleniia programisti Tia vinagi raboti i ot
tam logoto: "The Power to Serve". Dava izbor HEAD, CURRENT i STABLE. Ako
se poiavi problem toi se popravia mnogo burzo i vie mozhete da gi vzemete
na minutata(CVS). Tui kato imate i sorsovete mozhete da fiksnete problema
sami. FreeBSD e napravena da raboti kato edno tsialo. I ne na posledno
miasto FreeBSD mozhe da startira Linux prilozheniia.
Stiga otkloneniia, vlizame v putia.
Mozhe bi e dobre da raziasnia kakva mi e ideiata. Iskam da
napravia kompyutur, koito da go polzvam za
workstation
. Moeto PC ne e purva mladost, taka che se staria da optimiziram
maksimalno FreeBSD-to. Edna ot purvite stupki v tazi posoka e
instalatsiiata na prilozheniiata. Iskam da instaliram ot sorsovete t.n.
ports
. Kakva e podgotovkata? Instaliram nadlezhno kakto sledva:
# pkg_add -r cvsup-without-gui
# pkg_add -r fastest_cvsup
# pkg_add -r portupgrade
# pkg_add -r docproj-nojadetex
Prigotviam neshtata za izpolzvaneto na
cvsup
. Suzdavam
/root/cvs-supfile
sus slednoto sudurzhanie:
*default host=cvsup.freebsd.org
*default base=/var/db
*default prefix=/usr
*default tag=RELENG_6
*default release=cvs delete use-rel-suffix compress
src-all
doc-all tag=.
Ne se izkushavaite da vzemate poslednoto iadro dori i tova da ne e
survur(s optsiiata
*default tag=.
). V HEAD-a na CVS popadat dosta eksperimentalni(niakoi neuspeshni) neshta
ima i mnogo debug suobshteniia, zatova kato tsialo sistemata vi shte raboti
po-bavno. Ako e produktsionna sistemata, slozhete
*default tag=RELENG_6
(STABLE release) naprimer. Za da ne teglia vsichko moga da ukazha koi
dokumenti NEiskam. Za tselta suzdavam direktoriite
/var/db/sup
i
/var/db/sup/doc-all
. V
/var/db/sup/doc-all
postaviam faila
refuse
. Eto kakvo ima v nego:
doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*
Mmmda gotovi sme za purviia start na
cvsup
.
# cvsup -L2 -h cvsup.freebsd.org /root/cvs-supfile
Tia shte obnovi vsichki sorsove v bazovata sistema i dokumentatsiiata. SHTe
polozhim malko usiliia i za portovte. Izpolzva se
portsnap
.
# portsnap fetch
# portsnap extract
Purvata komanda pravi download na "port durvoto", a vtorata go slaga v
/usr/ports
. Upravliavashtiia fail e
/etc/portsnap.conf
. Priemete neshtata tam "po default" - mahnete komentarite. Tam mozhe i da
okazhete NEzhelanite portove, za da spestite malko vreme.
REFUSE arabic chinese french german hebrew hungarian japanese korean
REFUSE polish portuguese russian ukrainian vietnamese
REFUSE astro biology
Kroia planove i za avtomatizatsiia. Edin skript, koito da puskam, dokato si
piia sutrishnoto kafe i toi da mi podskazva kakvo triabva da update-na.
Ideiata si struva, shte znam dali sum
up-to-date
samo s edna komanda. Preminavam kum deistvie. Za da imam dokumentatsiiata
samo
na angliiski sa nuzhni malko obhodni stupki. Promeniam edna chast ot
/usr/doc/Makefile
faila:
.if defined(DOC_LANG) && !empty(DOC_LANG)
SUBDIR = ${DOC_LANG}
.else
SUBDIR = en_US.ISO8859-1
.endif
Za suzhalenie
cvsup
shte "zaburshe" moite promeni, i zatova pravia hitrinka:
# cp /usr/doc/Makefile /usr/doc/Makefile.orig
Eto i moia rabotesht
cvsupScript.sh
:
#!/bin/sh
#Use fastest_cvsup to find fastest geographically
#close mirror; I'll check Russion, Germany
if SERVER=`fastest_cvsup -q -c ru,de`
then
echo "Running cvsup...(src, doc)"
cvsup -g -L 2 -h $SERVER /root/cvs-supfile
else
echo "Oooops! There's a problem" 1>&2
exit 1
fi
# Before this you have to run:
# portsnap fetch && portsnap extract
echo "Updating ports tree...(/usr/ports)"
cd /usr/ports
portsnap fetch
portsnap update
make fetchindex
portsdb -u
# Also see /var/db/refuse
echo "Buiding docs..."
cd /usr/doc
cp Makefile.orig Makefile
make install > /dev/null
echo "The following ports need upgrading: "
portversion -l "<"
echo "DONE. Finished at `/bin/date`."
echo "=========================================
This script will NOT upgrade your ports!
Manually run:
(Do NOT forget to read /usr/ports/UPDATING before!)
portupgrade -varR
Only sources download:
portupgrade -aFrR
Tip: To delete unused downloaded sources run:
portsclean -D
========================================="
exit
Ura! Veche ne e problem da poddurzhame sistemata
up-to-date
. Sled kato se startira skripta, toi podskazva po-natatuk kak da se
protsedira.
Zabelezhka 1:
Ne sluchaino v kraia na skripta otpechatvam suobshtenie da se prochete
/usr/ports/UPDATING. Tova chesto se zabravia i se dopuskat nelepi greshki.
Eto primer:
===> kdelibs-3.5.0 conflicts with installed package(s):
kdebase-3.4.3_1
They install files into the same place.
Please remove them first with pkg_delete(1).
*** Error code 1
Stop in /usr/ports/x11/kdelibs3.
*** Error code 1
V novata versiia na kdelibs ima smeneni putishta na niakoi biblioteki i
portupgrade niama da se spravi. Suobshtenieto
Please remove them first with pkg_delete(1)
e viarno, no ne i dostatuchno. TSeliia algoritum v sluchaia e opisan v
UPDATING faila. Namerete go:
cat /usr/ports/UPDATING |grep -B 2 -e "AFFECTS\:.*kdebase.*" |less
Orientiraite se po datata(nai-blizkata) i nauchete C, pomaga pri
razgadavaneto na suobshteniiata za greshka.
Zabelezhka 2:
portupgrade -varR
ne vinagi minava gladko! Poniakoga ni napomnia, che triabva da se pusne
pkgdb -F
. Vuprosite, koito zadava
pkgdb -F
sa trudni i zatova shte gi ilyustriram s primer:
# pkgdb -F
---> Checking the package registry database
Stale dependency: digikam-0.5.1 -> openldap-client-2.1.23
(net/openldap21-client):
open-motif-2.2.2_2 (score:23%) ? ([y]es/[n]o/[a]ll) [no]
New dependency? (? to help):
Skip this? ([y]es/[n]o/[a]ll) [yes]
Kakvo znachi tova? Ami niama instaliran
openldap-client-2.1.23
! Opitva se da nameri "neshto podobno" s ne mnogo dobur uspeh kakto se
vizhda -
score: 23%
. Ako obache rezultata e poveche ot 70% izberete
yes
! Inache lekarstvoto e:
# cd /usr/ports/net/openldap21-client
# make install && make clean
Suveta mi e: ne burzaite s otgovorite! Pravete provreki. Eto i drug
primer:
# pkgdb -F
---> Checking the package registry database
Stale dependency: Mesa-3.4.2_2 -> fontconfig-2.2.0 (x11-fonts/fontconfig):
New dependency? (? to help): ?
[Enter] to skip, [Ctrl]+[D] to delete, [.][Enter] to abort, [Tab] to complete
Hmmm. Q burzo edna spravka:
# pkg_info -I fontconfig\*
E? Kakuv e rezultata? Ako ima instaliran
fontconfig
, koia versiia e? Ako ste dovolen ot otgovorite na zadadenite vuprosi
posochete
fontconfig-2.2.0
. Ako go niama - instaliraite. Think!
Do tuk s "loshite" strani na portupgrade.
Edna nova vuzmozhnost, koiato nauchih naskoro e da nakaram portupgrade
da izpolzva pakages vmesto ports pri update.
Taka izbiagvam kompilatsiiata na golemi paketi, primerno na OpenOffice, koito e instaliran kato:
pkg_add -r openoffice.org
(FreeBSD ne se "burka" pri instaliraneto i na packages, i na ports!
)
Parametrite sa slednite:
portupgrade -varRPP
Idva red na optimizatsiiata na
iadroto. Kak se pravi novo iadro? Eto podgotovkata:
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/NEX_KERNEL
# ln -s /root/kernels/NEX_KERNEL
Predi da se zahvana s iadroto optimiziram malko kompilatora. Dobaviam tipa
na protsesora(
Duron 1.3G
) v
/etc/make.conf
CPUTYPE?=k7
i zapochvam s redaktsiiata na parametrite na iadroto (moeto sum go krustil
NEX_KERNEL). Az lichno maham vsichko, koeto ne mi e nuzhno na purvo chetene.
Posle dobaviam parametrite za optimizatsiia, v sluchaia:
machine i386
cpu I686_CPU
ident NEX_KERNEL
makeoptions COPTFLAGS="-O2 -pipe -funroll-loops -ffast-math"
options SCHED_ULE # NEW scheduler instead of SCHED_4BSD
Nai-nakraia slagam dopulnitelnite neshta:
# Better console
options VESA
options SC_PIXEL_MODE
# Security: PF
device pf #PF OpenBSD packet-filter firewall
device pflog #logging support interface for PF
device pfsync #synchronization interface for PF
# Traffic bandwidth( to test it use pchar, iperf )
options ALTQ
options ALTQ_CBQ # Class Bases Queueing
options ALTQ_RED # Random Early Detection
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler
options ALTQ_CDNR # Traffic conditioner
options ALTQ_PRIQ # Priority Queueing
Haide da napravim novoto iadro:
cd /usr/src
make buildkernel KERNCONF=NEX_KERNEL
make installkernel KERNCONF=NEX_KERNEL
Za da izpolzvam
pf
dobaviam v
/etc/rc.conf
## My firewall will needs this
# To read logs use: tcpdump -n -e -ttt -r /var/log/pflog > /var/log/pflog.txt
pf_enable="YES" # Enable PF (load module if required)
pf_rules="/etc/pf.conf" # rules definition file for pf
pf_flags="" # additional flags for pfctl startup
pflog_enable="YES" # start pflogd(8)
pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
pflog_flags="" # additional flags for pflogd startup
## ...and to be a getaway
gateway_enable="YES" # Enable as LAN gateway
## Better console resolution
allscreens_flags="-g 100x37 VESA_800x600"
i v
/etc/pf.conf
(Skoro shte publikuvam i spetsialna tema za
PF
i
traffic bandwidth
)
ext_if="xl0"
altq on $ext_if priq bandwidth 150Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)
pass out on $ext_if proto tcp from $ext_if to any flags S/SA keep state queue (q_def, q_pri)
pass in on $ext_if proto tcp from any to $ext_if flags S/SA keep state queue (q_def, q_pri)
Krai! Gotovo! Sled
reboot
triabva da imame perfektna FreeBSD osnova. Nadgrazhdaneto na sistemata
veche e v nashi rutse. Eto kak protsediram az, kogato dobaviam prilozhenie.
Predi vsichko triabva da go nameria v
CVS
durvoto.
# cd /usr/ports
# make search key= |less
ili
# make search name=
Sled kato go nameria, instaliram:
# cd /
# make install && make clean
I taka, malko po malko izgrazhdam moia
workstation
instaliranite prilozheniia sa dostatuchno optimizirani, a imam i nachin za
lesen update. Iskam da kazha, pochti lesen. Poniakoga niakoi prilozheniia gi
instalirame s opredeleni optsii. Naprimer Apache, da mozhe da raboti s
subversion.
cd /usr/ports/www/apache20
make install WITH_BERKELEYDB=db42 && make clean
cd /usr/ports/devel/subversion
make install -DWITH_MOD_DAV_SVN && make clean
Ako mashinalno napishem (ili se podvedete ot tova, koeto sum pisal po-gore
hehehe):
portupgrade -varR
Vsichki prilozheniia shte se upgraidnat s parametrite, koito sa po default.
Pomisleno e za vsichko.
emacs /usr/local/etc/pkgtools.conf
Orientiram se otnovo po komentarite i primerite. V sluchaia:
## Apache, Subversion
MAKE_ARGS = {
'www/apache20' => 'WITH_BERKELEYDB=db42',
'devel/subversion' => 'WITH_MOD_DAV_SVN=1'
}
Prilozheniiata se izbroiavat sus zapetaia, a parametrite im sa razdeleni s
interval. Relax - FreeBSD raboti veche za men.
Zabelezhka 3:
Za da kompiliram tsialata sistema izpolzvam slednata protsedura:
cd /usr/src
make buildworld (shte triabva dosta da izchakate!)
make buildkernel KERNCONF=NEX_KERNEL
make installkernel KERNCONF=NEX_KERNEL
shutdown now
-> shte napravi sistemata v "single user mode". Oshte malko usiliia:
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
-> Znaete kakvo e "merge" v CVS, nali? SHTe vi triabva pri sledvashtata komanda
mergemaster -p
make installworld
mergemaster
shutdown -r now
Sega kato ia preprochitam "materiiata e dosta slozhna". Nadiavam se
pone malko da sum pomognal i da sum suzdal interes. Trudno mi e da
oprostia neshtata shte se iska dopulnitelno chetene, da znaete. Za men i FreeBSD mozhe da
namerite poveche tuk http://zlatozar.blogspot.com
<< Razmisli po HFSC | Vuvedenie v dinamichnata optimizatsiia >>
|
|