Debian

phpMyAdmin Fehler "Parameter must be an array or an object that implements Countable"

12. Juli 2019 · Programmierung · andreas · 3 Kommentare

Nachdem das Update des Entwicklungsrechners von Debian 9 (Stretch) auf Debian 10 (Buster) reibungslos durchgelaufen ist, hakt es bei phpMyAdmin sobald eine Tabelle angeklickt wird:

Warning in ./libraries/sql.lib.php#613 count(): Parameter must be an array or an object that implements Countable

Eine einfache Lösung findet sich bei Stack Overflow: in der Datei “/usr/share/phpmyadmin/libraries/sql.lib.php” eine der schließenden Klammern von Zeile 614 in Zeile 613 vor das “== 1” versetzen, so daß die Zeilen 613 und 614 wie folgt aussehen:

|| (count($analyzed_sql_results['select_expr']) == 1) && ($analyzed_sql_results['select_expr'][0] == '*'))

Nach einem Neustart des Webservers ist der Fehler verschwunden.


GNOME NetworkManager zeigt "Kabelgebunden nicht verbunden"

31. Juli 2018 · Betriebssysteme · andreas · 2 Kommentare

Sofern der GNOME-Desktop nachträglich installiert wurde, kann es sein, daß der Gnome NetworkManager den Status “Kabelgebunden nicht verbunden” zeigt, obwohl die Netzwerkverbindung funktioniert.

Auch ein Klick auf den im Network-Manager angebotenenen Menüpunkt “Verbinden” hilft nicht und in den Netzwerkeinstellungen taucht die kabelgebundene Verbindung nicht auf.

Die Ursache hierfür liegt an der nachträglichen Installation des NetworkManagers bzw. daran, daß sich der NetworkManager nicht für die kabelgebundene Verbindung zuständig fühlt.

Die Lösung des Problems liegt in der Datei “NetworkManager.conf” im Verzeichnis “/etc/NetworkManager”. In dieser muß der Eintrag

/etc/NetworkManager/NetworkManager.conf
[ifupdown] managed=false

zu

/etc/NetworkManager/NetworkManager.conf
[ifupdown] managed=true

geändert werden, dann funtkioniert nach einem Neustart des Network Managers auch die Verwaltung des kabelgebundenen Netzwerks.


GNOME ohne Firefox-ESR

22. Juli 2018 · Anwendungen · andreas · Kein Kommentar

Selbst wenn mit gnome-core lediglich das Minimalpaket gewählt wird, wird bei der Installation von GNOME unter Debian der Browser Firefox in der ESR-Version 52 zwangsweise mitinstalliert.

Spätestens wenn parallel eine aktuelle Version von Firefox installiert wurde, wird die ESR-Version nicht mehr benötigt und könnte deinstalliert werden. Leider quittiert die Paketverwaltung ein

# apt remove firefox-esr

nicht nur damit, daß sie auch “gnome-core” deinstallieren will, zusätzlich wird die Installation von chromium mit eingeplant:

... Die folgenden Pakete werden ENTFERNT: firefox-esr gnome-core Die folgenden NEUEN Pakete werden installiert: chromium ...

Nach einigen ergebnislosen Versuchen fand sich schließlich bei reddit der entscheidende Fingerzeig: die Installation eines mit equivs selbstgebastelten Fake-Pakets, welches dem System einen vorhandenen firefox-esr vorgaukelt.

Ein passendes Muster für eine Control-Datei findet sich in Kapitel “15.2.1. Meta-Pakete oder vorgetäuschte Pakete” des Debian Adminstrator Handbuchs und ist schnell angepasst:

Package: fakefox-esr Version: 0.1 Maintainer: Andreas Thul <ab@c.de> Provides: firefox-esr (=52) Architecture: all Description: Fake package - Firefox ESR This is a fake package to let the packaging system believe that Firefox ESR is installed.

Die wichtigste Zeile hierbei ist “Provides: …”, welche vorgaukelt, daß das Paket tatsächlich Firefox in der ESR-Version bereitstellt.

Nachdem das Paket mittels

# equivs-build fakefox-esr

erstellt wurde, kann es über

# sudo dpkg -i fakefox-esr_0.1_all.deb

installiert werden. Anschließend führt die Entfernung des “firefox-esr”-Pakets zum ursprünglich beabsichtigten Ergebnis:

sudo apt remove firefox-esr ... Die folgenden Pakete werden ENTFERNT: firefox-esr 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert.

Automatische Anmeldung an der Konsole

28. Juni 2018 · Betriebssysteme · andreas · Kein Kommentar

Im Produktivbetrieb undenkbar, auf einer lediglich zu Testzwecken eingerichteten virtuellen Maschine aber ein deutlicher Komfortgewinn ist eine automatische Anmeldung an der Linux-Konsole.

Hierbei ist zu beachten, daß sich unter Debian mit der Einführung von systemd die Einrichtung gegenüber den meist noch zu findenden älteren, auf init bezogenen Anleitungen geändert hat.

Als erstes wird von dem “normalen” getty-Service eine Kopie erzeugt:

cp /lib/systemd/system/getty@.service /lib/systemd/system/autologin@.service

In der soeben erzeugten Kopie wird dann im Abschnitt “[Service]” die Zeile

ExecStart=-/sbin/agetty --noclear %I $TERM

nach “–noclear” um den Parameter “-a Benutzername” ergänzt, so daß die Zeile für den Benutzer “root” wie folgt aussieht

ExecStart=-/sbin/agetty --noclear -a root %I $TERM

Anschließend wird mittels

systemctl disable getty@tty1

zuerst der getty-Service für tty1 deaktiviert, bevor mit

systemctl enable autologin@tty1

die soeben erzeugte Kopie aktiviert wird.


Kein Netzwerk nach Upgrade von Debian Jessie auf Stretch

19. Juli 2017 · Betriebssysteme · andreas · Kein Kommentar

Ein Upgrade von Debian Jessie nach Stretch ist schnell erledigt: in der Datei “/etc/apt/sources.list” alle Einträge, die auf “jessie” lauten durch “stretch” ersetzen und anschließend mit

apt-get update apt-get upgrade apt-get dist-upgrade

das System auf die neue Version aktualisieren.

Das Upgrade lief auch problemlos durch, allerdings war nach einem Reboot kein Netzwerk (mehr) vorhanden:

root@sandbox:~# ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Lokale Schleife) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Während vor dem Reboot die Netzwerkkarte noch mit “eth0” identifiziert wurde

root@sandbox:~# networkctl WARNING: systemd-networkd is not running, output will be incomplete. IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback n/a unmanaged 2 eth0 ether n/a unmanaged 2 links listed.

wurde nach dem Reboot die Netzwerkkarte als “enp0s3” erkannt:

root@sandbox:~# networkctl WARNING: systemd-networkd is not running, output will be incomplete. IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback n/a unmanaged 2 enp0s3 ether n/a unmanaged 2 links listed.

Nachdem in der Datei “/etc/network/interfaces” alle Einträge von “eth0” durch “enp0s3” ersetzt wurden, stand nach einem weiteren Reboot das Netzwerk wieder zur Verfügung.