Update systemu

Cejka Rudolf cejkar at fit.vutbr.cz
Sun Jan 26 15:18:06 CET 2014


Ahoj, vidím, že nejsem sám, kdo tak trochu tápe, jak na nové systémy :o)

Miroslav Lachman wrote (2014/01/26):
> Kdyz bylo CVS zruseno, tak asi cvsup ani csup nemuze najit zadne zdroje, 
> ne? Oboje se pripojuje na cvs server. Takze mas spis na vyber svnup, 
> nebo primo subversion.

Dodám, že svnup se chová v podstatě stejně jako cvsup - malou
a jednoduchou databázi si udržuje ve /var/db/svnup a rychlostně
přibližně odpovídá cvsupu. Na druhou stanu svn update je pekelně rychlé,
ale udržuje si režijní databázi teď už sice jen v jednom .svn adresáři,
uvnitř je toho ale na můj vkus opravdu hodně. Dal by se pokaždé použít
i svn export bez režijní databáze, ale to by při každé aktualizaci
znamenalo kompletní přenos všeho.

Pro svnup používám toto (s trim_tree=0 se zdá, že bude možné udržovat
ve stromu i lokální soubory, ale občas se vyskytne něco, že pak musím
i nějaké soubory odmazávat ručně a zatím nevím, jak to vzniká - a občas
se asi zapomenou odmazat některé prázdné adresáře, tak ještě pak zkouším
dát find /usr/{src,ports} -type d -empty -delete):

[defaults]
host=svn.cz.freebsd.org
protocol=svn
work_directory=/var/db/svnup
trim_tree=0
extra_files=1
verbosity=2

[src]
branch=base/stable/9
target=/usr/src

[ports]
branch=ports/head
target=/usr/ports

> Uz par mesicu je v ports tree staging, ktery umoznuje porty zkompilovat 
> a vytvorit binarni balicek bez toho, aby doslo k jejich instalaci. 
> Vysledne balicky zustavaji v /usr/ports/packages/

Ano, porty, kde už není NO_STAGE=yes, při překladu před instalací
vytvoří balíček v /usr/ports/packages, takže pak jen stačí tento
adresář přenést přes rsync nebo nfs nebo něco co není scp -r na další
stroj, a můžou se tyto balíčky použít. U starých portů viz nastavení
pro portmaster níže.

> Mozne to je, ale kvuli problemum, co jsem s nim ja mel uz pred lety, 
> jsem presel na portmaster, ktery dela temer to same a neni zavisly na 
> Ruby a zadne externi databazi (ktera u portupgrade delala dost problemy).

To jsem rád, že nejsem sám :o) Začínal jsem s portupgrade, ale ty nekonečné
problémy s aktualizacema, stále něco několikrát zkoušet, než se povedlo,
a navíc každý pokus na systému s 1000 a více porty trval strašně moc dlouho,
tak jsem začal zkoušet portmaster a taky není dokonalý, ale každý pokus
má jednu obrovskou výhodu - je to mnohonásobně rychlejší, a zatím mám
stále pocit, že iterační upgrade s portmaster se mi daří dělat mnohem
mnohem efektivněji, než jsem dělával s portupgrade (ale jak jsem psal,
nečekejte, že problémy nebudou! budou, ale zdají se mi předvídatelnější
a řešit se mi daří lépe než s portupgrade). Aktuální konfiguraci zkouším
takto:

PACKAGEROOT=ftp://ftp.FreeBSD.cz
DONT_SCRUB_DISTFILES=Dopt
SAVE_SHARED=wopt
PM_IGNORE_FAILED_BACKUP_PACKAGE=pm_ignore_failed_backup_package

# PM_PACKAGES=first			# Slave
# LOCAL_PACKAGEDIR=/usr/ports/packages	# Slave
# PM_PACKAGES_LOCAL=pmp_local		# Slave

# MAKE_PACKAGE=gopt			# Master

Na systému, kde dělám balíčky, mám odkomentovaný Master řádek (to
kvůli těm NO_STAGE portům), na ostatní mám odkomenované Slave řádky,
a zatím se zdá, že je to i jakž takž použitelné.

Dan Lukes wrote (2014/01/26):
> Je to stale tak, ze portmaster mi (na rozdil od portupgrade a jeho
> pkgtools.conf) neumoznuje zadat prekladove optiony pro jednotlive porty
> pripadne zakazat aktualizaci konkretniho portu, nebo uz se v tomhle
> ohledu neco zmenilo ?

Ano, překladové volby neumožňuje. Od toho je ale v manu portmasteru
napsano toto:

If you wish to customize your build environment on a per-port basis you
might want to take a look at /usr/ports/ports-mgmt/portconf

A nechtěl mi to p.....a Doug říct :o) Jen stále opakoval, přečti si
man portmaster ještě jednou a pořádně a od začátku až do konce, je to
moc důležité! A měl pravdu. Akorát nesouhlasím s jeho přístupem k věci
a s tím, jak takové důležité věci schválně nechává tak schované a
nechává tolik věcí na každém, aby si domyslel sám, ale to je asi tak
vše, co s tím můžu dělat :o)

Pro zákaz aktualizací se dá využít +IGNOREME v adresáři portu, nebo
parametr -x, který funguje dokonce i s parametrem -a.

Ještě k těm překladovým volbám - tak nad tím jsme si lámal hlavu pěkně
dlouho, ale myslím, že jsem to nakonec docela úspěšně zlomil :o)
On to nakonec byl také důvod, proč jsem začal zkoušet portmaster
místo portupgrade, protože jak se měnil systém voleb portů z proměnných
prostředí na volby přes dialog, tak jsem dlouho nechápal, jak mám
ten nový systém přes portupgrade ovládat - a u portmaster a portconf
jsem stále cítil, že tady to musím dokázat :o) Ukázka z mého ports.conf
a můžete napsat, jak se vám líbí - jen je rozumné u každého dalšího portu
používat to NIP=y, aby se náhodou nevzal balík s jinými options, než
jaké chcete vy - to jsem třeba u portupgrade nikdy uspokojivě dořešit
nedokázal (ale pravda je, že jak jsem trochu do nového systému pronikal,
tak pak jsem to už ani pro portupgrade nezkoušel):

devel/subversion: NIP=y | WITH=MOD_DAV_SVN
net/asterisk: NIP=y | WITH=IODBC | WITHOUT=PGSQL UNIXODBC
net-im/centerim: NIP=y | WITH=JABBER RSS
net-mgmt/nagios-plugins: NIP=y | WITH=NETSNMP RADIUS
print/cups-base: NIP=y | CUPS_OVERWRITE_BASE
*/p5-*: NIP=y
*: WITH_BDB_VER=6

*: PT_NO_INSTALL_PACKAGE=$$$${NIP}

*: MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.cz/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

Uff, někdy mám pocit, že jsou ty věci tak trochu na patent...

-- 
Rudolf Cejka <cejkar at fit.vutbr.cz> http://www.fit.vutbr.cz/~cejkar
Brno University of Technology, Faculty of Information Technology
Bozetechova 2, 612 66  Brno, Czech Republic


More information about the Users-l mailing list