It's no possible to install NetBox in AlmaLinux 9.4 (couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config') #9685

Closed
opened 2025-12-29 21:20:51 +01:00 by adam · 9 comments
Owner

Originally created by @Deicidium on GitHub (May 15, 2024).

Originally assigned to: @arthanson on GitHub.

Deployment Type

Self-hosted

NetBox Version

v4.0.2

Python Version

3.11

Steps to Reproduce

Execute the command:

On AlmaLinux 9.4 with Python 3.11 installed from official repos:

sudo PYTHON=/usr/bin/python3.11 ./upgrade.sh

pip packages psycopg2-binary, psycopg2 are installed. PostgreSQL 16 installed from the official repo, libpq-devel and libpq-devel are installed too.

Path /usr/pgsql-16/bin/pg_config available system wide.

/tmp are writable with defaults configuration, SELinux are permissive, Fapolicyd are permissive too.

Expected Behavior

NetBox 4.0.2 Installed

Observed Behavior

The installation fails with the message:

nstalling build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error

× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
running dist_info
creating /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info
writing /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/top_level.txt
writing manifest file '/tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/SOURCES.txt'
couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config'
error: [Errno 2] No such file or directory: 'pg_config'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Originally created by @Deicidium on GitHub (May 15, 2024). Originally assigned to: @arthanson on GitHub. ### Deployment Type Self-hosted ### NetBox Version v4.0.2 ### Python Version 3.11 ### Steps to Reproduce Execute the command: On AlmaLinux 9.4 with Python 3.11 installed from official repos: sudo PYTHON=/usr/bin/python3.11 ./upgrade.sh pip packages psycopg2-binary, psycopg2 are installed. PostgreSQL 16 installed from the official repo, libpq-devel and libpq-devel are installed too. Path /usr/pgsql-16/bin/pg_config available system wide. /tmp are writable with defaults configuration, SELinux are permissive, Fapolicyd are permissive too. ### Expected Behavior NetBox 4.0.2 Installed ### Observed Behavior The installation fails with the message: nstalling build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [8 lines of output] running dist_info creating /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info writing /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/PKG-INFO writing dependency_links to /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/dependency_links.txt writing top-level names to /tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/top_level.txt writing manifest file '/tmp/pip-modern-metadata-o3bwabcx/psycopg_c.egg-info/SOURCES.txt' couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config' error: [Errno 2] No such file or directory: 'pg_config' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details.
adam added the type: bugstatus: revisions needed labels 2025-12-29 21:20:51 +01:00
adam closed this issue 2025-12-29 21:20:52 +01:00
Author
Owner

@arthanson commented on GitHub (May 16, 2024):

@Deicidium it looks like it is failing on installing the new psycopg3 package - pyscopg2 is replaced by psycopg3 in NetBox 4, it is in requirements.txt as:
psycopg[c,pool]==3.1.19

Can you please try installing it directly with pip, see https://www.psycopg.org/psycopg3/docs/basic/install.html, there should be a package for AlmaLinux.

@arthanson commented on GitHub (May 16, 2024): @Deicidium it looks like it is failing on installing the new psycopg3 package - pyscopg2 is replaced by psycopg3 in NetBox 4, it is in requirements.txt as: `psycopg[c,pool]==3.1.19` Can you please try installing it directly with pip, see https://www.psycopg.org/psycopg3/docs/basic/install.html, there should be a package for AlmaLinux.
Author
Owner

@Deicidium commented on GitHub (May 16, 2024):

The Installation doesn't work with the package python3-psycopg3-3.1.18-4.el9.noarch :

Name : python3-psycopg3
Version : 3.1.18
Release : 4.el9
Architecture : noarch
Size : 1.4 M
Source : python-psycopg3-3.1.18-4.el9.src.rpm
Repository : @System
From repo : epel
Summary : %{Summary}
URL : https://www.psycopg.org/psycopg3/
License : LGPL-3.0-only
Description : %{description}

Installing with pip doesn't work either:

/usr/bin/python3.11 -m pip install psycopg

/usr/bin/python3.11 -m pip install psycopg-binary

The output:

Using cached psycopg_c-3.1.19.tar.gz (562 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error

× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
running dist_info
creating /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info
writing /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/top_level.txt
writing manifest file '/tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/SOURCES.txt'
couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config'
error: [Errno 2] No such file or directory: 'pg_config'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.

@Deicidium commented on GitHub (May 16, 2024): The Installation doesn't work with the package python3-psycopg3-3.1.18-4.el9.noarch : Name : python3-psycopg3 Version : 3.1.18 Release : 4.el9 Architecture : noarch Size : 1.4 M Source : python-psycopg3-3.1.18-4.el9.src.rpm Repository : @System From repo : epel Summary : %{Summary} URL : https://www.psycopg.org/psycopg3/ License : LGPL-3.0-only Description : %{description} Installing with pip doesn't work either: /usr/bin/python3.11 -m pip install psycopg /usr/bin/python3.11 -m pip install psycopg-binary The output: Using cached psycopg_c-3.1.19.tar.gz (562 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [8 lines of output] running dist_info creating /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info writing /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/PKG-INFO writing dependency_links to /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/dependency_links.txt writing top-level names to /tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/top_level.txt writing manifest file '/tmp/pip-modern-metadata-8g8_wr0h/psycopg_c.egg-info/SOURCES.txt' couldn't run 'pg_config' --includedir: [Errno 2] No such file or directory: 'pg_config' error: [Errno 2] No such file or directory: 'pg_config' [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip.
Author
Owner

@ekrichbaum commented on GitHub (May 16, 2024):

You need to install another base library to your OS. The name varies a little from platform to platform but is probably something like libpq-devel or similar. you can "dnf whatprovides pg_config" or similar to find it from your distro.

@ekrichbaum commented on GitHub (May 16, 2024): You need to install another base library to your OS. The name varies a little from platform to platform but is probably something like libpq-devel or similar. you can "dnf whatprovides pg_config" or similar to find it from your distro.
Author
Owner

@Deicidium commented on GitHub (May 16, 2024):

Solved:

Packages postgresql16-devel and libpq-devel are mutually exclusive. If one is installed, it does not allow the installation of the other and fails without an apparent error message. The solution was to install only package libpq-devel.

@Deicidium commented on GitHub (May 16, 2024): Solved: Packages postgresql16-devel and libpq-devel are mutually exclusive. If one is installed, it does not allow the installation of the other and fails without an apparent error message. The solution was to install only package libpq-devel.
Author
Owner

@Th3Bard commented on GitHub (Jun 12, 2024):

@Deicidium would you be able to provide the exact steps you took to resolve this? I have been unsuccessful getting passed this error. I am getting the EXACT same issue you posted here.

RHEL 8.9

upgrading from 3.7.0 > 4.0.5 (though I also tried upgrading to 3.7.8 first and ended up in the same place).

error: [Errno 2] No such file or directory: 'pg_config'

sudo find / -name pg_config 2>/dev/null yields
/usr/pgsql-15/bin/pg_config
/usr/pgsql-12/bin/pg_config

which pg_config yields:
/usr/pgsql-15/bin/pg_config

I have removed postgresql15-devel and installed libpq-devel and I land in the same place.

Any help is GREATLY appreciated!

@Th3Bard commented on GitHub (Jun 12, 2024): @Deicidium would you be able to provide the exact steps you took to resolve this? I have been unsuccessful getting passed this error. I am getting the EXACT same issue you posted here. RHEL 8.9 upgrading from 3.7.0 > 4.0.5 (though I also tried upgrading to 3.7.8 first and ended up in the same place). error: [Errno 2] No such file or directory: 'pg_config' sudo find / -name pg_config 2>/dev/null yields /usr/pgsql-15/bin/pg_config /usr/pgsql-12/bin/pg_config which pg_config yields: /usr/pgsql-15/bin/pg_config I have removed postgresql15-devel and installed libpq-devel and I land in the same place. Any help is GREATLY appreciated!
Author
Owner

@leander091 commented on GitHub (Jun 20, 2024):

@Th3Bard,

I had the same issue on a Redhat based distro and was able to fix it by adding a link to pg_config using update-alternatives.

When using PostgreSQL from the official repo it will be installed in a versioned location but it will not be added to the system PATH. To fix that the devs of the database includes links from the versioned dir to /usr/bin but pg_config is not included.

I created the required link like the command below and was able to upgrade my Netbox install without any futher issue.
sudo update-alternatives --install /usr/bin/pg_config pgsql-config /usr/pgsql-15/bin/pg_config 100

@leander091 commented on GitHub (Jun 20, 2024): @Th3Bard, I had the same issue on a Redhat based distro and was able to fix it by adding a link to pg_config using update-alternatives. When using PostgreSQL from the official repo it will be installed in a versioned location but it will not be added to the system PATH. To fix that the devs of the database includes links from the versioned dir to **/usr/bin** but **pg_config** is not included. I created the required link like the command below and was able to upgrade my Netbox install without any futher issue. `sudo update-alternatives --install /usr/bin/pg_config pgsql-config /usr/pgsql-15/bin/pg_config 100`
Author
Owner

@Th3Bard commented on GitHub (Jun 24, 2024):

@leander091 thank you! this did the trick. I appreciate you SO damn much haha.

@Th3Bard commented on GitHub (Jun 24, 2024): @leander091 thank you! this did the trick. I appreciate you SO damn much haha.
Author
Owner

@leander091 commented on GitHub (Jun 24, 2024):

@leander091 thank you! this did the trick. I appreciate you SO damn much haha.

Glad to hear that it worked as well on your environment! Took me more time than expected to troubleshoot this and to create a workaround.

@leander091 commented on GitHub (Jun 24, 2024): > @leander091 thank you! this did the trick. I appreciate you SO damn much haha. Glad to hear that it worked as well on your environment! Took me more time than expected to troubleshoot this and to create a workaround.
Author
Owner

@flojax commented on GitHub (Aug 23, 2024):

came here just to say a big thanks, I was struggling to upgrade netbox for ages!!! @Th3Bard

@flojax commented on GitHub (Aug 23, 2024): came here just to say a big thanks, I was struggling to upgrade netbox for ages!!! @Th3Bard
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#9685