Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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') #16157

Closed
Deicidium opened this issue May 15, 2024 · 9 comments
Assignees
Labels
status: revisions needed This issue requires additional information to be actionable type: bug A confirmed report of unexpected behavior in the application

Comments

@Deicidium
Copy link

Deicidium commented May 15, 2024

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.

@Deicidium Deicidium added status: needs triage This issue is awaiting triage by a maintainer type: bug A confirmed report of unexpected behavior in the application labels May 15, 2024
@arthanson
Copy link
Collaborator

@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 arthanson added status: revisions needed This issue requires additional information to be actionable and removed status: needs triage This issue is awaiting triage by a maintainer labels May 15, 2024
@arthanson arthanson assigned arthanson and unassigned arthanson May 15, 2024
@Deicidium
Copy link
Author

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.

@ekrichbaum
Copy link

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.

@Deicidium
Copy link
Author

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.

@Th3Bard
Copy link

Th3Bard commented 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!

@leander091
Copy link

leander091 commented 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

@Th3Bard
Copy link

Th3Bard commented Jun 24, 2024

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

@leander091
Copy link

@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.

@flojax
Copy link

flojax commented Aug 23, 2024

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

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: revisions needed This issue requires additional information to be actionable type: bug A confirmed report of unexpected behavior in the application
Projects
None yet
Development

No branches or pull requests

6 participants