Errors ./validate.php

Hi there, just built a fresh install with Debian 12.6, and moved my old data from a previous (Debian 11) install. My config is straight from the install guide.

Data moved over fine, but getting these errors on validate.

librenms@m:~$ ./validate.php
===========================================
Component | Version
--------- | -------
LibreNMS  | 24.7.0-2-g10669226f (2024-07-17T11:50:19-04:00)
DB Schema | 2024_07_13_133839_modify_ent_physical_defaults (295)
PHP       | 8.2.20
Python    | 3.11.2
Database  | MariaDB 10.11.6-MariaDB-0+deb12u1
RRDTool   | 1.7.2
SNMP      | 5.9.3
===========================================

[OK]    Composer Version: 2.7.7
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database Schema is current
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Active pollers found
[OK]    Dispatcher Service not detected
[OK]    Locks are functional
[OK]    Python poller wrapper is polling
[OK]    Redis is unavailable
[FAIL]  Python3 module issue found: 'Required packages: ['PyMySQL!=1.0.0', 'python-dotenv', 'redis>=4.0', 'setuptools', 'psutil>=5.6.0', 'command_runner>=1.3.0']
Package not found: The 'command_runner>=1.3.0' distribution was not found and is required by the application
'
	[FIX]:
	pip3 install -r /opt/librenms/requirements.txt
[OK]    rrd_dir is writable
[OK]    rrdtool version ok
[WARN]  Your local git contains modified files, this could prevent automatic updates.
	[FIX]:
	You can fix this with ./scripts/github-remove
	Modified Files:
	 rrd/.gitignore

When I run install -r /opt/librenms/requirements.txt I get the following error.


librenms@m:~$ pip3 install -r /opt/librenms/requirements.txt
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Found these old threads
./daily.sh broke SNMP Poller Service
Validation gives a warning about Python dependencies check not running as user librenms - #17 by penfold1972

I tried a few of the solutions there, but couldn’t resolve the error. I’m not sure about running it with -break-system-packages

The second error gives me this

librenms@m:~$ ./scripts/github-remove
usage: github-remove [-h] (-d | -s | -r) [-v]
github-remove: error: one of the arguments -d/--discard -s/--save -r/--restore is required

Not sure how to resolve this either.

Thanks in advance.

This Issue my give some insights…

It’s a shame the Python venv work seems to have stalled. But the last comment to use pip3 install command-runner --break-system-packages might at least be a workaround until that picks back up or Debian creates a working python3-command-runner package for Bookworm.

Thanks! I got it working by doing this.

Just tested on Debian 12:

  1. install following doc
  2. validate.php fails on python module as described
  3. as librenms user, in librenms install dir : python3 -m venv venv
  4. source venv/bin/activate then pip3 install -r requirements.txt
  5. edit /opt/librenms/.profile to set PATH to use venv binaries : export PATH=/opt/librenms/venv/bin:$PATH
  6. resume documented install procedure : validate.php succeeds. Yay!

This worked for me too on Debian 12 with some minor adjustments.
I had to install python3.11-venv and source .profile before i ran ./validate.php

However, i get the error when i validate from the web ui or relog without manually sourcing .profile