On 23/02/2014 02:40, Kevin Oberman wrote: > On Sat, Feb 22, 2014 at 5:38 PM, LuKreme <krem...@kreme.com> wrote: > >> > On 13 Feb 2014, at 22:46 , Kevin Oberman <rkober...@gmail.com> wrote: >>> > > An easier way is to install sysutils/bsddfminscripts and use pkg_libchk >> > to >>> > > find what needs to be reinstalled. I use the command: >>> > > pkg_libchk -o | grep icu | cut -d: -f1 | sort | uniq > ~/reinstall-ports >>> > > portmaster -D `cat ~/reinstall-ports` >> > >> > I finally got pkg installed, so, moving on to this and I have a question, >> > what is the purpose of the `grep icu` pipe? >> > > pkg_libchk (part of sysutils/bsdafminscripts) tests all libraries and > executables installed by all ports for non-existant linked sharables. In > this case, the purpose is to get a list of ports that still link to the old > version of libicu. So pkg_libchk lists ALL files from ports that have links > to the old libicu and then trims it to just the port name, sorts it, and > removes dupes.
With pkg(8) installed, this might be better spelled as eg, # pkg shlib libicuuc.so.52 which will tell you those packages that have binaries that load that specific shlib. To find all the consumers of any shlib provided by the icu-52.1 package: # pkg info -qb icu-52.1 | sed -e 's/.1//' | xargs -L 1 pkg shlib -R The sed stuff is due to the lingering legacy effects of the shlib ABI version being required to be a single integer value, whereas nowadays more complicated version numbering schemes seem to be all the rage. pkg-shlib could do with growing some different matching algorithms and a less chatty mode for use in scripting. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey JID: matt...@infracaninophile.co.uk
signature.asc
Description: OpenPGP digital signature