So my Librenms stopped working | "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found

A few hours after adding a new device the Librenms just gives me this:

Output of validate.php:

librenms@librenms:~$ ./validate.php

In PluginManager.php line 37:
                                                                            
  Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found  
                                                                            

===========================================
Component | Version
--------- | -------
LibreNMS  | 24.8.0-1-g70c2c543f (2024-08-15T22:26:47+02:00)
DB Schema | Not Connected (0)
PHP       | 8.3.10
Python    | 3.9.2
Database  | Not Connected
RRDTool   | 1.7.2
SNMP      | 5.9
===========================================

[OK]    Composer Version: 2.7.7
[OK]    Dependencies up-to-date.

Output of Librenms.log

Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 
Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found {"exception":"[object] (Error(code: 0): Interface \"LibreNMS\\Interfaces\\Plugins\\PluginManagerInterface\" not found at /opt/librenms/app/Plugins/PluginManager.php:37)"} 

I have not touched any Librenms files since a long time either, so I find this strange. And the device I added to Librenms a few hours before this “crash” was a Ubiquiti U7 Pro if that matter.

Same issue here. Did not touch anything and only a small home-deployment on raspi with Unifi USG and 2 Unifi APs.
Was there a change in the new verison 2024-08-15T?

LibreNMS\Interfaces\Plugins\ is empty and not using any plugin.

1 Like

Nice to see I’m not alone then!

Same!

librenms@BlackARM:~$ ./scripts/composer_wrapper.php install --no-dev

LibreNMS\ComposerHelper::preInstall
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

Problem 1
- paragonie/sodium_compat is locked to version v2.0.1 and an update of this package was not requested.
- paragonie/sodium_compat v2.0.1 requires php-64bit * → the php-64bit package is disabled by your platform config. Enable it again with “composer config platform.php-64bit --unset”.
Problem 2
- paragonie/sodium_compat v2.0.1 requires php-64bit * → the php-64bit package is disabled by your platform config. Enable it again with “composer config platform.php-64bit --unset”.
- web-token/jwt-library 3.4.6 requires paragonie/sodium_compat ^1.20|^2.0 → satisfiable by paragonie/sodium_compat[v2.0.1].
- web-token/jwt-library is locked to version 3.4.6 and an update of this package was not requested.

librenms@BlackARM:~$ ./daily.sh

In PluginManager.php line 37:

Interface “LibreNMS\Interfaces\Plugins\PluginManagerInterface” not found

Updating SQL-Schema FAIL

In PluginManager.php line 37:

Interface “LibreNMS\Interfaces\Plugins\PluginManagerInterface” not found

Cleaning up DB OK

In PluginManager.php line 37:

Interface “LibreNMS\Interfaces\Plugins\PluginManagerInterface” not found

librenms@BlackARM:~$ ./validate.php

In PluginManager.php line 37:

Interface “LibreNMS\Interfaces\Plugins\PluginManagerInterface” not found

===========================================

Component Version
LibreNMS 24.8.0-1-g70c2c543f (2024-08-15T22:26:47+02:00)
DB Schema Not Connected (0)
PHP 8.1.27
Python 3.9.2
Database Not Connected
RRDTool 1.7.2
SNMP 5.9
===========================================

[OK] Composer Version: 2.7.7
[OK] Dependencies up-to-date.

Mysql is running.
librenms.log
Interface “LibreNMS\Interfaces\Plugins\PluginManagerInterface” not found {“exception”:“[object] (Error(code: 0): Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found at /opt/librenms/app/Plugins/PluginManager.php:37)”}

Maybe only 32bits platform are affected?

1 Like

Had this on a PVE 64bit LXC instance.

Using the suggestion provided by the validator script

# sudo --user=librenms /opt/librenms/validate.php 
===========================================
Component | Version
--------- | -------
LibreNMS  | 24.8.0-6-gb51da92ea (2024-08-16T16:35:18+00:00)
DB Schema | Not Connected (0)
PHP       | 8.3.10
Python    | 3.11.2
Database  | Not Connected
RRDTool   | 1.7.2
SNMP      | 5.9.3
===========================================

[OK]    Composer Version: 2.7.7
[FAIL]  Missing dependencies!
        [FIX]: 
        /opt/librenms/scripts/composer_wrapper.php install --no-dev
        Dependencies:
         firebase/php-jwt
         librenms/plugin-interfaces
         spatie/error-solutions
# sudo --user=librenms /opt/librenms/scripts/composer_wrapper.php install --no-dev
> LibreNMS\ComposerHelper::preInstall
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 3 installs, 74 updates, 0 removals
  - Downloading php-http/discovery (1.19.4)
  - Downloading doctrine/event-manager (2.0.1)
  - Downloading doctrine/dbal (3.8.6)
  - Downloading symfony/polyfill-ctype (v1.30.0)
  - Downloading symfony/polyfill-php80 (v1.30.0)
  - Downloading symfony/polyfill-mbstring (v1.30.0)
  - Downloading phpoption/phpoption (1.9.3)
  - Downloading graham-campbell/result-type (v1.1.3)
  - Downloading vlucas/phpdotenv (v5.6.1)
  - Downloading symfony/css-selector (v6.4.8)
  - Downloading symfony/var-dumper (v6.4.10)
  - Downloading symfony/polyfill-uuid (v1.30.0)
  - Downloading symfony/uid (v6.4.8)
  - Downloading symfony/routing (v6.4.10)
  - Downloading symfony/polyfill-php72 (v1.30.0)
  - Downloading symfony/polyfill-intl-normalizer (v1.30.0)
  - Downloading symfony/polyfill-intl-idn (v1.30.0)
  - Downloading symfony/mime (v6.4.9)
  - Downloading symfony/event-dispatcher (v6.4.8)
  - Downloading symfony/mailer (v6.4.9)
  - Downloading symfony/polyfill-php83 (v1.30.0)
  - Downloading symfony/http-foundation (v6.4.10)
  - Downloading symfony/error-handler (v6.4.10)
  - Downloading symfony/http-kernel (v6.4.10)
  - Downloading symfony/finder (v6.4.10)
  - Downloading symfony/polyfill-intl-grapheme (v1.30.0)
  - Downloading symfony/string (v6.4.10)
  - Downloading symfony/console (v6.4.10)
  - Downloading brick/math (0.12.1)
  - Downloading ramsey/uuid (4.7.6)
  - Downloading symfony/translation (v6.4.10)
  - Downloading nesbot/carbon (2.72.5)
  - Downloading monolog/monolog (3.7.0)
  - Downloading league/flysystem (3.28.0)
  - Downloading league/flysystem-local (3.28.0)
  - Downloading dflydev/dot-access-data (v3.0.3)
  - Downloading league/commonmark (2.5.1)
  - Downloading laravel/framework (v10.48.18)
  - Downloading laravel/prompts (v0.1.24)
  - Downloading fico7489/laravel-pivot (3.0.12)
  - Downloading firebase/php-jwt (v6.10.1)
  - Downloading guzzlehttp/promises (2.0.3)
  - Downloading symfony/options-resolver (v6.4.8)
  - Downloading psr/http-factory (1.1.0)
  - Downloading php-http/message (1.16.1)
  - Downloading php-http/promise (1.3.1)
  - Downloading influxdata/influxdb-client-php (3.6.0)
  - Downloading guzzlehttp/psr7 (2.7.0)
  - Downloading guzzlehttp/guzzle (7.9.2)
  - Downloading justinrainbow/json-schema (5.3.0)
  - Downloading symfony/http-client (v6.4.10)
  - Downloading spomky-labs/pki-framework (1.2.1)
  - Downloading paragonie/sodium_compat (v2.0.1)
  - Downloading paragonie/constant_time_encoding (v3.0.0)
  - Downloading web-token/jwt-library (3.4.6)
  - Downloading nikic/php-parser (v5.1.0)
  - Downloading psy/psysh (v0.12.4)
  - Downloading laravel/ui (v4.5.2)
  - Downloading librenms/laravel-vue-i18n-generator (dev-master 8c8bb89)
  - Downloading librenms/plugin-interfaces (1.0)
  - Downloading mews/purifier (3.4.2)
  - Downloading nunomaduro/laravel-console-summary (v1.11.1)
  - Downloading phpseclib/phpseclib (3.0.39)
  - Downloading php-amqplib/php-amqplib (v3.7.0)
  - Downloading laravel/socialite (v5.15.1)
  - Downloading socialiteproviders/manager (v4.6.0)
  - Downloading spatie/error-solutions (1.1.1)
  - Downloading spatie/backtrace (1.6.2)
  - Downloading spatie/flare-client-php (1.8.0)
  - Downloading spatie/ignition (1.15.0)
  - Downloading spatie/laravel-ignition (2.8.0)
  - Downloading symfony/yaml (v6.4.8)
  - Downloading tecnickcom/tcpdf (6.7.5)
  - Upgrading php-http/discovery (1.19.2 => 1.19.4): Extracting archive
  - Upgrading doctrine/event-manager (2.0.0 => 2.0.1): Extracting archive
  - Upgrading doctrine/dbal (3.8.2 => 3.8.6): Extracting archive
  - Upgrading symfony/polyfill-ctype (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/polyfill-php80 (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/polyfill-mbstring (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading phpoption/phpoption (1.9.2 => 1.9.3): Extracting archive
  - Upgrading graham-campbell/result-type (v1.1.2 => v1.1.3): Extracting archive
  - Upgrading vlucas/phpdotenv (v5.6.0 => v5.6.1): Extracting archive
  - Upgrading symfony/css-selector (v6.4.3 => v6.4.8): Extracting archive
  - Upgrading symfony/var-dumper (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading symfony/polyfill-uuid (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/uid (v6.4.3 => v6.4.8): Extracting archive
  - Upgrading symfony/routing (v6.4.3 => v6.4.10): Extracting archive
  - Upgrading symfony/polyfill-php72 (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/polyfill-intl-normalizer (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/polyfill-intl-idn (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/mime (v6.4.3 => v6.4.9): Extracting archive
  - Upgrading symfony/event-dispatcher (v6.4.3 => v6.4.8): Extracting archive
  - Upgrading symfony/mailer (v6.4.4 => v6.4.9): Extracting archive
  - Upgrading symfony/polyfill-php83 (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/http-foundation (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading symfony/error-handler (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading symfony/http-kernel (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading symfony/finder (v6.4.8 => v6.4.10): Extracting archive
  - Upgrading symfony/polyfill-intl-grapheme (v1.29.0 => v1.30.0): Extracting archive
  - Upgrading symfony/string (v6.4.8 => v6.4.10): Extracting archive
  - Upgrading symfony/console (v6.4.8 => v6.4.10): Extracting archive
  - Upgrading brick/math (0.11.0 => 0.12.1): Extracting archive
  - Upgrading ramsey/uuid (4.7.5 => 4.7.6): Extracting archive
  - Upgrading symfony/translation (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading nesbot/carbon (2.72.3 => 2.72.5): Extracting archive
  - Upgrading monolog/monolog (3.5.0 => 3.7.0): Extracting archive
  - Upgrading league/flysystem (3.24.0 => 3.28.0): Extracting archive
  - Upgrading league/flysystem-local (3.23.1 => 3.28.0): Extracting archive
  - Upgrading dflydev/dot-access-data (v3.0.2 => v3.0.3): Extracting archive
  - Upgrading league/commonmark (2.4.2 => 2.5.1): Extracting archive
  - Upgrading laravel/framework (v10.46.0 => v10.48.18): Extracting archive
  - Upgrading laravel/prompts (v0.1.16 => v0.1.24): Extracting archive
  - Upgrading fico7489/laravel-pivot (3.0.11 => 3.0.12): Extracting archive
  - Installing firebase/php-jwt (v6.10.1): Extracting archive
  - Upgrading guzzlehttp/promises (2.0.2 => 2.0.3): Extracting archive
  - Upgrading symfony/options-resolver (v6.4.0 => v6.4.8): Extracting archive
  - Upgrading psr/http-factory (1.0.2 => 1.1.0): Extracting archive
  - Upgrading php-http/message (1.16.0 => 1.16.1): Extracting archive
  - Upgrading php-http/promise (1.3.0 => 1.3.1): Extracting archive
  - Upgrading influxdata/influxdb-client-php (3.4.0 => 3.6.0): Extracting archive
  - Upgrading guzzlehttp/psr7 (2.6.2 => 2.7.0): Extracting archive
  - Upgrading guzzlehttp/guzzle (7.8.1 => 7.9.2): Extracting archive
  - Upgrading justinrainbow/json-schema (v5.2.13 => 5.3.0): Extracting archive
  - Upgrading symfony/http-client (v6.4.4 => v6.4.10): Extracting archive
  - Upgrading spomky-labs/pki-framework (1.1.1 => 1.2.1): Extracting archive
  - Upgrading paragonie/sodium_compat (v1.20.0 => v2.0.1): Extracting archive
  - Upgrading paragonie/constant_time_encoding (v2.6.3 => v3.0.0): Extracting archive
  - Upgrading web-token/jwt-library (3.3.1 => 3.4.6): Extracting archive
  - Upgrading web-token/jwt-util-ecc (3.3.0 => 3.4.6): Extracting archive
  - Upgrading web-token/jwt-signature-algorithm-ecdsa (3.3.0 => 3.4.6): Extracting archive
  - Upgrading web-token/jwt-signature (3.3.0 => 3.4.6): Extracting archive
  - Upgrading web-token/jwt-key-mgmt (3.3.0 => 3.4.6): Extracting archive
  - Upgrading nikic/php-parser (v5.0.1 => v5.1.0): Extracting archive
  - Upgrading psy/psysh (v0.12.0 => v0.12.4): Extracting archive
  - Upgrading laravel/ui (v4.4.0 => v4.5.2): Extracting archive
  - Upgrading librenms/laravel-vue-i18n-generator (dev-master c662202 => dev-master 8c8bb89): Extracting archive
  - Installing librenms/plugin-interfaces (1.0): Extracting archive
  - Upgrading mews/purifier (3.4.1 => 3.4.2): Extracting archive
  - Upgrading nunomaduro/laravel-console-summary (v1.10.0 => v1.11.1): Extracting archive
  - Upgrading phpseclib/phpseclib (3.0.36 => 3.0.39): Extracting archive
  - Upgrading php-amqplib/php-amqplib (v3.6.1 => v3.7.0): Extracting archive
  - Upgrading laravel/socialite (v5.12.1 => v5.15.1): Extracting archive
  - Upgrading socialiteproviders/manager (v4.5.1 => v4.6.0): Extracting archive
  - Installing spatie/error-solutions (1.1.1): Extracting archive
  - Upgrading spatie/backtrace (1.5.3 => 1.6.2): Extracting archive
  - Upgrading spatie/flare-client-php (1.4.4 => 1.8.0): Extracting archive
  - Upgrading spatie/ignition (1.12.0 => 1.15.0): Extracting archive
  - Upgrading spatie/laravel-ignition (2.4.2 => 2.8.0): Extracting archive
  - Upgrading symfony/yaml (v6.4.3 => v6.4.8): Extracting archive
  - Upgrading tecnickcom/tcpdf (6.7.4 => 6.7.5): Extracting archive
Package influxdb/influxdb-php is abandoned, you should avoid using it. No replacement was suggested.
Package web-token/jwt-key-mgmt is abandoned, you should avoid using it. Use web-token/jwt-library instead.
Package web-token/jwt-signature is abandoned, you should avoid using it. Use web-token/jwt-library instead.
Package web-token/jwt-signature-algorithm-ecdsa is abandoned, you should avoid using it. Use web-token/jwt-library instead.
Package web-token/jwt-util-ecc is abandoned, you should avoid using it. Use web-token/jwt-library instead.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.  

  laravel-notification-channels/webpush ................................. DONE
  laravel/socialite ..................................................... DONE
  laravel/tinker ........................................................ DONE
  laravel/ui ............................................................ DONE
  librenms/laravel-vue-i18n-generator ................................... DONE
  mews/purifier ......................................................... DONE
  nesbot/carbon ......................................................... DONE
  nunomaduro/termwind ................................................... DONE
  silber/bouncer ........................................................ DONE
  spatie/laravel-ignition ............................................... DONE
  tightenco/ziggy ....................................................... DONE

76 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> LibreNMS\ComposerHelper::postInstall
> Illuminate\Foundation\ComposerScripts::postInstall
> @php artisan vue-i18n:generate --multi-locales --format=umd
> @php artisan view:cache

   INFO  Blade templates cached successfully.  

> @php artisan optimize

   INFO  Caching the framework bootstrap files.  

  config ........................................................... 22ms DONE
  routes ........................................................... 62ms DONE

> @php artisan config:clear

   INFO  Configuration cache cleared successfully.  

> scripts/dynamic_check_requirements.py || pip3 install --user -r requirements.txt || :

Was sufficient to resolve the issue.

I think my Pi is still on 32 bit userspace so 64 bit php is problematic.
Found this issue, unfortunately without solution:

Is there any option to rollback to last working version or install last working version?

I managed to get the previous version 24.7.0 back to work.
As librennms user:

cd /opt/librenms/
git pull
git reset --hard 24.7.0
./scripts/composer_wrapper.php install --no-dev

Afterwards I disabled the updates until it is save to update:

 lnms config:set update false
1 Like

Just run this, no need to possibly break your system further by downgrading.

Additionally, 24.8.0 is not broken, this is a post 24.8.0 daily update. I suggest you switch to the monthly release to avoid breakage.

Thanks for the reply @murrant, but that gives me another set of hurdles to jump of course. And I don’t have wast experience with composer


librenms@librenms:~$ ./scripts/composer_wrapper.php install --no-dev
> LibreNMS\ComposerHelper::preInstall
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - paragonie/sodium_compat is locked to version v2.0.1 and an update of this package was not requested.
    - paragonie/sodium_compat v2.0.1 requires php-64bit * -> the php-64bit package is disabled by your platform config. Enable it again with "composer config platform.php-64bit --unset".
  Problem 2
    - paragonie/sodium_compat v2.0.1 requires php-64bit * -> the php-64bit package is disabled by your platform config. Enable it again with "composer config platform.php-64bit --unset".
    - web-token/jwt-library 3.4.6 requires paragonie/sodium_compat ^1.20|^2.0 -> satisfiable by paragonie/sodium_compat[v2.0.1].
    - web-token/jwt-library is locked to version 3.4.6 and an update of this package was not requested.

uhm, okay, so then I tried composer update (as librenms user in /opt/librenms)

librenms@librenms:~$ composer update
PHP Deprecated:  Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Console/Helper/HelperSet.php on line 103

Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Console/Helper/HelperSet.php on line 103
Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/share/php/JsonSchema/Constraints/Constraint.php:48
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Return type of Symfony\Component\Process\Process::getIterator($flags = 0) should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Process/Process.php:622
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Using ${var} in strings is deprecated, use {$var} instead in /usr/share/php/Composer/Autoload/AutoloadGenerator.php:777
Deprecation Notice: Using ${var} in strings is deprecated, use {$var} instead in /usr/share/php/Composer/Autoload/AutoloadGenerator.php:782
Deprecation Notice: Return type of Composer\Repository\CompositeRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/CompositeRepository.php:180
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Finder.php:620
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Finder.php:701
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FileTypeFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/FileTypeFilterIterator.php:42
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getChildren() should either be compatible with RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:85
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::rewind() should either be compatible with FilesystemIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:113
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::current() should either be compatible with FilesystemIterator::current(): SplFileInfo|FilesystemIterator|string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:61
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:55
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::hasChildren() should either be compatible with RecursiveIterator::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:74
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::getChildren() should either be compatible with RecursiveIterator::getChildren(): ?RecursiveIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:79
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FilenameFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/FilenameFilterIterator.php:28
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\PathFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/PathFilterIterator.php:27
> LibreNMS\ComposerHelper::preUpdate
Running composer update is not advisable.  Please run composer install to update instead.
If know what you are doing and want to write a new composer.lock file set FORCE=1.
If you don't know what to do, run: composer install

So since I don’t know what I’m doing, I tried composer install as librenms

librenms@librenms:~$ composer install
PHP Deprecated:  Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Console/Helper/HelperSet.php on line 103

Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Console/Helper/HelperSet.php on line 103
Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/share/php/JsonSchema/Constraints/Constraint.php:48
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Return type of Symfony\Component\Process\Process::getIterator($flags = 0) should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Process/Process.php:622
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/ArrayRepository.php:277
Deprecation Notice: Using ${var} in strings is deprecated, use {$var} instead in /usr/share/php/Composer/Autoload/AutoloadGenerator.php:777
Deprecation Notice: Using ${var} in strings is deprecated, use {$var} instead in /usr/share/php/Composer/Autoload/AutoloadGenerator.php:782
Deprecation Notice: Return type of Composer\Repository\CompositeRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/Repository/CompositeRepository.php:180
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Finder.php:620
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Finder.php:701
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FileTypeFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/FileTypeFilterIterator.php:42
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getChildren() should either be compatible with RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:85
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::rewind() should either be compatible with FilesystemIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:113
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::current() should either be compatible with FilesystemIterator::current(): SplFileInfo|FilesystemIterator|string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/RecursiveDirectoryIterator.php:61
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:55
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::hasChildren() should either be compatible with RecursiveIterator::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:74
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::getChildren() should either be compatible with RecursiveIterator::getChildren(): ?RecursiveIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/ExcludeDirectoryFilterIterator.php:79
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FilenameFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/FilenameFilterIterator.php:28
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\PathFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Symfony/Component/Finder/Iterator/PathFilterIterator.php:27
> LibreNMS\ComposerHelper::preInstall
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Deprecation Notice: Return type of Composer\DependencyResolver\Pool::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Pool.php:76
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSet.php:116
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSet.php:101
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:155
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:165
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:160
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:170
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:150
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/Decisions.php:145
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSetIterator.php:36
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSetIterator.php:46
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSetIterator.php:41
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSetIterator.php:89
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/php/Composer/DependencyResolver/RuleSetIterator.php:70
Deprecation Notice: Using ${var} in strings is deprecated, use {$var} instead in /usr/share/php/Composer/DependencyResolver/Problem.php:308
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - laravel/framework is locked to version v10.48.18 and an update of this package was not requested.
    - laravel/framework v10.48.18 requires composer-runtime-api ^2.2 -> found composer-runtime-api[2.0.0] but it does not match the constraint.
  Problem 2
    - paragonie/sodium_compat is locked to version v2.0.1 and an update of this package was not requested.
    - paragonie/sodium_compat v2.0.1 requires php-64bit * -> your php-64bit version (8.3.10) does not satisfy that requirement.
  Problem 3
    - laravel/framework v10.48.18 requires composer-runtime-api ^2.2 -> found composer-runtime-api[2.0.0] but it does not match the constraint.
    - laravel/dusk v8.2.2 requires illuminate/console ^10.0|^11.0 -> satisfiable by laravel/framework[v10.48.18].
    - laravel/dusk is locked to version v8.2.2 and an update of this package was not requested.
./scripts/composer_wrapper.php install --no-dev

Gives me the error about php-64bit discussed in this thread. Exactly the issues Raspbianuser is facing.
Any solution or suggestion for 32 Bit systems except seting up the system on 64 bit (already planned)?

I have LibreNMS running on a 32bit x86 VM, with an AMD64 kernel, and I’m hitting this issue. validate.php reports no issues apart from the PluginManagerInterface not working, but running the composer command gives a different error:

librenms@propus:~$ ./validate.php

In PluginManager.php line 37:
                                                                            
  Interface "LibreNMS\Interfaces\Plugins\PluginManagerInterface" not found  
                                                                            

===========================================
Component | Version
--------- | -------
LibreNMS  | 24.8.0-6-g5748ada02 (2024-08-16T21:04:50+08:00)
DB Schema | Not Connected (0)
PHP       | 8.1.27 
Python    | 3.7.3  
Database  | Not Connected
RRDTool   | 1.7.1  
SNMP      | 5.7.3  
===========================================

[OK]    Composer Version: 2.7.7
[OK]    Dependencies up-to-date.
librenms@propus:~$ ./scripts/composer_wrapper.php install --no-dev
> LibreNMS\ComposerHelper::preInstall
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - paragonie/sodium_compat is locked to version v2.0.1 and an update of this package was not requested.
    - paragonie/sodium_compat v2.0.1 requires php-64bit * -> the php-64bit package is disabled by your platform config. Enable it again with "composer config platform.php-64bit --unset".
  Problem 2
    - paragonie/sodium_compat v2.0.1 requires php-64bit * -> the php-64bit package is disabled by your platform config. Enable it again with "composer config platform.php-64bit --unset".
    - web-token/jwt-library 3.4.6 requires paragonie/sodium_compat ^1.20|^2.0 -> satisfiable by paragonie/sodium_compat[v2.0.1].
    - web-token/jwt-library is locked to version 3.4.6 and an update of this package was not requested.

librenms@propus:~$ uname -a
Linux propus 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64 GNU/Linux
librenms@propus:~$ ldd /bin/ls
        linux-gate.so.1 (0xf7ef0000)
        libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf7e84000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7ca6000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf7c2a000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7c24000)
        /lib/ld-linux.so.2 (0xf7ef2000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7c03000)

Oh that’s exactly my issue. Boo.

FYI, this problem is two fold:

  1. Your installs cannot update because a dependency of a dependency is requiring 64bit PHP. This dependency is not even a hard dependency…
  2. A new package was added after the 24.8.0 release that is required. Your install cannot install it due to the above issue. That breaks things.

This should fix it: Fix sodium_compat 32bit by murrant · Pull Request #16303 · librenms/librenms · GitHub

Again, you would only be minorly broken if you were on monthly updates, but this issue snuck through because no one reported the issue, so we do need daily testers.

Thanks for the fix! But of course it’s not working, or I’m not implementing it correctly!

I tried the ./scripts/github-apply 5926 and got this:

rror: patch failed: .github/PULL_REQUEST_TEMPLATE.md:6
error: .github/PULL_REQUEST_TEMPLATE.md: patch does not apply
Checking patch scripts/github-apply...
error: scripts/github-apply: already exists in working directory
Checking patch scripts/github-remove...
error: scripts/github-remove: already exists in working directory

Okay, so I tried to added the paragonie/sodium_compat: “<2.0”, to composer.json
and * “content-hash”: cfd22f9b26f539a6adc0ee571737bfcf,* to composer.lock and removed the old one, and rebooted. Still nothing.

Excuse my ignorance on this matter.

I see it’s been committed to main, ./daily.sh didn’t work to fix it, I had manually git pull then ./scripts/composer_wrapper.php install --no-dev, then I ran ./daily.sh for good measure and it’s up and running again. Thanks for fixing it.

1 Like

I did what @trs80 said, and everything now works again! Some initial loading time, but now it works. Thanks everyone! :smiley:

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.