Solved Big problems with 2 shared libraries

I upgraded my System from 12.1 to 12.2. No Problem.
If I update my System I the following messages, but update is possible.

Code:
(py36-cffi-1.13.2) /usr/local/lib/python3.6/site-packages/_cffi_backend.so - required shared library libffi.so.6 not found

How can I solve this problem? It works all well, but I feel disturbed by this message.

Greets from Germany.
Sewulba
 
Last edited:
Thanks for your reply.
I made I dry run and got this.
Code:
[0]FreeBSD ~ # pkg autoremove -n
Checking integrity... done (0 conflicting)
Nothing to do.
[0]FreeBSD ~ #
 
I have much py36 packages on my system:
Code:
[0]FreeBSD ~ # pkg info | grep py36
py36-GeoIP2-2.9.0              MaxMind GeoIP2 Python API
py36-asciinema-2.0.2           Tool for recording and sharing terminal sessions
py36-asn1crypto-0.24.0         ASN.1 library with a focus on performance and a pythonic API
py36-bottle-0.12.15_1          Fast and simple WSGI-framework for small web-applications
py36-certifi-2019.9.11         Mozilla SSL certificates
py36-cffi-1.13.2               Foreign Function Interface for Python calling C code
py36-chardet-3.0.4_3           Universal encoding detector for Python 2 and 3
py36-click-7.0                 Python package for creating command line interfaces
py36-cryptography-2.6.1        Cryptographic recipes and primitives for Python developers
py36-future-0.18.2             Clean single-source support for Python 3 and 2
py36-glances-3.1.3             CLI curses based monitoring tool for GNU/Linux and BSD OS
py36-idna-2.8                  Internationalized Domain Names in Applications (IDNA)
py36-maxminddb-1.4.1_1         Python module for reading MaxMind DB file
py36-openssl-19.0.0            Python interface to the OpenSSL library
py36-pip-19.1.1                Tool for installing and managing Python packages
py36-pip-tools-4.3.0           Keep your pinned dependencies fresh
py36-psutil-5.6.7_1            Process utilities module for Python
py36-pycparser-2.19            C parser in Python
py36-pysocks-1.7.1             Python SOCKS module
py36-requests-2.22.0           HTTP library written in Python for human beings
py36-setuptools-44.0.0         Python packages installer
py36-six-1.12.0                Python 2 and 3 compatibility utilities
py36-sqlite3-3.6.12_7          Standard Python binding to the SQLite3 library (Python 3.6)
py36-urllib3-1.25.6,1          HTTP library with thread-safe connection pooling, file post, and more

Should I delete it by pkg remove and install after that the py37-...Packages again?
Or is there a better possibility?

Greets
Sewulba
 
Are you using packages or ports? When was the last time you updated your ports/packages? If you used pkg-upgrade(8) all these 3.6 packages would have been automatically replaced by 3.7 versions.
 
I got this one:

Code:
[0]FreeBSD ~ # pkg version -vRL=
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
GeoIP-1.6.12_3                     ?   orphaned: net/GeoIP
bro-2.6.4_1                        ?   orphaned: security/bro
py27-GeoIP2-3.0.0                  ?   orphaned: net/py-GeoIP2
py27-maxminddb-1.5.2_1             ?   orphaned: net/py-maxminddb
py36-GeoIP2-2.9.0                  ?   orphaned: net/py-GeoIP2
py36-asciinema-2.0.2               ?   orphaned: textproc/py-asciinema
py36-asn1crypto-0.24.0             ?   orphaned: devel/py-asn1crypto
py36-bottle-0.12.15_1              ?   orphaned: www/py-bottle
py36-certifi-2019.9.11             ?   orphaned: security/py-certifi
py36-cffi-1.13.2                   ?   orphaned: devel/py-cffi
py36-chardet-3.0.4_3               ?   orphaned: textproc/py-chardet
py36-click-7.0                     ?   orphaned: devel/py-click
py36-cryptography-2.6.1            ?   orphaned: security/py-cryptography
py36-future-0.18.2                 ?   orphaned: devel/py-future
py36-glances-3.1.3                 ?   orphaned: sysutils/py-glances
py36-idna-2.8                      ?   orphaned: dns/py-idna
py36-maxminddb-1.4.1_1             ?   orphaned: net/py-maxminddb
py36-openssl-19.0.0                ?   orphaned: security/py-openssl
py36-pip-19.1.1                    ?   orphaned: devel/py-pip
py36-pip-tools-4.3.0               ?   orphaned: devel/py-pip-tools
py36-psutil-5.6.7_1                ?   orphaned: sysutils/py-psutil
py36-pycparser-2.19                ?   orphaned: devel/py-pycparser
py36-pysocks-1.7.1                 ?   orphaned: net/py-pysocks
py36-requests-2.22.0               ?   orphaned: www/py-requests
py36-six-1.12.0                    ?   orphaned: devel/py-six
py36-urllib3-1.25.6,1              ?   orphaned: net/py-urllib3
 
Right, these are orphaned. I suspect they're dependencies of net/GeoIP. That port has been deprecated for some time. According to the MOVED instructions you should use net/libmaxminddb instead. Or if you don't need it, remove it. Then pkg-autoremove(8) will probably remove all these too.

security/bro is also deprecated a long time ago. Removing that will probably clean up the rest. You really need to run pkg-upgrade(8) more often, it looks like you don't update at all or at most once a year.
 
I use pkg upgrade and so on several time the month. So I wonder.

---
I removed all orphaned Package now by hand. I think all is okay now:

Code:
[0]FreeBSD ~ # pkg version -vRL=
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.

Many, many thanks for the Super help here.
 
If I make update on my FreeBSD System I use a script. There are the following commands on it:

Code:
/usr/sbin/pkg update
/usr/sbin/pkg upgrade
/usr/sbin/pkg check -B -d
/usr/sbin/pkg clean -a
/usr/sbin/pkg audit -F
/usr/sbin/freebsd-update fetch
/usr/sbin/freebsd-update install
/usr/sbin/pkg autoremove

Is there something missing?
 
I use that pkg version -vRL= a lot. Not only does it show which packages need updating but it also shows those orphaned packages. Orphaned packages can happen if the package fails to build for example. If you find them, do some investigating to see why they're orphaned. Some times ports are deprecated and should be replaced by something else (like the ones you had). If it's because of build failures you just need to wait until those issues are resolved, then they will be updated like everything else. But at the very least you're aware there's a problem that needs resolving.

After you removed some packages (using pkg-delete(8)) make sure to also run pkg-autoremove(8). That will clean up unused dependencies. Otherwise your system might get clogged up with a bunch of packages you don't need any more.
 
I'd be interested in learning how to investigate orphaned ports. Is this documented anywhere?
First you look at the ports tree, has the port been deprecated? Maybe changed names? If the port is still there then I look at the build status of the package repository, ports can fail to build for various reasons.

For the official packages this is useful: https://pkg-status.freebsd.org/
 
Back
Top