Portál AbcLinuxu, 20. dubna 2024 07:33
"pkg_info -rR"
by mel ukazat vsechny zavislosti
# pkgdu -tRm mc 0 gamin-0.1.9_2 10 gettext-0.17_1 0 gio-fam-backend-2.16.5 7 glib-2.16.5 3 libiconv-1.11_1 4 libslang2-2.1.3 6 mc-4.6.1_8 1 pcre-7.7 28 perl-5.8.8_1 0 pkg-config-0.23_1 0 png-1.2.28 48 python25-2.5.2_2 111
#!/usr/bin/env bash function is_installed () { ls -d /var/db/pkg/${1}* &>/dev/null [ $? -eq 1 ] && echo "Port $1 is not installed." } for port in `make all-depends-list | sed 's#^/usr/ports/[^/]*/##'` do is_installed $port doneSice je to velmi (ale opravdu velmi) špatně napsané, ale už to alespoň něco říká. Při tvorbě tohoto skriptu jsem procházel celý /usr/ports/Mk/bsd.port.mk (SVATÝ GRÁL) a někde u řádku 4927 jsem tento skript měl naznačený a zkoušel jsem ho testovat. Po úspěšném dopsání jsem ještě ze zvědavosti dorazil těch pár set řádků a našel jsem (samozřejmě na úplně posledním místě) zázračnou formuli.. BEHOLD>>
5258 # Show missing dependiencies 5259 missing: 5260 @for dir in $$(${ALL-DEPENDS-LIST}); do \ 5261 THISORIGIN=$${dir##${PORTSDIR}/}; \ 5262 installed=$$(${PKG_INFO} -qO $${THISORIGIN}); \ 5263 if [ -z "$$installed" ]; then \ 5264 ${ECHO_CMD} $$THISORIGIN; \ 5265 fi; \ 5266 done 5267Výsledky sice nejsou zcela shodné s mým skriptem, ale čekal bych, že make missing bude mít víc pravdu než nějaké shellové ořezávátko. Navíc překlep 'dependiencies' na řádku 5258 byl ten vtip, kvůli kterému se mi to hůře hledalo. Teď jen doufám, že daný příkaz opravdu slouží k tomu k čemu myslím, že slouží.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.