Problems instaling libpq-dev in ubuntu 20.04
Question:
I am currently trying to install libpq-dev to install psycopg2. The problem is, when I try to install it, an error occurs saying I don’t have the latest libpq5 version. However when I try to download the newer version of libpq5 the system says that I already have the latest version. An example of the error.
lhmendes@lhmendes-GA-78LMT-S2P:~$ sudo apt-get install libpq-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libpq-dev : Depends: libpq5 (= 12.4-0ubuntu0.20.04.1) but 12.4-1.pgdg20.04+1 is to be installed
E: Unable to correct problems, you have held broken packages.
lhmendes@lhmendes-GA-78LMT-S2P:~$ sudo apt-get install libpq5
Reading package lists... Done
Building dependency tree
Reading state information... Done
libpq5 is already the newest version (12.4-1.pgdg20.04+1).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Answers:
I would say you have installed the latest libpq
(12.4-1
) but libpq-dev
needs older version (12.4-0
) and this makes problem.
You may try to install older libpq
apt-get install libpq==12.4-0ubuntu0.20.04.1
but if other program uses the latest version then older version can make problem with this program.
pgdg20
in 12.4-1.pgdg20.04+1
means it is not module from standard ubuntu
repo but from some other repo – probably postgresql
repo – and maybe this repo has also the latest version libpq-dev
. You would search 12.4-1.pgdg20.04+1
in Google and maybe you could find also libpg-dev
with 12.4-1.pgdg20.04+1
I found libpq-dev 12.4-1.pgdg20.04+1 and you can download .deb
file and install it.
Or you can add this postgresql repo and install with apt-get
. This method will also inform about updates and then you could install updates automatically.
Any newer version of libpq5 can cause this error. In my case it was libpq5=13.1-1.pgdg20.04+1.
It’s the similar answer as furus has given but the change is it’s libpq5 in ubuntu 20.04 (atleast in my case).
I fixed the issue by installing
sudo apt-get install libpq5=12.5-0ubuntu0.20.04.1
and then install liqpq-dev again
sudo apt-get install libpq-dev
This worked for me:
sudo apt-get install libpq5=12.7-0ubuntu0.20.04.1
I had to download this package and run
sudo dpkg -i ~/Downloads/libpq-dev_13.3-1.pgdg20.04+1_amd64.deb
I think this is because your libpg-dev is depending on libpg5=12.4-0ubuntu0.20.04.1 but 12.4-1.pgdg20.04+1 is to be installed in your machine that is why the error occurs when you sudo apt-get install libpg-dev
.
Therefore you can try sudo apt-get install libpg5=12.4-0ubuntu0.20.04.1
first,
after that, sudo apt-get install libpg-dev
.
I did this way to solve my problem which was similar to yours.
I have the same problem when I install psycopg2-binary
, It seems like it is caused by repository conflict.
In software & Updates
=> other software
Unselect https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal
.
sudo apt-get remove libpg5
sudo apt-get install libpg5 libpg-dev
Solved my problem
if you are trying to install it on Ubuntu 20.04 then run below command to install libpq-dev
Command1: sudo apt-get install libpq5=12.2-4
Command2:
sudo apt install libpq-dev
Link: https://ubuntu.pkgs.org/20.04/ubuntu-main-arm64/libpq-dev_12.2-4_arm64.deb.html
As of April 2023 the command is:
sudo apt-get install libpq5=12.12-0ubuntu0.20.04.1 && sudo apt-get install libpq-dev
When you’re using Ubuntu 22.04 try:
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1 && sudo apt-get install libpq-dev
Update package worked for me:
sudo apt update
sudo apt install libpg-dev
This problem persists in 22.04:
Os pacotes a seguir têm dependências desencontradas:
libpq-dev : Depende: libpq5 (= 14.3-0ubuntu0.22.04.1) mas 14.4-1.pgdg22.04+1 está para ser instalado
I had to revert libpq5 as per the error message above:
sudo apt-get install libpq5=14.3-0ubuntu0.22.04.1
You can find the latest version here.
https://packages.ubuntu.com/bionic/libpq-dev
What worked in my case was.
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1
The libpq5 package that worked for me corresponds to my version of ubuntu I found it at:
https://pkgs.org/download/libpq-dev
For ubuntu version 22.04.1
Then I was able to use sudo apt-get install libpq-dev
without problems.
The only solution that worked for me is
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1
sudo apt-get install libpq-dev
then
pip install psycopg2
Yes, upvote when this works for you.
Good luck.
This issue was fixed in pgadmin repo: it now provides a matching version of libpq-dev along with libpq5. You can update both packages to the latest version and remove pins (unless there is yet another flawed provider of the libpq5 package in your apt sources).
$ dpkg -l libpq*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-==================-============-============================================
ii libpq-dev 15.1-1.pgdg20.04+1 amd64 header files for libpq5 (PostgreSQL library)
ii libpq5:amd64 15.1-1.pgdg20.04+1 amd64 PostgreSQL C client library
I am currently trying to install libpq-dev to install psycopg2. The problem is, when I try to install it, an error occurs saying I don’t have the latest libpq5 version. However when I try to download the newer version of libpq5 the system says that I already have the latest version. An example of the error.
lhmendes@lhmendes-GA-78LMT-S2P:~$ sudo apt-get install libpq-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libpq-dev : Depends: libpq5 (= 12.4-0ubuntu0.20.04.1) but 12.4-1.pgdg20.04+1 is to be installed
E: Unable to correct problems, you have held broken packages.
lhmendes@lhmendes-GA-78LMT-S2P:~$ sudo apt-get install libpq5
Reading package lists... Done
Building dependency tree
Reading state information... Done
libpq5 is already the newest version (12.4-1.pgdg20.04+1).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
I would say you have installed the latest libpq
(12.4-1
) but libpq-dev
needs older version (12.4-0
) and this makes problem.
You may try to install older libpq
apt-get install libpq==12.4-0ubuntu0.20.04.1
but if other program uses the latest version then older version can make problem with this program.
pgdg20
in 12.4-1.pgdg20.04+1
means it is not module from standard ubuntu
repo but from some other repo – probably postgresql
repo – and maybe this repo has also the latest version libpq-dev
. You would search 12.4-1.pgdg20.04+1
in Google and maybe you could find also libpg-dev
with 12.4-1.pgdg20.04+1
I found libpq-dev 12.4-1.pgdg20.04+1 and you can download .deb
file and install it.
Or you can add this postgresql repo and install with apt-get
. This method will also inform about updates and then you could install updates automatically.
Any newer version of libpq5 can cause this error. In my case it was libpq5=13.1-1.pgdg20.04+1.
It’s the similar answer as furus has given but the change is it’s libpq5 in ubuntu 20.04 (atleast in my case).
I fixed the issue by installing
sudo apt-get install libpq5=12.5-0ubuntu0.20.04.1
and then install liqpq-dev again
sudo apt-get install libpq-dev
This worked for me:
sudo apt-get install libpq5=12.7-0ubuntu0.20.04.1
I had to download this package and run
sudo dpkg -i ~/Downloads/libpq-dev_13.3-1.pgdg20.04+1_amd64.deb
I think this is because your libpg-dev is depending on libpg5=12.4-0ubuntu0.20.04.1 but 12.4-1.pgdg20.04+1 is to be installed in your machine that is why the error occurs when you sudo apt-get install libpg-dev
.
Therefore you can try sudo apt-get install libpg5=12.4-0ubuntu0.20.04.1
first,
after that, sudo apt-get install libpg-dev
.
I did this way to solve my problem which was similar to yours.
I have the same problem when I install psycopg2-binary
, It seems like it is caused by repository conflict.
In software & Updates
=> other software
Unselect https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal
.
sudo apt-get remove libpg5
sudo apt-get install libpg5 libpg-dev
Solved my problem
if you are trying to install it on Ubuntu 20.04 then run below command to install libpq-dev
Command1: sudo apt-get install libpq5=12.2-4
Command2:
sudo apt install libpq-dev
Link: https://ubuntu.pkgs.org/20.04/ubuntu-main-arm64/libpq-dev_12.2-4_arm64.deb.html
As of April 2023 the command is:
sudo apt-get install libpq5=12.12-0ubuntu0.20.04.1 && sudo apt-get install libpq-dev
When you’re using Ubuntu 22.04 try:
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1 && sudo apt-get install libpq-dev
Update package worked for me:
sudo apt update
sudo apt install libpg-dev
This problem persists in 22.04:
Os pacotes a seguir têm dependências desencontradas:
libpq-dev : Depende: libpq5 (= 14.3-0ubuntu0.22.04.1) mas 14.4-1.pgdg22.04+1 está para ser instalado
I had to revert libpq5 as per the error message above:
sudo apt-get install libpq5=14.3-0ubuntu0.22.04.1
You can find the latest version here.
https://packages.ubuntu.com/bionic/libpq-dev
What worked in my case was.
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1
The libpq5 package that worked for me corresponds to my version of ubuntu I found it at:
https://pkgs.org/download/libpq-dev
For ubuntu version 22.04.1
Then I was able to use sudo apt-get install libpq-dev
without problems.
The only solution that worked for me is
sudo apt-get install libpq5=14.5-0ubuntu0.22.04.1
sudo apt-get install libpq-dev
then
pip install psycopg2
Yes, upvote when this works for you.
Good luck.
This issue was fixed in pgadmin repo: it now provides a matching version of libpq-dev along with libpq5. You can update both packages to the latest version and remove pins (unless there is yet another flawed provider of the libpq5 package in your apt sources).
$ dpkg -l libpq*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-==================-============-============================================
ii libpq-dev 15.1-1.pgdg20.04+1 amd64 header files for libpq5 (PostgreSQL library)
ii libpq5:amd64 15.1-1.pgdg20.04+1 amd64 PostgreSQL C client library