# Shared object "libintl.so.8" not found



## bludilnik (Jun 1, 2010)

Hello, i'm running FreeBSD 7.3 that was upgraded from 7.2.
`uname -a`

```
FreeBSD web.vvf.viko.lt 7.3-RELEASE FreeBSD 7.3-RELEASE #0: Sun Mar 21 06:15:01 UTC 2010     root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
```
After upgrade it was running for about 2-3 weeks and i have run portmaster <packages> several times with no issues.

But today i have some problems with [CMD=""]portmaster <names>[/CMD]
After getting the list of available updates:[CMD=""]sudo portmaster -L | grep "New version"[/CMD]. 
	
	



```
===>>> New version available: m4-1.4.14_1,1
        ===>>> New version available: gamin-0.1.10_4
        ===>>> New version available: gawk-3.1.7_1
        ===>>> New version available: gio-fam-backend-2.24.1_1
        ===>>> New version available: glib-2.24.1_1
        ===>>> New version available: libgpg-error-1.7_1
        ===>>> New version available: p5-gettext-1.05_3
        ===>>> New version available: php5-5.3.2_1
        ===>>> New version available: php5-ctype-5.3.2_1
        ===>>> New version available: php5-dom-5.3.2_1
        ===>>> New version available: php5-filter-5.3.2_1
        ===>>> New version available: php5-gd-5.3.2_1
        ===>>> New version available: php5-gettext-5.3.2_1
        ===>>> New version available: php5-hash-5.3.2_1
        ===>>> New version available: php5-iconv-5.3.2_1
        ===>>> New version available: php5-json-5.3.2_1
        ===>>> New version available: php5-mbstring-5.3.2_1
        ===>>> New version available: php5-mcrypt-5.3.2_1
        ===>>> New version available: php5-mysql-5.3.2_1
        ===>>> New version available: php5-mysqli-5.3.2_1
        ===>>> New version available: php5-openssl-5.3.2_1
        ===>>> New version available: php5-5.3.2_1
        ===>>> New version available: php5-pdo-5.3.2_1
        ===>>> New version available: php5-posix-5.3.2_1
        ===>>> New version available: php5-session-5.3.2_1
        ===>>> New version available: php5-simplexml-5.3.2_1
        ===>>> New version available: php5-tokenizer-5.3.2_1
        ===>>> New version available: php5-xml-5.3.2_1
        ===>>> New version available: php5-xmlreader-5.3.2_1
        ===>>> New version available: php5-xmlwriter-5.3.2_1
        ===>>> New version available: php5-zip-5.3.2_1
        ===>>> New version available: php5-zlib-5.3.2_1
        ===>>> New version available: wget-1.12_1
        ===>>> New version available: bash-4.1.5_2
        ===>>> New version available: bison-2.4.1_1,1
        ===>>> New version available: help2man-1.38.2_1
        ===>>> New version available: lynx-2.8.7.1_1,1
        ===>>> New version available: mc-light-4.1.40.p9_8
        ===>>> New version available: mysql-server-5.0.90
        ===>>> New version available: snort-2.8.5.3_1
```
 I was trying to update the gettext as follows: [CMD=""]sudo portmaster m4 gamin gawk [/CMD] 
And get the following error: 

```
config.status: creating Makefile
/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "gawk-3.1.7"
config.status: error: could not create Makefile
===>  Script "configure" failed unexpectedly.
Please report the problem to johans@FreeBSD.org [maintainer] and attach the
"/usr/ports/devel/m4/work/m4-1.4.14/config.log" including the output of the
failure of your make command. Also, it might be a good idea to provide an
overview of all packages installed on your system (e.g. an `ls /var/db/pkg`).
*** Error code 1

Stop in /usr/ports/devel/m4.
*** Error code 1

Stop in /usr/ports/devel/m4.

===>>> make failed for devel/m4
===>>> Aborting update

===>>> Update for m4-1.4.14,1 failed
===>>> Aborting update
```

The command `ldconfig -r |grep "libin*"` shows the following list of libraries

```
17:-lipsec.3 => /lib/libipsec.so.3
        18:-lipx.4 => /lib/libipx.so.4
        96:-liconv.3 => /usr/local/lib/libiconv.so.3
        115:-licudata.38 => /usr/local/lib/libicudata.so.38
        116:-licuuc.38 => /usr/local/lib/libicuuc.so.38
        117:-licui18n.38 => /usr/local/lib/libicui18n.so.38
        118:-licule.38 => /usr/local/lib/libicule.so.38
        119:-liculx.38 => /usr/local/lib/libiculx.so.38
        120:-licutu.38 => /usr/local/lib/libicutu.so.38
        121:-licuio.38 => /usr/local/lib/libicuio.so.38
```
The command `sudo find / -iname "libintl*"`
gives this result 
	
	



```
/usr/local/share/awk/libintl.awk
/usr/ports/devel/gettext/work/gettext-0.18/gettext-runtime/intl/libintl.rc
/usr/ports/devel/gettext/work/gettext-0.18/gettext-runtime/intl/libintl.glibc
/usr/ports/misc/mc-light/work/mc-4.1.40-pre9/intl/libintl.h
/usr/ports/misc/mc-light/work/mc-4.1.40-pre9/intl/libintl.a
/usr/ports/science/libint
```
It looks that on some point i have missed the libintl.so.8 library at all?
Is there a possibility to get this library back some how?


----------



## bludilnik (Jun 1, 2010)

bludilnik said:
			
		

> I was trying to update the gettext as follows: [CMD=""]sudo portmaster m4 gamin gawk [/CMD]



Sorry i was trying to update several packages at once not only the "gettext".


----------



## DutchDaemon (Jun 1, 2010)

http://forums.freebsd.org/showthread.php?t=14655


----------



## SIFE (Jun 1, 2010)

try to reinstall it .


----------



## bludilnik (Jun 2, 2010)

SIFE said:
			
		

> try to reinstall it .


Could you give an advice how to do this? With which port this library comes?


----------



## bludilnik (Jun 2, 2010)

DutchDaemon said:
			
		

> http://forums.freebsd.org/showthread.php?t=14655



You see i don't have nor libintl.so.8 nor libintl.so.9 on my system at all.


----------



## expl (Jun 2, 2010)

libintl is part of devel/gettext port.


----------



## bludilnik (Jun 2, 2010)

I have found the solution that worked for me. I've installed freebsd 7.2 on virtual machine and get that libintl.so.9 library from it. Next i've done as DutchDaemon has wrote in this thread http://forums.freebsd.org/showthread.php?t=14655 - have created a simlink with libintl.so.8 name. `sudo ln -s libintl.so.9 libintl.so.8` There was another problem in this situation - my original FreeBSD box have denied to let me in, because my defaul shell was bash both for user and root accounts, and bash has denied to work for me without libintl.so.8. So i reboot in single user mode, have remounted / filesistem in rw mode (othervise it won't let make changes to any files) with `mount -u /`, and changed the shell to sh. After reboot i have made pkgdb -F and it has build a gettext for me wery well and fixed stalled dependencies.

P.S.
I don't know was this way right or not but it worked.


----------



## bludilnik (Jun 2, 2010)

expl said:
			
		

> libintl is part of devel/gettext port.



It's very strange, because gettext won't compile without libintl.so.8 :\


----------



## expl (Jun 2, 2010)

http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/gettext/pkg-plist?rev=1.42

Its there in the plist, if you have troubles compiling just pull it from packages.


----------



## vwbusguy (Jun 19, 2010)

*Circular dep*

It seems there is a bit of a circular dependency.  xz is a dep of gettext and gettext contains a lib needed to compile xz.

What worked for me is:  `pkg_add -r gettext ; cd /usr/ports/archivers/xz ; make install clean`

If you deinstall gettext first it won't work, and if you try to reinstall gettext it will bomb while trying to compile xz.  But after installing gettext by package, then compiling xz, you can then compile the gettext port.


----------



## vwbusguy (Jun 19, 2010)

The same is true for libtool, which is also needed to compile gettext, but also needs this lib to compile, itself.  Perhaps splitting the gettext port to separate this lib may be helpful?


----------



## radacina (Jun 17, 2011)

Boot in single-user mode,

```
mount -u / 
mount /usr
mount /var
mount /tmp
ifconfig nfe0(my case!) 192......../24
route add default 192............
cd /usr/ports/shells/bash
make deinstall
make configure
make
make install
```
Worked for me. Hope that helps.


----------



## radacina (Jun 17, 2011)

Wow bash works but, since libintl.so.8 is not present anymore due to portupgrade you should do:
`ln -s /usr/local/lib/libintl.so.9 /usr/local/lib/libintl.so.8`
that should fix (somehow) the other apps requiring libintl.so.8.


----------



## SirDice (Jun 17, 2011)

radacina said:
			
		

> now bash works but, since libintl.so.8 is not present anymore due to portupgrade you should do:
> ln -s /usr/local/lib/libintl.so.9 /usr/local/lib/libintl.so.8
> that should fix (somehow) the other apps requiring libintl.so.8



No, no, NO!

Fix the dependency issue! Not circumvent it. You'll run into serious trouble if you keep solving issues like this this way.


----------



## radacina (Jun 17, 2011)

SirDice said:
			
		

> No, no, NO!
> 
> Fix the dependency issue! Not circumvent it. You'll run into serious trouble if you keep solving issues like this this way.



Is there any way of finding out what packages depend on something (in this case libintl.so.8)?


----------



## SirDice (Jun 17, 2011)

radacina said:
			
		

> Is there any way of finding out what packages depend on something (in this case libintl.so.8)?



`# pkg_info -Rx gettext`


----------

