DragonFly On-Line Manual Pages
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