# XFCE wont start due to missing libz.so.5



## Maisondouf (Nov 6, 2011)

This night (in France), I follow the instruction here to upgrade from 8.2-RELEASE to 9.0-RC1.

All seem to be good, I never have some error messages during upgrade, but after rebooting "startx" and "starxfce4" says the same message.


```
Shared object "libz.so.5" not found, required by "X" giving up
```

Do I have to re-install X and Xfce?


----------



## aragon (Nov 6, 2011)

Maisondouf said:
			
		

> Do I have to re-install X and Xfce?


You probably should, but in the mean time you can try remap the old libraries to the new ones with /etc/libmap.conf.  eg:


```
libz.so.5   libz.so.6
```

I'm assuming libz.so.6 is the file name of the new library in 9.0.


----------



## sk8harddiefast (Nov 6, 2011)

```
cd /usr/lib
ln -s libz.so.6 libz.so.5
```
Now startx please


----------



## Maisondouf (Nov 6, 2011)

sk8harddiefast: You win! Quite simple in fact, but I never think to make this. I have in my mind to re-install all 8.2. 

Edit: I give my answer too quickly. Xfce starts but without mouse and keyboard. A lot of libs missing as libutils.so.8. I try the same method.


----------



## wblock@ (Nov 6, 2011)

Maisondouf said:
			
		

> This night (in France), I follow the instruction here to upgrade from 8.2-RELEASE to 9.0-RC1.
> 
> All seem to be good, I never have some error messages during upgrade, but after rebooting "startx" and "starxfce4" says the same message.
> 
> ...



After updating from FreeBSD-8 to -9, rebuild *all* installed ports.  See the procedure at the very end of portmaster(8).

If you link or copy old libraries, be sure to make a note of it which, so they can be deleted manually before you start rebuilding ports.


----------



## Maisondouf (Nov 6, 2011)

thanks, I'll try this, but ftp site is not ok for sysinstall or bsdinstall.

The tree structure is not the same as 8.2

every time I want to manualy build the sources are loaded from 9.0-CURRENT repo and not 9.0-RC1.

I have got too much errors, so I decide to clear the entire slice and re-install 8.2 from usb stick . 

I need to have a stable version running to make kernel in arm achitecture.

I'll try the update another day, Thanks


----------



## wblock@ (Nov 6, 2011)

Maisondouf said:
			
		

> thanks, I'll try this, but ftp site is not ok for sysinstall or bsdinstall.
> 
> The tree structure is not the same as 8.2



That would be packages, not ports.  Packages should be fine, as long as they're all meant for FreeBSD-9.



> every time I want to manualy build the sources are loaded from 9.0-CURRENT repo and not 9.0-RC1.



-CURRENT and -STABLE only apply to the operating system, not ports.


----------



## sk8harddiefast (Nov 6, 2011)

> Xfce start but without mouse and keyboard


First of all

```
ee /etc/rc.conf
```
and add this 2 lines

```
hald_enable="YES"
dbus_enable="YES"
```
Without this 2 lines, keyboard or mouse will not work


----------



## wblock@ (Nov 6, 2011)

sk8harddiefast said:
			
		

> Without this 2 lines, keyboard or mouse will not work



In general, yes, unless you've compiled xorg-server without HAL.  But in this case it's probably because of dbus or hal not being able to run because they're looking for the wrong libraries.


----------



## sk8harddiefast (Nov 6, 2011)

Then I was going to make the same as the post 3 for all the missing libraries. (Where in fact they are not missing. Just the name of the library for some reason changed. The library is there. Just with another name and system can not see it, so complains) I don't know if is wrong somehow but works 100% everytime and saved me millions of time. I use xfce too and this was the way to startx. From then, never had any problems with xfce or startx. Just works.


----------



## kpa (Nov 6, 2011)

The library has changed and the name as well, you may get away with softlinking but you can't rely on it. One day the next library version introduces an incompatible change and softlinking won't work anymore. The proper way to deal with shared library version bumps in the base OS is to do:

`# make delete-old`
`# make delete-old-libs`

after doing `# make installworld` (in single user mode of course) and then rebuild the ports that depend on those shared libraries.


----------



## wblock@ (Nov 6, 2011)

Faking the existence of an older library might work okay as an emergency measure, but it's not a set-and-forget thing.  Think of it as a non-inflatable "donut" spare tire, just intended to get you somewhere that can actually fix the problem.  (And yes, I do occasionally see cars with multiple "donut" tires out driving around.)

Detect those fake libraries[1], remove them, and use pkg_libchk(1) to figure out what ports really need to be rebuilt.  After a major version upgrade of the OS, like FreeBSD-8 to FreeBSD-9, that isn't needed, just rebuild every installed port.[2]

[1] fastfakelib is a little Ruby program I wrote a while back to find those.  At present only looks for symlinks, not copied libraries.  (Don't copy libraries, symlinking is a little less bad.)
[2] Technically, you can get away with running old installed ports on a new OS.  As long as you never upgrade any of them, or install any new ones, they'll still work.  But few computers are used that way.


----------



## Todd42 (Dec 3, 2011)

I am new to FreeBSD.  I upgraded from FreeBSD 8.2 - 9.0 RC2, and I am getting the same error.  However, after reading what is starting to feel like countless man pages, I am not getting anywhere.  The pkg_add command is also failing.  I read this article, and I followed all of the links stemming from it.  
	
	



```
Shared opject "libz.so.5" not found, required by "X"^Cgiving up.
```
  I am almost ready to take the advice of "X" and give up myself.


----------



## tyr_5B (Dec 4, 2011)

Just install misc/compat8x? Should let you keep most ports running, except for the stuff that needs to be compiled against the new kernel sources.


----------



## wblock@ (Dec 4, 2011)

Todd42 said:
			
		

> I upgraded from FreeBSD 8.2 - 9.0 RC2, and I am getting the same error.



libz is a system library.  After the upgrade to FreeBSD-9, the installed packages are still looking for the old 8.x version--which is gone.  Rebuilding them, all of them, will fix that problem.  Or deinstalling packages and installing new ones that are for the new version of the operating system.


----------

