FreeBSD: “shared object ‘libintl.so.6’ not found”

Grrr… Today I turned on my thinkpad only to find out I could not start X! Even more strange, I did not shutdown my thinkpad before going off to sleep. Maybe someone kicked out the plug? Nope. That couldn’t be it. The battery was fully charged and the plug was still in place, but I remember doing:

swinful@thinkpad> sudo portmaster -auG

before going to sleep. Somehow, something probably went haywire while the system was being upgraded. I am not sure what caused the machine to power down, but I have my suspensions. In the past I have had my machine core and reboot while upgrading an nvidia port. More importantly I was able to get X back by doing a google search with w3m. Essentially, the simplest way was to copy an existing “libintl.so.6” from a similar machine.

swinful@thinkpad> uname -a
FreeBSD thinkpad.XYZDomain.com 6.2-STABLE FreeBSD 6.2-STABLE #3: Fri Mar 2 00:37:54 EST 2007 root@thinkpad.xyzdomain.com:/usr/obj/usr/src/sys/T43P i386

swinful@thinkpad> ssh -p 60000 thinkcentre “uname -a && ls -l /usr/local/lib/libintl.so.6”
FreeBSD thinkcentre.XYZDomain.com 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Jan 21 21:22:00 EST 2007 root@thinkcentre.xyzdomain.com:/usr/obj/usr/src/sys/THINKCENTRE i386
-r–r–r– 1 root wheel 41817 Mar 27 2006 /usr/local/lib/libintl.so.6

Using “scp” I copied over the libintl.so.6

swinful@thinkpad> sudo scp -P 60000 swinful@thinkcentre:/usr/local/lib/libintl.so.6 /usr/local/lib
Password:
libintl.so.6 100% 41KB 40.8KB/s 00:00

After this I was able to start X and continue on with my work. Though this worked, the above is not the correct way to fix the “shared object ‘libintl.so.6’ not found” error. Reading /usr/ports/UPDATING revealed I needed to do:

portupgrade -rf gettext

The above is required if you upgraded to: gettext-0.16.1. /usr/ports/UPDATING shows:

20070318:
AFFECTS: users of devel/gettext (ie: YOU)
AUTHOR: ade@FreeBSD.org

As a result of the upgrade to gettext-0.16.1, the shared library version
of libintl has changed, so you will need to rebuild all ports that
depend on gettext (ie: most of them, sorry):

portupgrade -rf gettext

Please Note: Running the above command is brutal if you have lots of packages installed! I have just under 600 packages installed and the above command has been running for over 6 hours! You have been warned!!

Advertisements
This entry was posted in *Nix. Bookmark the permalink.

10 Responses to FreeBSD: “shared object ‘libintl.so.6’ not found”

  1. Dave Grochowski says:

    Yeah, it sucked, to say the least. I have 800+ ports on two different machines, making this a pain in the ass.

  2. swinful says:

    Dave, I feel your pain:) On two machines… I can only imagine.

  3. Carrot says:

    Same here, although I usually take an even more ‘adventurous’
    route and symlink old versions to new ones =P

    You won’t believe how many times this ‘just works’ (and what happens if it doesn’t 🙂

    • Rabbit says:

      Symlink? Wouldn’t it be easier to use /etc/libmap.conf ?

      • swinful says:

        Depending on your installed version, you can easily install “../misc/compat?x” to solve this issue. And, if you know what you are doing, adding the appropriate entry in /etc/libmap.conf works just well.

  4. Vide says:

    Hi

    I’m in trouble with this fantastic update (kudos to freebsd developers and their change of ABI in a stable release…WTF!!!) but it’s not only affecting ports, even “su” (which is part of the base system) fail with the same exact error! Any hint? Moreover my root had bash as primary shell…now I can’t even log in the machine 😦

  5. ReD says:

    After upgrading the gettext pkg to 0.16.1 I have encountered the same error in mc or SpamAssasin sa-update. Probably a lot of other software would need this but I have just found these 2.
    I have investigated the problem and it seems that the gettext update has replaced the .6 version with .8.
    I have made a copy of libintl.so.8 to libintl.so.6 in /usr/local/lib. Problem solved. I don’t know how correct is this, but as long as it works, it’s fine by me.
    Thanks for the tips. Bye.

  6. Eivind Hestnes says:

    Could you share you kernel configuration? I’m configuring a T43p for FreeBSD this week.. Thanks.

  7. swinful says:

    Sure. But, it is too long to paste here. Can I email it to you?

  8. Nafanya says:

    Vide Says:

    login using toor user with root password.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s