# upgraded to 12.2-RELEASE, library missing



## olafz (Nov 10, 2020)

As upgrading my 12.1-RELEASE system from source failed (again), I did a "binary" upgrade. The system runs fine, but one library seems to be missing. How come?

`# telnet
ld-elf.so.1: Shared object "libkrb5.so.11" not found, required by "telnet"`


----------



## SirDice (Nov 10, 2020)

Did you run `freebsd-upgrade install` twice?


----------



## olafz (Nov 10, 2020)

SirDice said:


> Did you run `freebsd-upgrade install` twice?


Yes, `freebsd-upgrade` told me to do so.


----------



## SirDice (Nov 10, 2020)

What does `ls -al /usr/lib/libkrb5*` show?


```
dice@williscorto:~ % freebsd-version -uk
12.2-RELEASE
12.2-RELEASE
dice@williscorto:~ % ls -al /usr/lib/libkrb5*
-r--r--r--  1 root  wheel  5660274 Oct 12 20:47 /usr/lib/libkrb5.a
lrwxr-xr-x  1 root  wheel       13 Nov  8 16:30 /usr/lib/libkrb5.so -> libkrb5.so.11
-r--r--r--  1 root  wheel   519168 Nov  8 16:30 /usr/lib/libkrb5.so.11
-r--r--r--  1 root  wheel  5757774 Oct 12 20:47 /usr/lib/libkrb5_p.a
```


----------



## oz42 (Nov 10, 2020)

`root@betsy:/usr/ports # ls -al /usr/lib/libkrb5*
/bin/ls: No match.`
Just guessing: this machine was built from sources with 
	
	



```
WITHOUT_KERBEROS=YES
```
 in my src.conf(). So I think that freebsd-update() did not find the Kerberos library and did not install them.

If that is true, my only way to go is the `make buildworld` way. But building the world fails on my two 12.2-RELEASE systems.


----------



## SirDice (Nov 11, 2020)

oz42 said:


> So I think that freebsd-update() did not find the Kerberos library and did not install them.


That sounds very reasonable. I recently converted a 12-STABLE machine to 12.2-RELEASE so I could update it more easily. But I have always built a 'full' world, I never excluded anything.


----------



## _martin (Nov 11, 2020)

I rarely use `freebsd-update`, I'm used to build all from src. If you have problems it's maybe worth purging the whole directory and let the svn fetch all again. 
But as freebsd-update(8) page says:

```
Note that updates are only available
     if they are being built for the FreeBSD release and architecture being
     used; in particular, the FreeBSD Security Team only builds updates for
     releases shipped in binary form by the FreeBSD Release Engineering Team,
```
From this I think you should really not mix-n-match src/bin updates.


----------



## SirDice (Nov 11, 2020)

_martin said:


> From this I think you should really not mix-n-match src/bin updates.


Definitely. But we're not really mixing here. The OP is trying to update a system in such a way he can use freebsd-update(8) from that point onward. I've done something similar many times before and it's not problem. But the process does require a "full" world build, without excluding any parts (src.conf(5)). Not being able to buildworld due to errors doesn't help getting there 

As you say, I also think getting a fresh checkout of /usr/src/ might be in order here. As the system is now, at least partially, at 12.2-RELEASE I would suggest fetching base/releng/12.2 and do a full world build and install. When that is successful the machine can be kept up to date with freebsd-update(8).


----------

