Kein Upgrade für php5 möglich

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Kein Upgrade für php5 möglich

Beitrag von debianoli » 29.04.2016 10:52:21

Hallo,

auf meinem locakalen Apache-Testserver (Jessie) lässt sich php nicht upgrade oder entfernen: Die Resource ist belegt. Wer macht denn das?

Code: Alles auswählen

apt-get upgrade -y
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Probieren Sie »apt-get -f install«, um dies zu korrigieren.
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 php5-cgi : Hängt ab von: php5-common (= 5.6.19+dfsg-0+deb8u1) aber 5.6.20+dfsg-0+deb8u1 ist installiert
 php5-cli : Hängt ab von: php5-common (= 5.6.19+dfsg-0+deb8u1) aber 5.6.20+dfsg-0+deb8u1 ist installiert
 php5-readline : Hängt ab von: php5-cli (= 5.6.20+dfsg-0+deb8u1) aber 5.6.19+dfsg-0+deb8u1 ist installiert
E: Unerfüllte Abhängigkeiten. Versuchen Sie, -f zu benutzen.


apt-get install -fy

Die folgenden zusätzlichen Pakete werden installiert:
  php5-cgi php5-cli
Vorgeschlagene Pakete:
  php-pear
Die folgenden Pakete werden aktualisiert (Upgrade):
  php5-cgi php5-cli

dpkg: Fehler beim Bearbeiten des Archivs /var/cache/apt/archives/php5-cli_5.6.20+dfsg-0+deb8u1_amd64.deb (--unpack):
 Neue Version von »/usr/bin/php5« kann nicht installiert werden: Das Gerät oder die Ressource ist belegt
Vorbereitung zum Entpacken von .../php5-cgi_5.6.20+dfsg-0+deb8u1_amd64.deb ...
Entpacken von php5-cgi (5.6.20+dfsg-0+deb8u1) über (5.6.19+dfsg-0+deb8u1) ...
dpkg: Fehler beim Bearbeiten des Archivs /var/cache/apt/archives/php5-cgi_5.6.20+dfsg-0+deb8u1_amd64.deb (--unpack):
 Neue Version von »/usr/bin/php5-cgi« kann nicht installiert werden: Das Gerät oder die Ressource ist belegt
Edit:

Ein lsof /usr/bin/php5-cgi bringt keine Ergebnisse

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 01.05.2016 12:28:30

OK, nach einem Neustart kann ich plötzlich die gesperrten Dateien wieder löschen und verändern.

Nur: WAS sperrt denn bitte Dateien? Ich habe KEINEN Prozess gefunden, der /usr/bin/php5-cgi gesperrt hätte. Alle Dateiwerte waren wie bei den anderen Dateien in /usr/bin. Man sieht nichts auffälliges bei chattr, lsattr, ls -la, lsof

Nix, nada.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von rendegast » 01.05.2016 12:42:56

Versuche/Verbleibe

Code: Alles auswählen

... dist-upgrade

Im Problemfall bevorzuge ich
aptitude dist-upgrade [--without-recommends]
gegebenenfalls mehrmals.


Das Sperren dürfte vom Paketsystem kommen.
Eventuell ein Problem der deutschen Übersetzung,
ich bevorzuge das englische Original.
Geöffnete Dateien (windows: "handles") stellen kein Problem dar,
gegebenenfalls müssen nach dem Dateiaustausch betreffende Programme/Dienste neu gestartet werden

Code: Alles auswählen

checkrestart
lsof | grep deleted

auch
needrestart
(Die Installationsskripte selbst starten betreffende Dienste nicht immer neu)





-------------------------------------------------------------------
Anmerkung needrestart
ist ein wenig buggy, hier zBsp. ein java-Dienst

Code: Alles auswählen

# needrestart -b -rl
NEEDRESTART-VER: 2.7
NEEDRESTART-KCUR: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KEXP: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KSTA: 1
NEEDRESTART-SVC: openhab.service

# systemctl stop openhab.service 
# needrestart -b -rl
NEEDRESTART-VER: 2.7
NEEDRESTART-KCUR: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KEXP: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KSTA: 1

# systemctl start openhab.service 
# needrestart -b -rl
NEEDRESTART-VER: 2.7
NEEDRESTART-KCUR: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KEXP: 4.5.0-0.bpo.1-amd64
NEEDRESTART-KSTA: 1
NEEDRESTART-SVC: openhab.service
weiterhin bekommt es auf 32bit-Systemen das mit dem Kernel nicht hin:

Code: Alles auswählen

# needrestart -b -rl
NEEDRESTART-VER: 2.7
NEEDRESTART-KCUR: 4.5.0-0.bpo.1-686-pae
NEEDRESTART-KEXP: 4.5.0-0.bpo.1-686-pae (debian-kernel@lists.debian.org) #1 SMP Debian 4.5.1-1~bpo8+1 (2016-04-20)
NEEDRESTART-KSTA: 3
Ich habe versucht, mich durch den perl-Code zu wühlen, aber kein Erfolg.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 01.05.2016 13:03:56

Aber WIE sperrt das Paketsystem denn die Dateien? Ich habe beim Suchen via lsof nichts gefunden. Da hätte doch bei

Code: Alles auswählen

lsof | grep php
irgendwas kommen müssen?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von rendegast » 01.05.2016 13:24:06

Aber WIE sperrt das Paketsystem denn die Dateien?
Der Solver kommt zu einer unauflösbaren Situation und bricht die Aktion ab.
Hier durch das 'upgrade', das verhindert, daß andere Pakete auf die geänderte Version gehoben werden, insbesondere weitere Installationen unterbleiben.
Das 'dist-upgrade' kommt etwas lockerer daher, es erlaubt weitere Installationen, aber auch Deinstallationen.
Es akzeptiert also bei einem gerade behandelten Paket auch gerade unpassende Paketverhältnisse, um das Problem in Gänze zu lösen.


Auch dabei kann es Probleme geben.
Um einen eventuell nötigen Vorschlaghammer
'dpkg -i --force-all ...deb'
benutzen zu können, kann auf den Paketcache zurückgegriffen werden:

Code: Alles auswählen

aptitude -d dist-upgrade
aptitude --download-only dist-upgrade
die Pakete dürften dann im Paketcache
/var/cache/apt/archives/
zu finden sein.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 01.05.2016 13:38:04

Da habe ich mich falsch ausgedrückt. Die Datei /usr/bin/php5-cgi kann gar nicht verändert werden, weder durch mv oder durch rm. Es greift aber kein Prozess mehr auf die Datei zu.

Also: Wie sperrt die Paketverwaltung die Datei /usr/bin/php5-cgi? Ich habe dazu nichts gefunden, die Schreib/Leserechte waren bei root und auch sonst ist die Datei nicht ungewöhnlich. Den Apache hatte ich gestoppt, bei lsof sieht man nichts.

Irgendeine Idee?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von rendegast » 01.05.2016 14:37:10

Gehackt und ein root-Kit an Bord?

Das System mal offline(!) untersuchen.

Code: Alles auswählen

ls -l /usr/bin/php5-cgi
lsattr /usr/bin/php5-cgi

md5sum /usr/bin/php5-cgi
Hier zum Beispiel

Code: Alles auswählen

# dpkg -l | grep php5-cgi
ii  php5-cgi                    5.6.20+dfsg-0+deb8 i386               ...
# grep usr/bin/php5-cgi /var/lib/dpkg/info/*.md5sums
/var/lib/dpkg/info/php5-cgi.md5sums:a107900ad36a8a7384aab01436a4a37f  usr/bin/php5-cgi

# md5sum /usr/bin/php5-cgi
a107900ad36a8a7384aab01436a4a37f  /usr/bin/php5-cgi
Resp.

Code: Alles auswählen

cd /        # resp. Mountpunkt
md5sum -c var/lib/dpkg/info/*.md5sums   | egrep -v "OK$"
(obwohl den *.md5sums in dem Fall auch nicht mehr zu trauen wäre)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 03.05.2016 11:19:52

Hallo,

die Checksummen der beanstandeten Programme selber sehen o.k. aus, rkhunter findet auch nichts verdächtiges.

Aber bei

Code: Alles auswählen

md5sum -c var/lib/dpkg/info/*.md5sums   | egrep -v "OK$"
kommt eine Wust von Fehlermeldungen bei den verschiedensten Programmen. Ich denke, da hat es was versemmelt.

Code: Alles auswählen

md5sum: /var/lib/dpkg/info/apache2-mpm-prefork.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
usr/bin/autoconf: FEHLSCHLAG
usr/bin/autoheader: FEHLSCHLAG
usr/bin/autoreconf: FEHLSCHLAG
usr/share/man/man1/autoconf.1.gz: FEHLSCHLAG
md5sum: WARNUNG: 6 berechnete Prüfsummen passten NICHT
usr/share/man/man1/autoheader.1.gz: FEHLSCHLAG
usr/share/man/man1/autoreconf.1.gz: FEHLSCHLAG
md5sum: /var/lib/dpkg/info/bogofilter.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
md5sum: usr/share/doc/brhl2150nlpr/copyright: Datei oder Verzeichnis nicht gefunden
md5sum: usr/share/doc/brhl2150nlpr/changelog.Debian.gz: Datei oder Verzeichnis nicht gefunden
md5sum: WARNUNG: 2 aufgeführte Dateien konnten nicht gelesen werden
md5sum: WARNUNG: die 1 berechnete Prüfsumme passte NICHT
usr/share/doc/brhl2150nlpr/copyright: FEHLSCHLAG bei open oder read
usr/share/doc/brhl2150nlpr/changelog.Debian.gz: FEHLSCHLAG bei open oder read
usr/local/Brother/inf/brHL2150Nfunc: FEHLSCHLAG
md5sum: /var/lib/dpkg/info/cups-pdf.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
md5sum: /var/lib/dpkg/info/default-jre.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
md5sum: /var/lib/dpkg/info/g++.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
usr/sbin/update-icon-caches: FEHLSCHLAG
md5sum: WARNUNG: die 1 berechnete Prüfsumme passte NICHT
usr/lib/libreoffice/share/basic/dialog.xlc: FEHLSCHLAG
usr/lib/libreoffice/share/basic/script.xlc: FEHLSCHLAG
md5sum: WARNUNG: 2 berechnete Prüfsummen passten NICHT
md5sum: /var/lib/dpkg/info/module-init-tools.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
usr/lib/kde4/plasma_applet_ktp_presence.so: FEHLSCHLAG
md5sum: WARNUNG: die 1 berechnete Prüfsumme passte NICHT
md5sum: /var/lib/dpkg/info/python3-dev.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
md5sum: /var/lib/dpkg/info/python-dev.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
md5sum: /var/lib/dpkg/info/qemu-user-binfmt.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
usr/share/dbus-1/system-services/org.freedesktop.systemd1.service: FEHLSCHLAG
md5sum: WARNUNG: die 1 berechnete Prüfsumme passte NICHT
usr/share/vim/vim74/doc/help.txt: FEHLSCHLAG
usr/share/vim/vim74/doc/tags: FEHLSCHLAG

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von rendegast » 03.05.2016 15:56:15

Eine ganze Reihe davon dürften sich durch normale Manipulationen des Paketsystems erklären lassen, zBsp.:

Code: Alles auswählen

$ dpkg-query -S bin/update-icon-cach | sort
Umleitung durch libgtk-3-bin von: /usr/sbin/update-icon-caches
Umleitung durch libgtk-3-bin von: /usr/sbin/update-icon-caches
Umleitung durch libgtk-3-bin zu: /usr/sbin/update-icon-caches.gtk2
Umleitung durch libgtk-3-bin zu: /usr/sbin/update-icon-caches.gtk2
libgtk2.0-bin, libgtk-3-bin: /usr/sbin/update-icon-caches

$ grep bin/update-icon /var/lib/dpkg/info/*md5sums
/var/lib/dpkg/info/libgtk-3-bin.md5sums:6a2ca9da3d9e2cbb106f36a54a782ac6  usr/sbin/update-icon-caches
/var/lib/dpkg/info/libgtk2.0-bin.md5sums:80a83034c4bb4df42a288ee762d96b47  usr/sbin/update-icon-caches

$ md5sum usr/sbin/update-icon-caches*
6a2ca9da3d9e2cbb106f36a54a782ac6  usr/sbin/update-icon-caches
80a83034c4bb4df42a288ee762d96b47  usr/sbin/update-icon-caches.gtk2
oder auch

Code: Alles auswählen

$ dpkg-query -S basic/dialog.xlc | sort
Umleitung durch libreoffice-base von: /usr/lib/libreoffice/share/basic/dialog.xlc
Umleitung durch libreoffice-base von: /usr/lib/libreoffice/share/basic/dialog.xlc
Umleitung durch libreoffice-base zu: /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess
Umleitung durch libreoffice-base zu: /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess
libreoffice-common, libreoffice-base: /usr/lib/libreoffice/share/basic/dialog.xlc
libreoffice-common: /usr/lib/libreoffice/presets/basic/dialog.xlc
Wie zu sehen kann der Abgleich da durchaus länger ausfallen.

Wenn das was Du da gepostet hast, alles ist,
so ist das durchaus glimpflich.
md5sum: /var/lib/dpkg/info/apache2-mpm-prefork.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
Eine Erklärung wäre die Art des Paketes, ein dummy/meta/translation.
Wie auch

Code: Alles auswählen

$ ll /var/lib/dpkg/info/module-init-tools.md5sums 
-rw-r--r-- 1 root root 0 Feb  8  2015 /var/lib/dpkg/info/module-init-tools.md5sums

$ md5sum -c /var/lib/dpkg/info/module-init-tools.md5sums
md5sum: /var/lib/dpkg/info/module-init-tools.md5sums: keine korrekt formatierte MD5‐Prüfsummenzeile gefunden
Sind also leere Dateien.

Und *php* ist auch nicht dabei.




Denkbar wären Dateisystemfehler, eventuell ausgelöst durch Hardwaredefekte
-> 'dmesg'?
Wird vielleicht ein beta-Dateisystem benutzt? btrfs ist ja schon sehr stabil, ich benutze es auch,
aber wer weiß?


Um problematische Prozesse auszuschließen wäre der Vorgang offline / per chroot möglich.
Gegebenenfalls tricky, Upgrades von Diensten starten gerne diese Dienste neu,
dabei greifen sie bei einem einfachen chroot (Bind-Mount /proc, /sys, /dev) wiederum auf Ressourcen des Host zu.
Das Beenden von Diensten in chroot und Wiederherstellen der vorherigen Struktur des Host ist dann gelegentich nicht so einfach, zBsp. können Host-Prozesse plötzlich auf das /sys oder /proc des chroot bestehen.
Insbesondere problematisch ist sowas natürlich bei einem der Kompromittiertheit verdächtigen System.




Hat der Server vielleicht ein komplexeres Setup?
Ist zBsp. ein Container, der auf geteilte Ressourcen zugreift, zBsp. ein Stamm-Image oder -Verzeichnis?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 06.05.2016 12:31:48

OK, ich habe jetzt den Schuldigen gefunden: firejail

Sobald ich meinen Browser mit

Code: Alles auswählen

firejail iceweasel
starte, wird php5-cgi geblockt.

So etwas muss man doch irgendwie abfragen können? Mach das der Kernel auf Anweisung von firejail, also als eine Art policy-kit-Funktion?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von rendegast » 06.05.2016 13:42:42

firejail firefox
Ich finde diesbezüglich in disable-devel.inc
# PHP
blacklist /usr/bin/php*
blacklist /usr/share/php*
blacklist /usr/lib/php*
Wie firejail überhaupt arbeitet?
Im Paket findet sich zwar nichts bzgl. systemweiter Policy ala policykit oder selinux.
Aber /usr/bin/firejail ist SUID root, sodaß der vom normalen Benutzer solcherart gestartete Prozeß schon solche Auswirkungen haben könnte.

Eigentor.

Vielleicht mal firejail das SUID nehmen?
Aber ob es dann nocht effektiv arbeitet? oder überhaupt funktioniert?
Und es käme beim nächsten Upgrade wieder.
Bugreport?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

debianoli
Beiträge: 4175
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Kein Upgrade für php5 möglich

Beitrag von debianoli » 06.05.2016 13:51:13

Danke für den Hinweis auf /etc/firejail/disable-devel.inc , die Datei hatte ich übersehen.

Ja, das ist ein klassisches Eigentor. Blöd nur, dass man keinen Hinweis bei lsof, ls etc findet, was da die Dateien blockiert. Auf firejail bin ich mehr durch Zufall gekommen.

Edit: Habe gefunden, was bei firejail zum Einsatz kommt: https://firejail.wordpress.com/document ... omp-guide/

Antworten