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