[BSD] FreeBSD
Zahemszky Gábor
Gabor at Zahemszky.HU
2008. Sze. 15., H, 23:00:09 CEST
Sziasztok!
No akkor a lista archívum és későbbi hivatkozás okán:
> > >> A portmaster csak installalni es frissiteni tud.
>
> Bár a portmaster valóban nem tud rekurzívan törölni, viszont a fenti
> sem helytálló.
Hehe, de :-)
> -e name of port directory in /var/db/pkg
> expunge port using pkg_delete(1), and optionally remove all
> dist- files. Calls -s after it is done expunging in case removing the
> port causes a dependency to no longer be necessary.
>
> Ha szigorúan vesszük, persze nem ő tudja, hanem a pkg_delete, de
> sag' schon.
No kicsit jobban belemélyedve a portmaster manual-ba, azt kell mondjam,
hogy megoldódott a probléma, bár tény, kicsit nyakatekerten.
Ha le akarok törölni egy feltelepített csomagot, és azokat, ami(k)nek
ez a csomag a függősége, akkor:
pkg_delete -r csomagneve-ver.zi.o
Ha pedig le akarok törölni egy feltelepített csomagot, és azokat,
ami(k) ennek a csomagnak függősége(i), akkor helyette:
portmaster -e csomagneve.ver.zi.o
Mondjuk ez utóbbi forma nem fogja az összes függőséget megpróbálni
letörölni, csak azokat, amiknél a +REQUIRED_BY fájl nulla méretű - és
őszintén szólva nem nagyon tudom, hogy hagy-e maga után ilyeneket
(azaz, A -> B -> C esetben C törlése után törli B-t, de nem tudom, h
A-t is törli-e utána - ami egy igazi rekurzív törlés lényege lenne -
de esetleg néhány plusz "portmaster -s" segíthet a dolgon.)
A portupgrade -es megoldás kicsit logikusabb, de nem baj.
Kösz, Zsolt!
Zahy < Gabor at Zahemszky dot HU >
--
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!';IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ
';set -- $Z;for i;{ [[ $i = ? ]]&&print $i&&break;[[ $i
= ??? ]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j"
= ??? ]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set
-- $Z;for i;{ [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;j="$j
$i";typeset +l i;};print "$j"
További információk a(z) BSD levelezőlistáról