You are not logged in.

#1 2012-09-23 20:01:05

fturco
Member
Registered: 2010-07-12
Posts: 40

Scanning the system for broken executables

Hello. I noticed that on my Arch Linux system there are lots of executable files that seems to be broken in that they need missing libraries. I scanned the system with the following command (don't know if it's correct):

# find / -type f -executable -exec bash -c 'ldd $1 | grep -q "not found" && echo $1' bash {} \;

Basically I'm trying to get a list of executable files that when scanned with "ldd" results in "not found" entries.

My list is quite long (I manually filtered it somewhat):

/usr/lib/tc/q_atm.so
/usr/lib/ruby/1.9.1/x86_64-linux/tcltklib.so
/usr/lib/libnetsnmpmibs.so.30.0.1
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/headless/libmawt.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/xawt/libmawt.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/librmi.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libawt.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libunpack.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libzip.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjavajpeg.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjawt.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjavalcms.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libj2gss.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjava.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjsound.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libj2pcsc.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjsoundalsa.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libjaas_unix.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libnio.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libnet.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libattach.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libsctp.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libfontmanager.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libmlib_image.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libj2pkcs11.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libmanagement.so
/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libverify.so
/usr/lib/python2.7/lib-dynload/_tkinter.so
/usr/lib/python2.7/site-packages/matplotlib/backends/_tkagg.so
/usr/lib/python2.7/site-packages/PyQt4/QtAssistant.so
/usr/lib/python2.7/site-packages/PyQt4/phonon.so
/usr/lib/perl5/vendor_perl/auto/Net/Libproxy/Libproxy.so
/usr/lib/xchat/plugins/tcl.so
/usr/lib/libavahi-qt3.so.1.0.2
/usr/lib/xmms/Input/libxmms-flac.so
/usr/lib/kde4/kcm_adobe_flash_player.so
/usr/lib/jack/jack_net.so
/usr/lib/jack/jack_firewire.so
/usr/lib/qt/plugins/sqldrivers/libqsqlmysql.so
/usr/lib/qt/plugins/sqldrivers/libqsqlibase.so
/usr/lib/qt/plugins/sqldrivers/libqsqlpsql.so
/usr/lib/totem/plugins/publish/libpublish.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxPuelMain.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxPciRawDrv.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxEhciR3.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxUsbCardReaderR3.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxPciRawR3.so
/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxVRDP.so
/usr/lib/libpeas-1.0/loaders/libseedloader.so
/usr/lib/brasero3/plugins/libbrasero-libisofs.so
/usr/lib/brasero3/plugins/libbrasero-libburn.so
/usr/lib/libproxy/0.4.7/modules/config_kde4.so
/usr/lib/ImageMagick-6.7.9/modules-Q16/coders/wmf.so
/usr/lib/ImageMagick-6.7.9/modules-Q16/coders/exr.so
/usr/lib/python3.2/lib-dynload/_tkinter.cpython-32mu.so
/usr/bin/jack_netsource
/usr/bin/playdv
/usr/sbin/sensord

For example running "ldd" on one of the previous files results in three missing libraries:

ldd /usr/lib/kde4/kcm_adobe_flash_player.so | grep "not found"
	libkdeui.so.5 => not found
	libkutils.so.4 => not found
	libkdecore.so.5 => not found

This "broken" library belongs to a package I need (the flash plugin):

pacman -Qo /usr/lib/kde4/kcm_adobe_flash_player.so
/usr/lib/kde4/kcm_adobe_flash_player.so is owned by flashplugin 11.2.202.238-1

The last step is to obtain the name of the package I need to fix the problem:

for i in libkdeui.so.5 libkutils.so.4 libkdecore.so.5; do pkgfile $i; done
extra/kdelibs
extra/kdelibs
extra/kdelibs

So it seems that the flash plugin depends on KDE (or a part of it). But I run GNOME and I prefer not to install anything related to KDE. Similarly, when repeating the previous steps on all the other "broken" executables, I get many other missing libraries I frankly don't feel I really need.

At this point I'm asking the following questions. Is this behaviour normal on a Arch Linux system or on a Linux system in general? Should I install all missing libraries in order to prevent breakage? Should I instead avoid doing that and keep my system the way it is now?

I'm a new Arch Linux user and I'm just curious.

Thank you.

Offline

#2 2012-09-23 20:06:09

nTia89
Banned
From: varese, italy
Registered: 2008-12-22
Posts: 1,230

Re: Scanning the system for broken executables

i'm not an expert but i think that some "not found" regards only optional libraries
and as an archlinux user i say you: "if you don't meet problem, don't try to find it" -> "if you system run, don't try to fix it"


+pc: custom | AMD Opteron 175 | nForce4 Ultra | 2GB ram DDR400 | nVidia 9800GT 1GB | ArchLinux x86_64 w/ openbox
+laptop: Apple | MacBook (2,1) | 2GB ram | Mac OS X 10.4 -> DIED
+ultrabook: Dell | XPS 13 (9343) | 8GB ram | 256GB ssd | FullHD display | Windows 8.1 64bit ArchLinux x86_64 w/ Gnome

Offline

Board footer

Powered by FluxBB