Re: Is any way to detect *'version '*'required by '*'not defined' ?
- In reply to: Craig Leres : "Re: Is any way to detect *'version '*'required by '*'not defined' ?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 16 Mar 2025 21:35:05 UTC
On Sun, 16 Mar 2025 14:19:17 -0700
Craig Leres <leres@freebsd.org> wrote:
> I wrote the attached script once upon a time to find binaries and
> libraries that were missing shared libraries. It uses ldd. Does it do
> what you want?
>
No, it looks for missed libs but in my case lib exist (in same file) but with another version.
I already try ldd:
% ldd /usr/local/share/chromium/chrome
/usr/local/share/chromium/chrome:
libthr.so.3 => /lib/libthr.so.3 (0x801062000)
libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x801090000)
libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x801097000)
libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0 (0x801112000)
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x80fc9d000)
libintl.so.8 => /usr/local/lib/libintl.so.8 (0x801116000)
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x801137000)
libnss3.so => /usr/local/lib/libnss3.so (0x80fe4c000)
libsmime3.so => /usr/local/lib/libsmime3.so (0x80113e000)
libnssutil3.so => /usr/local/lib/libnssutil3.so (0x80116f000)
libplds4.so => /usr/local/lib/libplds4.so (0x8011a6000)
libplc4.so => /usr/local/lib/libplc4.so (0x8011ac000)
libnspr4.so => /usr/local/lib/libnspr4.so (0x8011b4000)
libdl.so.1 => /usr/lib/libdl.so.1 (0x8011f7000)
libatk-bridge-2.0.so.0 => /usr/local/lib/libatk-bridge-2.0.so.0 (0x80ffa2000)
libatk-1.0.so.0 => /usr/local/lib/libatk-1.0.so.0 (0x80ffe0000)
libcups.so.2 => /usr/local/lib/libcups.so.2 (0x810012000)
libepoll-shim.so.0 => /usr/local/lib/libepoll-shim.so.0 (0x8100b2000)
libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x8100bd000)
libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x810349000)
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x810363000)
libdbus-1.so.3 => /usr/local/lib/libdbus-1.so.3 (0x8103b6000)
libkvm.so.7 => /lib/libkvm.so.7 (0x810412000)
libutil.so.9 => /lib/libutil.so.9 (0x810426000)
libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x81043f000)
libpng16.so.16 => /usr/local/lib/libpng16.so.16 (0x81046e000)
libwebpdemux.so.2 => /usr/local/lib/libwebpdemux.so.2 (0x8104b3000)
libwebpmux.so.3 => /usr/local/lib/libwebpmux.so.3 (0x8104ba000)
libwebp.so.7 => /usr/local/lib/libwebp.so.7 (0x8104c8000)
libharfbuzz-subset.so.0 => /usr/local/lib/libharfbuzz-subset.so.0 (0x810565000)
libharfbuzz.so.0 => /usr/local/lib/libharfbuzz.so.0 (0x8106c2000)
libjpeg.so.8 => /usr/local/lib/libjpeg.so.8 (0x8107fa000)
libopus.so.0 => /usr/local/lib/libopus.so.0 (0x810a00000)
libopenh264.so.6 => /usr/local/lib/libopenh264.so.6 (0x810f54000)
libm.so.5 => /lib/libm.so.5 (0x8108c4000)
libz.so.6 => /lib/libz.so.6 (0x810901000)
libdav1d.so.7 => /usr/local/lib/libdav1d.so.7 (0x811098000)
libX11.so.6 => /usr/local/lib/libX11.so.6 (0x81128d000)
libXcomposite.so.1 => /usr/local/lib/libXcomposite.so.1 (0x81091d000)
libXdamage.so.1 => /usr/local/lib/libXdamage.so.1 (0x810922000)
libXext.so.6 => /usr/local/lib/libXext.so.6 (0x810927000)
libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x81093c000)
libXrandr.so.2 => /usr/local/lib/libXrandr.so.2 (0x810944000)
libXrender.so.1 => /usr/local/lib/libXrender.so.1 (0x810951000)
libXtst.so.6 => /usr/local/lib/libXtst.so.6 (0x81095e000)
libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x810967000)
libxkbcommon.so.0 => /usr/local/lib/libxkbcommon.so.0 (0x810994000)
libgbm.so.1 => /usr/local/lib/libgbm.so.1 (0x8109e2000)
libXi.so.6 => /usr/local/lib/libXi.so.6 (0x8113e4000)
libGL.so.1 => /usr/local/lib/libGL.so.1 (0x8113f7000)
libpci.so.3 => /usr/local/lib/libpci.so.3 (0x811484000)
libffi.so.8 => /usr/local/lib/libffi.so.8 (0x8109f3000)
libpangocairo-1.0.so.0 => /usr/local/lib/libpangocairo-1.0.so.0 (0x811499000)
libpango-1.0.so.0 => /usr/local/lib/libpango-1.0.so.0 (0x8114ab000)
libcairo.so.2 => /usr/local/lib/libcairo.so.2 (0x811524000)
libasound.so.2 => /usr/local/lib/libasound.so.2 (0x81166d000)
libFLAC.so.14 => /usr/local/lib/libFLAC.so.14 (0x811785000)
libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x8117e3000)
libatspi.so.0 => /usr/local/lib/libatspi.so.0 (0x81196c000)
libxslt.so.1 => /usr/local/lib/libxslt.so.1 (0x8119a9000)
libxshmfence.so.1 => /usr/local/lib/libxshmfence.so.1 (0x8119ed000)
libc.so.7 => /lib/libc.so.7 (0x8119f2000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x811cde000)
libpcre2-8.so.0 => /usr/local/lib/libpcre2-8.so.0 (0x811dec000)
libelf.so.2 => /lib/libelf.so.2 (0x811eb1000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x811eca000)
libgnutls.so.30 => /usr/local/lib/libgnutls.so.30 (0x811eea000)
libcrypt.so.5 => /lib/libcrypt.so.5 (0x812129000)
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x812139000)
libsharpyuv.so.0 => /usr/local/lib/libsharpyuv.so.0 (0x812205000)
libgraphite2.so.3 => /usr/local/lib/libgraphite2.so.3 (0x812211000)
libc++.so.1 => /lib/libc++.so.1 (0x81223c000)
libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x81233d000)
libXau.so.6 => /usr/local/lib/libXau.so.6 (0x81235d000)
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x812363000)
libGLdispatch.so.0 => /usr/local/lib/libGLdispatch.so.0 (0x81238c000)
libGLX.so.0 => /usr/local/lib/libGLX.so.0 (0x812445000)
libpangoft2-1.0.so.0 => /usr/local/lib/libpangoft2-1.0.so.0 (0x812479000)
libfribidi.so.0 => /usr/local/lib/libfribidi.so.0 (0x812496000)
libthai.so.0 => /usr/local/lib/libthai.so.0 (0x8124b7000)
libxcb-render.so.0 => /usr/local/lib/libxcb-render.so.0 (0x8124c4000)
libxcb-shm.so.0 => /usr/local/lib/libxcb-shm.so.0 (0x8124d5000)
libpixman-1.so.0 => /usr/local/lib/libpixman-1.so.0 (0x8124db000)
librt.so.1 => /lib/librt.so.1 (0x8125a7000)
libogg.so.0 => /usr/local/lib/libogg.so.0 (0x8125b0000)
libicudata.so.76 => /usr/local/lib/libicudata.so.76 (0x8011fc000)
libicui18n.so.76 => /usr/local/lib/libicui18n.so.76 (0x8125bb000)
libicuuc.so.76 => /usr/local/lib/libicuuc.so.76 (0x812960000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x812b98000)
libp11-kit.so.0 => /usr/local/lib/libp11-kit.so.0 (0x812bcc000)
libidn2.so.0 => /usr/local/lib/libidn2.so.0 (0x812d57000)
libunistring.so.5 => /usr/local/lib/libunistring.so.5 (0x812d8b000)
libtasn1.so.6 => /usr/local/lib/libtasn1.so.6 (0x812f9a000)
libhogweed.so.6 => /usr/local/lib/libhogweed.so.6 (0x812fb1000)
libnettle.so.8 => /usr/local/lib/libnettle.so.8 (0x812ffc000)
libgmp.so.10 => /usr/local/lib/libgmp.so.10 (0x813053000)
libbz2.so.4 => /usr/lib/libbz2.so.4 (0x8130d5000)
libdatrie.so.1 => /usr/local/lib/libdatrie.so.1 (0x8130ec000)
libmd.so.6 => /lib/libmd.so.6 (0x8130f6000)
[vdso] (0x7ffffffff000)
For missed libs I use:
pkg check -dnq
+
for __PKG_NAME_VER in `pkg info -aqE`; do
...
for __PKG_LIB_RAW in `pkg info -Bq "${__PKG_NAME_VER}"`; do
# Strip lib ver: "libc.so.7:32" -> "libc.so.7"
__PKG_LIB=`echo "${__PKG_LIB_RAW}" | sed -e 's|:.*||' | tr -d '\n'`
...
Full code: http://netlab.dhis.org/download/software/os_cfg/FBSD/14/base/root/bin/pkg_auto_rebuild.sh
PS: better replacement for: prog="`basename $0`"
THIS_SCRIPT_NAME=`readlink -nf "${0}"`
it resolves any ./../.. and links in script path.