pkg_add a pkg_deinstall

Miroslav Lachman 000.fbsd at quip.cz
Sat Mar 21 14:03:28 CET 2009


Dan Lukes wrote:
> Martin Baumann wrote:
> 
>> A nebolo by perspektivnejsie zacat uz rovno s "portmaster"-om ??:)
> 
> 
> Mozna, kdyby nekdo, kdo driv rutinne pouzival portupgrade a nyni (take 
> pokud mozno uz nejakou dobu) pouziva portmaster dokazal shrnout hlavni 
> rozdily mezi nimi (jiste budou mit obe metody jak nejake klady tak 
> nejake zapory), bylo by pro takove rozhodnuti vic prostoru.
> 
> Ale ja o zadnem takovem "prebehlikovi" nevim.

Tak ja se tedy dobrovolne priznavam k tomu prebehnuti. S portupgradem 
jsem fungoval nekolik let, ale po case se z neho vyklubal spis muj 
nepritel, nez pritel. V novejsich verzich v nem jeho autor celkem 
zasadne zmenil chovani programu v nekterych oblastech a zacalo mi to 
delat v systemu vic skody, nez uzitku (napriklad to, ze nejprve 
nainstaloval vsechny defaultni zavislosti nejakeho baliku, pak teprve 
vyhodil OPTIONS dialog toho, co jsem chtel nainstalovat a zacal vsechny 
zavislosti kompilovat podruhe a zanechal tak v systemu i zavislosti, 
ktere nebyly vubec potreba). To je moje zkusenost stara neco pres rok. V 
te dobe jsem si rekl "tak a dost". Chvili jsem nektere slozitejsi porty 
(jako treba amavisd-new / spamassassin) musel instalovat / aktualizovat 
"po staru" pomoci `cd /usr/ports/kategorie/port && make install clean`, 
az jsem narazil na portmaster a vyzkousel ho. U portmasteru jsem zustal 
a priblizne rok pouzivam uz jenom portmaster.

Rozdilu mezi portupgradem a portmasterem je spoustu a tak je ani nebudu 
vsechny vyjmenovavat. Zakladnim rozdilem je to, ze pormaster je jen 
cisty sh scrip bez dalsich zavislosti a bez vyuzivani nejakych pomocnych 
databazi atd. Portupgrade je napsany v Ruby a pouziva pro svoje interni 
ucely DB.
Citelnym rozdilem je take to, ze portmaster slouzi pouze na instalaci a 
aktualizaci z ports. Portupgrade oproti nemu umi instalovat i binarni 
balicky a ma i nastroje na odinstalaci, jako je treba zmineny 
pkg_deinstall. Tyto oblasti portmaster vubec neresi a ani to Doug Barton 
nema v planu resit. Pro nekoho je to mozna vazna prekazka, ale ja 
binarni balicky nijak casto neinstaluju, pouzivam je jen jako "zalohy" v 
pripade nepovedeneho upgrade nejakeho portu a tam si pak vystacim s 
prikazy pkg_add a pkg_delete, vic nepotrebuji.
Stejne tak portmaster nema moznost definovat nejake akci pred / po 
instalaci portu (u portupgrade je to v pkgtools.conf, sekce BEFOREBUILD, 
BEFOREDEINSTALL, AFTERINSTALL).
Pro me to opet neni zadny tragicky problem a nejdulezitejsi pro me je 
fakt, ze portmaster se zavislostma pracuje presne tak, jak ocekavam.
Kdyz portmasterem davam neco nainstalovat, nejprve pro vsechny 
zavislosti spusti make config, pak zacne fetch na vsechny distfiles a 
teprve pak se zacina kompilovat.
Za ten rok pouzivani portmasteru jsem narazil i na nejake bugy a vzdy je 
Doug Barton velmi svizne opravil (nebo implementoval nove featury atd.), 
coz se v pripade hlaseni nejakych problemu s portupgradem neda srovnavat 
- jeho autor byl sveho casu hodne vytizeny a nektere nove vznikle bugy 
pak radeji prohlasil za "feature" v zajmu zjednoduseni kodu portupgrade. 
Proto jsem s portupgradem skoncil a dal si vystacim s portmasterem.
Pro nekoho muze byt prechod z portupgrade na portmaster jeste 
prekvapujici v tom, ze portmaster defaultne zacne vzdy aktualizovat 
zavislosti toho portu, ktery chceme zaktualizovat, zatim co portupgrade 
aktualizuje jenom zadany port a jeho zavislosti necha ve stare verzi.

Pokud by nekoho zajimaly jeste nejake veci ohledne prechodu z 
portupgrade na portmaster, rad se je pokusim zodpovedet.

Mirek



More information about the Users-l mailing list