/libexec/ld-elf.so.1: Shared object "libjpeg.so.9" not found

I upgraded /graphics/jpeg according to UPDATING with;

Code:
portupgrade -fr graphics/jpeg

Code:
20090719:
  AFFECTS: users of graphics/jpeg
  AUTHOR: dinoex@FreeBSD.org

  jpeg has been updated to 7.0.
  Please rebuild all ports that depends on it.

  If you use portmaster please use:
        portmaster -r jpeg-
  If you use portupgrade please use:
        portupgrade -fr graphics/jpeg

Now alot of my programs fail to run with this error;

Code:
/libexec/ld-elf.so.1: Shared object "libjpeg.so.9" not found, required by <insert your favorite program here>

Now what do I do? I just got this box working now it's broke again.
 
Yes, search the forums. Searching for 'libjpeg.so.9' gives you four other threads about this.
 
see the july 24 -- july 25 thread
"gd seems to be broken"
for fixes.

Didn't work. It says;

Do a pkg_delete -f on the gd package, go to /usr/ports/graphics/gd, do make clean && make distclean(probably not needed, but its what I always do), and a make install clean.


I did that and make install clean still says it can't find "libjpeg.so.9".

Yes, search the forums. Searching for 'libjpeg.so.9' gives you four other threads about this.

Yes, I already saw those, there's no solution. I've done portmaster -dRrf jpeg-7. The jist of all these posts seems to be uninstall and reinstall every thing that depends on jpeg but I can't get things to install.
 
maybe there's a newer version in /usr/local/lib.

ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9
 
maybe there's a newer version in /usr/local/lib.

ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9

Yes there's a libjpeg.so.10. So what are you saying I should link to it? Is this just a bandaid fix that's going to cause other problems down the road? Why doesn't it work the way it's supposed to? I also tried;

Code:
portupgrade -fr jpeg

It ran for a long time like it was reinstalling everything but things still don't run. Amarok, konqueror, opera...
When I try to install amarok after deinstall i get;

Code:
"libjpeg.so.9" not found

opera;
Code:
usr/local/share/opera/ini/pluginpath.ini FAILED md5 check: c5b66b8c5ce9f14bdd7b6a5c34f456a8 != ee5c425fba376571c6ef81631e9623b5


This system is all screwed up now. How do I fix it?
 
Just link libjpeg.9 to the existing libjpeg.10 in the same directory.

Don't know about Opera. Try removing its default config directory to make it think it starts for the first time. Or make reinstall / make clean reinstall

If it became a complete mess, try to save any customized config file on your system, do a "pkg_delete -a" an install all apps you need with pkg_add -r
 
Just link libjpeg.9 to the existing libjpeg.10 in the same directory.

Sure, I can just blindly do what people say but I'd like to know what I'm doing. Why didn't the other methods work? I ran portupgrade and portmaster but still things are looking for libjpeg.9.

If it became a complete mess, try to save any customized config file on your system, do a "pkg_delete -a" an install all apps you need with pkg_add -r

I do make deinstall and make install clean, isn't that good enough? I prefer that to packages but it's always looking for libjpeg.9.
 
SeaHag said:
Sure, I can just blindly do what people say but I'd like to know what I'm doing. Why didn't the other methods work? I ran portupgrade and portmaster but still things are looking for libjpeg.9.

You can at least try if it works.

Looks like you got in dependency hell by using tools like portupgrade too impulsive, especially with those -fr parameters. Last solutions are try a correct updating of your portsdb and pkgdb, an rebuild the apps that lost any dependencies or manually trace back the version numbers using the FreeBSD ports index site. But that's too much to explain without docs.
 
The symlink is allowing amarok to install but I'm afraid programs looking for libjpeg.9 will get libjpeg.10 and have problems. Is that the case?

After amarok was done installing I ran it and got;
Bus error (core dumped)

Oh the joy of FreeBSD.
 
"jpeg" is a default package in many *NIX systems and probably fully downward compatible.

It would be different if you linked a .10 to a .9 library
There might be new features in other packages that are not yet supported. But it can still be worth trying.
 
Looks like you got in dependency hell by using tools like portupgrade too impulsive, especially with those -fr parameters.

The /usr/ports/UPDATING file said to. I'd like to know why after doing this when I run or install opera it says "libjpeg.so.9"not found. Same with konqueror, amarok...
 
with ldd you can list the needed library versions of any program.
If there are newer versions installed, a symlink usually does the job.

Apparently your Opera-version requires an older library that has somehow disappeared. You can try fixing al the version mismatches on your system, but it's easier to pkg_delete and reinstall everything so that the correct dependencies are fetched and built.
 
Code:
ldd opera
ldd: opera: No such file or directory

Can't I just do a pkg_delete on one package and see if it works first before destroying my system even further? If i do pkg_delete opera it says not installed. If I try to install it it says libjpeg.9 not found. Everything I try to install says libjpeg.9 not found. Isn't it supposed to fixed by running portupgrade -fr graphics/jpeg? That command ran for a long time and afterwards things still don't work.
 
Form /usr/ports/UPDATING;
Code:
20090719:
  AFFECTS: users of graphics/jpeg
  AUTHOR: dinoex@FreeBSD.org

  jpeg has been updated to 7.0.
  Please rebuild all ports that depends on it.

  If you use portmaster please use:
        portmaster -r jpeg-
  If you use portupgrade please use:
        portupgrade -fr graphics/jpeg

When I try I get;
Code:
# portmaster -r jpeg-

===>>> No valid installed port, or port directory given
===>>> Try portmaster --help

So I try portmaster -r jpeg-7, it runs for a while then and get;
Code:
===>>> Port directory: /usr/ports/emulators/linux_base-f10
	===>>> This port is marked IGNORE
	===>>> compat.linux.osrelease: 2.4.2 is not supported, please use 2.6.16

	===>>> If you are sure you can build it, remove the
	       IGNORE line in the Makefile and try again.

===>>> Update for /usr/ports/emulators/linux_base-f10 failed
===>>> Aborting update

===>>> Update for nspluginwrapper-1.2.2_2 failed
===>>> Aborting update

Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
 
SeaHag said:
Code:
ldd opera
ldd: opera: No such file or directory

Can't I just do a pkg_delete on one package and see if it works first before destroying my system even further? If i do pkg_delete opera it says not installed. If I try to install it it says libjpeg.9 not found. Everything I try to install says libjpeg.9 not found. Isn't it supposed to fixed by running portupgrade -fr graphics/jpeg? That command ran for a long time and afterwards things still don't work.

use ldd with the full pathname
use pkg_delete with full package name including version number or use wildcards (jpeg*)

And all your software is depending on an earlier version of jpeg, probably jpeg 6b_7. The upgrade proces on jpeg did not relink the library correctly to the installed software. You can try downgrade jpeg, but probably you also have software installed which is already upgraded to use the newer version.

Just take the programs you want to use and look at their dependencies with ldd for binaries deps and pkg_info -r for package deps. Then upgrade or downgrade whatever is needed.

By the way, did you Google for compat.linux.osrelease?
 
Code:
# ldd /usr/ports/audio/amarok
ldd: /usr/ports/audio/amarok: not a dynamic executable
# ldd /usr/ports/www/opera
ldd: /usr/ports/www/opera: not a dynamic executable

And all your software is depending on an earlier version of jpeg, probably jpeg 6b_7.

Why? Isn't the /usr/ports/UPGRADE instructions supposed to fix that?

The upgrade proces on jpeg did not relink the library correctly to the installed software.

Ya, apparently.

Just take the programs you want to use and look at their dependencies with ldd for binaries deps and pkg_info -r for package deps. Then upgrade or downgrade whatever is needed.

How? What do you mean by "upgrade"? I can't upgrade anything, I do make deinstall or pkg_delete then make install clean and it always tells me libjpeg.so.9 not found. I ran;

Code:
portupgrade -fr jpeg-7
/[code]

It ran for a long time recompiling lots of stuff and now opera works but still no amarok or konqueror
 
Running ldd on a port won't work ;) You'll have to run it against the executable:

Code:
ldd `which amarok`
ldd `which opera`
 
MG said:
maybe there's a newer version in /usr/local/lib.

ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9

Just a note, you should NOT do this. Doing this can seriously bite you some day.

Try and resolve the dependencies. Your best bet is to rebuild all the ports that are complaining about the missing libjpeg.so.9.
 
Code:
#whereis opera
opera: /usr/local/bin/opera
# ldd /usr/local/bin/opera
ldd: /usr/local/bin/opera: not a dynamic executable

amarok is no longer installed. I did make deinstall and now it won't install failing for libjpeg.so.9 not found. And I can't find konqueror. I don't remember how I installed it.


Originally Posted by MG View Post
maybe there's a newer version in /usr/local/lib.

ln -s /usr/local/lib/libjpeg.so.10 /usr/local/lib/libjpeg.so.9
Just a note, you should NOT do this. Doing this can seriously bite you some day.

Ya, that's what i thought. I'm trying to avoid doing that. I can't rebuild the ports, they always fail for libjpeg.so.9 not found. What do you mean by "rebuild the port"? you mean by running make install clean after make deinstall or pkg_delete?
 
SeaHag said:
I can't rebuild the ports, they always fail for libjpeg.so.9 not found.
This might be due to a dependency of that port still being linked to libjpeg.so.9.

Since it happens during build try doing a make build-depends-list in the port's directory. Have a look at each one if they might still be linked to the old version.
 
As long as your entire portupgrade/portmaster-upgrade for jpeg doesn't complete, you will be facing errors. First fix this:

[cmd=]sysctl compat.linux.osrelease=2.6.16[/cmd]
[cmd=]echo compat.linux.osrelease=2.6.16 >> /etc/sysctl.conf[/cmd]

Then run the recursive upgrade for jpeg again. Repair every mistake along the way until the run has finished completely. Only then tackle indvidual ports that still want libjpeg.so.9, or upgrade all ports showing up in [cmd=]pkg_info -R jpeg-7[/cmd].

Oh, and choose: use portupgrade or portmaster, not both! Using them together may lead to inconsistencies in the other's internal administration. When you use portmaster, portupgrade's databases will not register/reflect any changes made by portmaster. It's possible that that's what's keeping these libjpeg errors around.
 
As long as your entire portupgrade/portmaster-upgrade for jpeg doesn't complete, you will be facing errors. First fix this:

sysctl compat.linux.osrelease=2.6.16
echo compat.linux.osrelease=2.6.16 >> /etc/sysctl.conf

Then run the recursive upgrade for jpeg again. Repair every mistake along the way until the run has finished completely. Only then tackle indvidual ports that still want libjpeg.so.9, or upgrade all ports showing up in pkg_info -R jpeg-7.

Ya, that's probably what's causing the problems. Something else is installing right now then I'll try that. This seems obvious but I'll ask anyway, can you install more than one port at a time? I think no so I'll wait till the other is done.
 
Parallel installs are not advisable, unless you are dead certain that they won't be working on the same dependencies at the same time (race condition), clobbering the compilation of that dependency and nuking both ports.
 
Back
Top