Trying to get rid of PHP 7.4 causes major headaches, icinga-director.service: Failed

I wanted to get rid of of PHP 7.4 on Ubuntu “focal fossy”, as my Icinga Instance is running on PHP 8.3. Unfortunately this causes major trouble.

  • icingacli does not work anymore
  • icinga-director.service can not be started anymore: Failed with result ‘exit-code’.

Dec 02 13:25:39 xxxx icingadirector[556950]: Stack trace:
Dec 02 13:25:39 xxxx icingadirector[556950]: #0 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(702): ipl\I18n\GettextTranslator->setLocale()
Dec 02 13:25:39 xxxx icingadirector[556950]: #1 /usr/share/php/Icinga/Application/Cli.php(45): Icinga\Application\ApplicationBootstrap->setupInternationalization()
Dec 02 13:25:39 xxxx icingadirector[556950]: #2 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(388): Icinga\Application\Cli->bootstrap()
Dec 02 13:25:39 xxxx icingadirector[556950]: #3 /usr/bin/icingacli(7): Icinga\Application\ApplicationBootstrap::start()
Dec 02 13:25:39 xxxx icingadirector[556950]: #4 {main}
Dec 02 13:25:39 xxxx icingadirector[556950]: thrown in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/GettextTranslator.php on line 199
Dec 02 13:25:39 xxxx icingadirector[556950]: Fatal error: Uncaught Error: Class “Locale” not found in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/GettextTranslator.php:199
Dec 02 13:25:39 xxxx icingadirector[556950]: Stack trace:
Dec 02 13:25:39 xxxx icingadirector[556950]: #0 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(702): ipl\I18n\GettextTranslator->setLocale()
Dec 02 13:25:39 xxxx icingadirector[556950]: #1 /usr/share/php/Icinga/Application/Cli.php(45): Icinga\Application\ApplicationBootstrap->setupInternationalization()
Dec 02 13:25:39 xxxx icingadirector[556950]: #2 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(388): Icinga\Application\Cli->bootstrap()
Dec 02 13:25:39 xxxx icingadirector[556950]: #3 /usr/bin/icingacli(7): Icinga\Application\ApplicationBootstrap::start()
Dec 02 13:25:39 xxxx icingadirector[556950]: #4 {main}
Dec 02 13:25:39 xxxx icingadirector[556950]: thrown in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/GettextTranslator.php on line 199
Dec 02 13:25:39 xxxx systemd[1]: icinga-director.service: Main process exited, code=exited, status=255/EXCEPTION

After this I tried to update the installed icinga packages to the latest versions, to get the error resolved.

The below highlighted message worries me…

apt install icingacli icingaweb2-common icingaweb2 php-icinga
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
btrfs-progs fonts-droid-fallback fonts-noto-mono fonts-urw-base35 ghostscript gsfonts icinga-php-common imagemagick-6-common libargon2-0 libboost-context1.67.0-icinga libboost-coroutine1.67.0-icinga
libboost-filesystem1.67.0-icinga libboost-program-options1.67.0-icinga libboost-regex1.67.0-icinga libboost-system1.67.0-icinga libboost-thread1.67.0-icinga libfftw3-double3 libgomp1 libgs9
libgs9-common libicu60 libijs-0.35 libjbig2dec0 liblcms2-2 liblqr-1-0 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmysqlclient20 libopenjp2-7 libpaper-utils libpaper1 libwebpmux3 php-imagick
php8.4-imagick poppler-data ttf-dejavu-core
Use ‘apt autoremove’ to remove them.
Recommended packages:
php-php-gettext php-gettext
The following packages will be upgraded:
icingacli icingaweb2 icingaweb2-common php-icinga
4 upgraded, 0 newly installed, 0 to remove and 64 not upgraded.
Need to get 0 B/5,315 kB of archives.
After this operation, 9,216 B of additional disk space will be used.
(Reading database … 155908 files and directories currently installed.)
Preparing to unpack …/icingacli_2.12.2-1+ubuntu20.04_all.deb …
Unpacking icingacli (2.12.2-1+ubuntu20.04) over (2.12.1-1+ubuntu20.04) …
dpkg: considering deconfiguration of icingaweb2, which would be broken by installation of icingaweb2-common …
dpkg: yes, will deconfigure icingaweb2 (broken by icingaweb2-common)
Preparing to unpack …/icingaweb2-common_2.12.2-1+ubuntu20.04_all.deb …
De-configuring icingaweb2 (2.12.1-1+ubuntu20.04) …
Unpacking icingaweb2-common (2.12.2-1+ubuntu20.04) over (2.12.1-1+ubuntu20.04) …
Preparing to unpack …/icingaweb2_2.12.2-1+ubuntu20.04_all.deb …
Unpacking icingaweb2 (2.12.2-1+ubuntu20.04) over (2.12.1-1+ubuntu20.04) …
Preparing to unpack …/php-icinga_2.12.2-1+ubuntu20.04_all.deb …
Unpacking php-icinga (2.12.2-1+ubuntu20.04) over (2.12.1-1+ubuntu20.04) …
Setting up icingaweb2-common (2.12.2-1+ubuntu20.04) …
Setting up php-icinga (2.12.2-1+ubuntu20.04) …
Setting up icingacli (2.12.2-1+ubuntu20.04) …
Setting up icingaweb2 (2.12.2-1+ubuntu20.04) …
Scanning processes…
Scanning linux images…

Installed are the following packages:

Icinga:

icinga-archive-keyring/icinga-focal,icinga-focal,now 1.0.0-1+ubuntu20.04 all [installed]
icinga-graphite-web/icinga-focal,icinga-focal,now 1.2.4-1+ubuntu20.04 all [installed,automatic]
icinga-graphite/icinga-focal,icinga-focal,now 1.2.4-1+ubuntu20.04 all [installed]
icinga-jira-web/icinga-focal,icinga-focal,now 1.3.0-1+ubuntu20.04 all [installed,upgradable to: 1.3.4-1+ubuntu20.04]
icinga-jira/icinga-focal,icinga-focal,now 1.3.0-1+ubuntu20.04 all [installed,upgradable to: 1.3.4-1+ubuntu20.04]
icinga-l10n/icinga-focal,icinga-focal,now 1.3.0-1+ubuntu20.04 all [installed,automatic]
icinga-php-library/icinga-focal,icinga-focal,now 0.14.1-1+ubuntu20.04 all [installed]
icinga-php-thirdparty/icinga-focal,icinga-focal,now 0.12.1-1+ubuntu20.04 all [installed]
icinga-x509-daemon/icinga-focal,icinga-focal,now 1.3.2-1+ubuntu20.04 all [installed,automatic]
icinga-x509-php/icinga-focal,icinga-focal,now 1.3.2-1+ubuntu20.04 all [installed,automatic]
icinga-x509-web/icinga-focal,icinga-focal,now 1.3.2-1+ubuntu20.04 all [installed,automatic]
icinga-x509/icinga-focal,icinga-focal,now 1.3.2-1+ubuntu20.04 all [installed]
icinga2-bin/icinga-focal,now 2.14.3-1+ubuntu20.04 amd64 [installed,automatic]
icinga2-common/icinga-focal,icinga-focal,now 2.14.3-1+ubuntu20.04 all [installed,automatic]
icinga2-doc/icinga-focal,icinga-focal,now 2.14.3-1+ubuntu20.04 all [installed]
icinga2-ido-mysql/icinga-focal,now 2.14.3-1+ubuntu20.04 amd64 [installed]
icinga2/icinga-focal,now 2.14.3-1+ubuntu20.04 amd64 [installed]
icingacli/icinga-focal,icinga-focal,now 2.12.2-1+ubuntu20.04 all [installed,automatic]
icingaweb2-common/icinga-focal,icinga-focal,now 2.12.2-1+ubuntu20.04 all [installed,automatic]
icingaweb2-module-ipl/focal,focal,now 0.1.1-1 all [installed]
icingaweb2/icinga-focal,icinga-focal,now 2.12.2-1+ubuntu20.04 all [installed]
php-icinga/icinga-focal,icinga-focal,now 2.12.2-1+ubuntu20.04 all [installed]

PHP 8.3:

php8.3-bz2/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-cli/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-common/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-curl/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-fpm/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-gd/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-gmp/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-intl/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-ldap/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-mbstring/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-mysql/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3-opcache/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-pgsql/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-readline/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-soap/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-xml/focal,now 8.3.14-2+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]
php8.3/now 8.3.12-1+ubuntu20.04.1+deb.sury.org+1 all [installed,upgradable to: 8.3.14-2+ubuntu20.04.1+deb.sury.org+1]

If I shall provide more details, I am happy to do so. I appreciate any help, as I have no idea to get this mess resolved. Thanks.

I went back to a snapshot before removing PHP 7.4

As I update icinga director via github repository, I tried to install the latest update via ‘apt-get install icinga-director’, which worked fine. I also update icingaweb2 that way. Everything works.

But still I get this strange message:

dpkg: considering deconfiguration of icingaweb2, which would be broken by installation of icingaweb2-common …
dpkg: yes, will deconfigure icingaweb2 (broken by icingaweb2-common)

I don’t get how this fits together:

apt info icingaweb2

Package: icingaweb2
Version: 2.12.2-1+ubuntu20.04
Priority: optional
Section: admin
Maintainer: Icinga GmbH <info@icinga.com>
Installed-Size: 9,479 kB
Depends: apache2 | httpd, php, icingaweb2-common (= 2.12.2-1+ubuntu20.04), php-icinga (= 2.12.2-1+ubuntu20.04), icinga-l10n (>= 1.1.0)
Recommends: icingacli (= 2.12.2-1+ubuntu20.04)
Breaks: icingaweb2-common (<< 2.12.2-1+ubuntu20.04), icingaweb2-module-doc (<< 2.12.2-1+ubuntu20.04), icingaweb2-module-monitoring (<< 2.12.2-1+ubuntu20.04)
Replaces: icingaweb2-common (<< 2.12.2-1+ubuntu20.04), icingaweb2-module-doc (<< 2.12.2-1+ubuntu20.04), icingaweb2-module-monitoring (<< 2.12.2-1+ubuntu20.04)
Homepage: https://icinga.com

How can the same version of a package break and replace a dependency??

Here is the output of Icinga diagnostics:

# Icinga Web 2 #

Packages:
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  icingaweb2     2.12.2-1+ubuntu20.04 all          Icinga Web
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  php            2:7.4+75     all          server-side, HTML-embedded scripting language (default)
Can not query webserver package on Ubuntu

Icinga Web 2 Modules:
MODULE         VERSION   STATE     DESCRIPTION
director       1.11.2    enabled   Director - Config tool for Icinga 2
doc            2.12.2    enabled   Documentation module
incubator      0.22.0    enabled   Incubator provides bleeding-edge libraries
monitoring     2.12.2    enabled   Icinga monitoring module
translation    2.12.2    enabled   Translation module
x509           1.3.2     enabled   Scan and view X.509 certificate usage

director via release archive/package
doc via release archive/package
incubator via git - "74afd948165048ab0712ec08121069b68301624a"
monitoring via release archive/package
translation via release archive/package
x509 via release archive/package

Icinga Web 2 commandtransport configuration:
[icinga2]
transport = "local"
path = "/var/run/icinga2/cmd/icinga2.cmd"

Director is release 1.11.2