Problem s balicky

Dan Lukes dan at obluda.cz
Tue Feb 4 14:39:29 CET 2014


Jan Dušátko wrote:
> Zkusil jsem ji opravit, chci se vyhnout pouziti pkg ng

No, zrejme se ti to tak uplne nepovedlo.

pkg je, rekl bych v systemu stale pritomno

A kdyz je, je preferovane. Pokud se chces pouziti pkg vyhnout, proste ho
v systemu nesmis mit.

> Napada nekoho vas neco? Treba I prejdu na jiny styl distribuce balicku, jen
> potrebuji kompilovat ze zdroju, ne si brat balicky z distribucniho uloziste.
> Kucharka vitana.

Uz jsem to tu popisoval nekolikrat. Stale nepouzivam pkg a pouzivam
portupgrade. Na centralnim repository se preklada, na vsech ostatnich
pocitacich instaluje z balicky vytvorenych a ulozenych v centralnim
repository. Nic ale nebrani tomu centralni repository nemit a spravovat
si to na kazdem stroji separatne - jen je to proste vic prace a casu.

Pro aktualizaci portu vcetne stromu pouzivam

> cd /usr/ports ; make update ; make INDEX_JOBS=2 index ; portupgrade -apu

Zatim s tim nemam zadne zasadni problemy.

Pravda, pro jistotu muzes nasledne overit, ze ti v systemu nezustaly
binary a knihovny zavisle na necem, co uz neexistuje. Obcas se to stat muze:

> rm /usr/local/lib/compat/pkg/* 2>/dev/null ; find /bin /sbin /lib /usr/bin /usr/sbin /usr/lib /usr/libexec /usr/local/lib /usr/local/bin /usr/local/sbin /usr/local/libexec -type f | ( LD_LIBRARY_PATH="$( ldconfig -r | sed -n 's/^ *search directories: *//p' ):/usr/local/lib/libreoffice/ure/lib:/usr/local/lib/seamonkey" ; export LD_LIBRARY_PATH ; xargs ldd 2>/dev/null ) | sed '/^\//{h;d;};G;s/^\(.*\)\n\(.*\)/\2\1/' | grep -E "not found|/compat/pkg/" | cut -d: -f1 | sort -u

V takovem pripade je treba "force" zkompilovat znovu postizeny port
(dojde k tomu tak, ze se aktualizuje port s knihovnami, ale verze portu
co na nich zavisi se nezmeni a tak se nevi, ze by se mel aktualizovat).

A abyses pri instalaci z balicku vyhnul varovanim o tom, ze balicek
zavisi na nevem verze X a v systemy je verze Y muzes jeste prebalickovat
to, cemu se zmenily zavislosti:

> for i in /var/db/pkg/* ; do i=`basename "$i"` ; [ -f "/var/db/pkg/$i/+CONTENTS" ] || continue ; if [ ! -r "/usr/ports/packages/All/$i.tbz" -o "/var/db/pkg/$i/+CONTENTS" -nt "/usr/ports/packages/All/$i.tbz" ] ; then pkg_create -vb "$i" "/usr/ports/packages/All/$i.tbz" ; fi ; done ; portsclean -PD

Implicitne predpokladam, ze pokud v /usr/ports/UPDATING najdes specialni
pokyny tykajici se update toho-ktereho portu, tak ses jim samozrejme ridil.

Dan




More information about the Users-l mailing list