Ponieważ na serwerze występowały pewne problemy z pracą sterownika bazy danych, trzeba było sprawdzić jaka wersja biblioteki libpq-dev jest zainstalowana. Oto kilka metod:
apt-cache
apt-cache policy libpq-dev libpq-dev: Installed: 12.11-0ubuntu0.20.04.1 Candidate: 12.11-0ubuntu0.20.04.1 Version table: *** 12.11-0ubuntu0.20.04.1 500 500 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages 100 /var/lib/dpkg/status 12.2-4 500 500 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 Packages
apt list
apt list -a libpq-dev Listing... Done libpq-dev/focal-updates,focal-security,now 12.11-0ubuntu0.20.04.1 amd64 [installed] libpq-dev/focal 12.2-4 amd64
aptitude
aptitude versions libpq-dev p 12.2-4 focal 500 i 12.11-0ubuntu0.20.04.1 focal-security,focal-updates 500
ldd
Dodatkowo, jeśli trzeba przeprowadzić niewielką „reverse-engineering” i odpowiedzieć na pytanie, jaki inne biblioteki zostały wykorzystane podczas kompilacji tej jednej biblioteki można posłużyć się poleceniem ldd:
ldd ./_psycopg.cpython-38-x86_64-linux-gnu.so linux-vdso.so.1 (0x00007fff09ce7000) libpq.so.5 => /lib/x86_64-linux-gnu/libpq.so.5 (0x00007f71f6dcc000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f71f6da9000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f71f6bb7000) libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f71f6b24000) [...]
pg_config
A jeśli mowa jest konkretnie o bibliotece dla PostgreSQL, to można też wykorzystać polecenie pgconfig –version
ls /usr/bin/pg_con* /usr/bin/pg_config /usr/bin/pg_config.libpq-dev /usr/bin/pg_conftool /usr/bin/pg_config.libpq-dev --version PostgreSQL 12.11 (Ubuntu 12.11-0ubuntu0.20.04.1)
Python
I na zakończenie jeszcze metoda z Pythona. Jeśli korzystasz z modułu psycopg2, to odwołując się do
psycopg2.__libpq_version__
możesz wyświetlić numer wersji libpq, z jaką został skompilowany moduł psycopg2
The psycopg2 module content — Psycopg 2.9.3 documentation