DragonFly On-Line Manual Pages

Search: Section:  


PKG_LIBCHK(1)          DragonFly General Commands Manual         PKG_LIBCHK(1)

NAME

pkg_libchk - check packages for links against missing libraries

SYNOPSIS

pkg_libchk [-achmnoqrRv] [packages]

DESCRIPTION

The pkg_libchk script uses pkg_info(1), ldd(1) and readelf(1) to check whether a package is linked against missing libraries or libraries residing in %%PREFIX%%/lib/compat and its subfolders.

OPTIONS

The following options are available: -a --all Check all packages. This is the default action in case no packages have been specified. -c --clean Create clean output without status messages. -h --help Displays the available options. -jN --jobsN Specify the amount of parallel jobs the script will attempt run. The default is two jobs per CPU core. -m --mean In this mode all the checks to detect false positives are turned off. This has several effects. Packages like OpenOffice which do not rely on the OS to find their libraries will yield lots of hits. Also indirect dependencies will be printed. The diffrence is that this way the packages currently inoperable will be returned instead of the packages that need to be rebuild in order to fix the damage. Running the script in mean mode reduces the run time by approximately 15%. -n --no-compat This deactivates detecting compat libraries in %%PREFIX%%/lib/compat as missing libraries. -o --origin Instead of the package name the package origin is printed. -q --raw Only print the names of affected packages. Do not print any details. This option is meant for machine readability. It also speeds up operation on affected packages, because it allows the script to move to the next package without checking the whole package. This option cannot be combined with verbose output. -r --recursive Also check packages the given packages depend on. -R --upward-recursive Also check the packages depending on the given packages. -v --verbose Be verbose about missing dependencies. Instead of rejecting indirect dependencies or false positives it will print why they would have been rejected. This option cannot be combined with raw output. packages Packages are package names or shell patterns matching these.

NOTES

Some packages like OpenOffice or Java environments always miss some libraries, this is because they have their own ways of finding libraries. This output can be supressed by adding the following lines to the file /etc/libmap.conf: # Clean up pkg_libchk output. [libofficebean.so] libjawt.so libc.so [libJdbcOdbc.so] libodbcinst.so libc.so libodbc.so libc.so

SORTED OUTPUT

Since the possibility to run parallel jobs was introduced, output no longer is sorted. If you find that annoying you can run: pkg_libchk -j1 Of course there is a heavy performance penalty especially on systems with several CPU cores. Another way around this is to pipe output into sort(1): pkg_libhck | sort This will run faster, but output will be printed after the script has terminated.

EXAMPLES

To check all your packages run: pkg_libchk To create raw output for everything connected to gtk. pkg_libchk -q \*gtk\* After upgrading a library, in this case icu, you can check all depending packages: pkg_libchk -R icu-\*

EXIT CODES

1 An unknown parameter has been supplied. 2 The incompatible parameters -v and -q have been supplied. 3 The parameter -j has been supplied without an acceptable number. 255 The script has terminated because it received SIGINT or SIGTERM.

COMPATIBILITY

The script has been tested on FreeBSD 7.2-PRERELEASE.

SEE ALSO

bsdadminscripts(1), pkg_info(1), ldd(1), readelf(1)

HISTORY

The pkg_libchk script first appeared in the bsdadminscripts-4.0 collection.

AUTHOR

Dominic Fandrey <kamikaze@bsdforen.de> DragonFly 6.5-DEVELOPMENT April 23, 2009 DragonFly 6.5-DEVELOPMENT

Search: Section: