dpkg -L gives wrong files list
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dpkg (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: dpkg
Distribution : Feisty
Reproducibility : Always
The command dpkg -L should list all files installed by a certain package, but very often it lists files which are not actually installed .
for example: dpkg -L gcc-4.1 gives , among all other files :
/usr/lib/
which is not installed with that package.
To check this I have wrote a simple script, which shows packages with missing files and put their names in a file called missing
here's the script :
#!/bin/sh
for PName in $(dpkg -l | awk /^ii/'{print $2}'); do
for FName in $(dpkg -L $PName); do
if [ ! -e $FName ]; then
echo "missing $FName!!!"
echo $PName >> missing.dup
break
fi
done
done
uniq missing.dup > missing
rm missing.dup
I don't know for this specific file why it is that dpkg -L lists it when "it is not installed with that package" or indeed what "it is not installed with that package" means.
On my machine the file /usr/lib/ gcc/i486- linux-gnu/ 4.1.2/libgcc_ s.so exists and is a symlink to /lib/libgcc_s.so.1.
It is true that sometimes packages delete files installed by dpkg. This is not something that dpkg can know about and we do not plan to introduce a way to tell dpkg about it. So if that's the case then this isn't a bug.
It might be that there is a bug in dpkg here but it doesn't seem hugely likely without further information.
It is also possible that your machine has filesystem corruption due to hardware problems.