porty a balicky

Petr Rehor Petr.Rehor at i.cz
Tue Dec 16 19:10:19 CET 2003


Je to trochu delsi - pro FreeBSD zacatecniky co se nam tu
rozmnozili.

> mam dalsi stupidni dotaz. Mohl by mi nekdo osvetlit, jaky je 
> rozdil mezi tim, kdyz nainstaluji napr. apache jako balicek
> (pkg_add) nebo jako port (predpokladam ze se jedna o analogii
> (az na dalsi konfiguraky jako v linuxu)..../configure, make
> make  install)). V linuxu jak predpokladam se jedna o rychlejsi
> chod a bezpecnost.

Porty jsou predpis jak vyrobit package. Pokud si stahujete
package z FTP, tak je pro vas nekdo s pomoci portu vyrobil.

Kazdy port ma svuj Makefile ktery rozumi nekolika prikazum:
- make fetch - stahne zdrojove soubory
- make extract - rozbali zdrojove soubory do pracovniho adresare
- make patch - aplikuje patche ktere upravi zdrojaky tak, aby
  se na FreeBSD spravne prelozily a nainstalovaly
- make configure - spusti ./configure pokud ho aplikace ma
- make build - prelozi aplikaci (a prelozi a nainstaluje i 
  vsechny aplikace, ktere jsou potreba k prekladu)
- make install - nainstaluje aplikaci (a prelozi a nainstaluje
  i vsechny aplikace ktere jsou potreba pro spusteni)
- make package - vyrobi z nainstalovane aplikace package (ten
  ktery si stahujete z FTP). Package se da do /usr/ports/packages
  pokud existuje, nebo do adresare portu.
- make clean - smaze pracovni soubory

A jeste bezva finta, ktera dokaze zachranit zivot:

	cd /usr/ports
	make search name=JMENO_PORTU  

Dalsi uzitecne finty najdete v /usr/ports/Mk/bsd.port.mk
 
> V knize opet pisi neco podobneho (u balicku nevim, kdo mi tam 
> co prihodi a o trojsky kun asi nikdo nestoji),ale jestli jste

Port obsahuje MD5 kontrolni sumy pro vsechny zdrojaky, ktere
aplikace potrebuje (udrzuje je autor portu). Pri prekladu z
portu se pred extrahovanim souboru se MD5 kontroluji, takze mate
pomerne solidni jistotu, ze pracujete se stejnymy zdrojaky jako
autor portu ;-)

Pro package zadny takovyto kontrolni mechanizmus neexistuje.

> i vy poznali rozdil. U portu (zdrojaku) predpokladam horsi
> aktualizaci, ale u mysql snad ani nejde pridat podporu cestiny
> z balicku. Proste co by mi to mohlo prinest lepsiho.

Aktualizace se delaji stejne jednoduse, jenom si nestahujete
binarni balicky, ale zdrojove soubory. Navic musite investovat
strojovy cas do prekladu. Na druhou stranu si muzete prelozit
aplikace tak jak chcete a s optimalizaci pro vas procesor
(standardne jsou package neoptimalizovane pro CPU).

Pro aktualizaci aplikaci doporucuju pouzivat portupgrade,
ktery aktualizuje vsechny porty, ktere jsou potreba. Musite
si ale napred zprovoznit aktualizaci portu pomoci
cvsup-without-gui (a nebo pokud pouzivate X11 tak s gui :-)

Do /etc/make.conf si pridate:

	SUP_UPDATE=             yes
	SUP=                    /usr/local/bin/cvsup
	SUPHOST=                cvsup.cz.freebsd.org
	SUPFLAGS=               -g -L 2
	SUPFILE=
/usr/share/examples/cvsup/standard-supfile
	DOCSSUPFILE=            /usr/share/examples/cvsup/docs-supfile
	PORTSSUPFILE=           /usr/share/examples/cvsup/ports-supfile

a v /usr/ports zavolate:

	make update

Dobry zacatek prace s portupgrade je popsan v
http://www.freebsddiary.org/portupgrade.php

> V BSD je lepsi ze porty se stahuji primo z ftp (ale neni to
> trochu nebezpecne?). Ke vsemu jsem nedokazal toto FTP primo 
> rozchodit, pres ktere to stahuje. Neda se to obejit pres
> pasivni FTP (http proxy). Mam zatim FreeBSD 5.1 R za proxy
> (proxy+) a tak to s internetem stejne nedokaze komunikovat.

Nastavte si v /etc/cshrc.cshrc promennou:

	setenv FTP_PASSIVE=YES

a potom bude FTP klient pouzivat pasivni mod. Vice viz:

	man 3 fetch

> Nekde jsem cetl, ze se da upravit soubor Makeinstall u portu, 
> ale to se mi zatim nepodarilo). Takze pripojeni resim pouze 

Neupravuje se primo Makefile, ale dela se to na dvou mistech:
- /etc/make.conf je globalni konfiguracni soubor pro make.
  Co si sem napisete, to se pouzije pri prekladu portu i
  operacniho systemu v /usr/src. Sem se obvykle pisou veci,
  ktere najdete v /usr/share/examples/etc/make.conf na
  FreeBSD 5 nebo /etc/defaults/make.conf na FreeBSD 4
- Do adresare portu si pridate soubor Makefile.local
  a do nej si napiste upravy ktere chcete s portem udelat.
  make nejprve natahne Makefile a potom Makefile.local,
  takze je mozne v nem predefinovat promenne.

Makefile.local obcas nefunguje - autor portu ho nezprovoznil,
ale uprava nebyva slozita - viz napriklad:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/www/links/Makefile.diff?r1=1
.31&r2=1.32

Nezapomente opravu poslat autorovi port - viz:
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/problem-reports/arti
cle.html

> pres links + configurace prohlizece (coz je pouze na prohlizeni
> stranek). Prohlizec dokaze pouze ftp pres proxy HTTP, FTP to
> nezvlada pritom FTP proxy bych mel mit povolene na portu 8021).
> Ale nejspis to bude rukama:-))

Konfigurace proxy - viz

	man 3 fetch

a nastavit v /etc/cshrc.cshrc (nebo v ~/.cshrc pokud to nema
platit pro vsechny uzivatele).

> Neda se to treba nastavit nekde v systemovych promennych, ze 
> by zacal vzdy komunikovat primo s netem bez nutnosti konfigurace
> prohlizecu a porty se automaticky konfigurovali? Pokud by to
> bylo slozitejsi nebo spis vetsi zasah do systemu, tak bych to
> nechal byt, protoze od konce ledna by mel byt server pripojen
> primo do NETu a nahratit tak slavny Mrkvosoftacky stroj.

Microsoft ma (spravneji mel - W2K3 funguji jinak) strategii FFF
(fsude fcecko funguje). Ve FreeBSD (a ve W2K3) je to NNN (nikde
nic nefunguje) a musite si od vseho precist navod a nakonfigurovat
tak, aby to delalo presne to, co od toho potrebujete (ono to s
Microsoftem jde taky, ale kdo by to delal, kdyz FFF :-)

Hezke a plodne svatky u studia taju FreeBSD preje

Petr Rehor




More information about the Users-l mailing list