Bizarrerie lors de l'installation de laptop-mode-tools

Tags: #<Tag:0x00007f63f46ebb58> #<Tag:0x00007f63f46eb950>

Salut
La première installation de laptop-mode-tools echoue

apt install laptop-mode-tools
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Paquets recommandés :
  sdparm
Les NOUVEAUX paquets suivants seront installés :
  laptop-mode-tools
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 124 ko dans les archives.
Après cette opération, 408 ko d'espace disque supplémentaires seront utilisés.
Réception de:1 http://deb.debian.org/debian buster/main amd64 laptop-mode-tools all 1.72-3 [124 kB]
124 ko réceptionnés en 0s (396 ko/s)        
Sélection du paquet laptop-mode-tools précédemment désélectionné.
(Lecture de la base de données... 192012 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../laptop-mode-tools_1.72-3_all.deb ...
Dépaquetage de laptop-mode-tools (1.72-3) ...
Paramétrage de laptop-mode-tools (1.72-3) ...
laptop-mode.service is not active, cannot reload.
invoke-rc.d: initscript laptop-mode, action "start" failed.
● laptop-mode.service - Laptop Mode Tools
   Loaded: loaded (/lib/systemd/system/laptop-mode.service; disabled; vendor preset: enabled)
   Active: activating (start) since Tue 2018-12-04 10:57:41 CET; 1s ago
     Docs: man:laptop_mode(8)
           man:laptop-mode.conf(8)
           http://github.com/rickysarraf/laptop-mode-tools
  Process: 2602 ExecStartPre=/bin/rm -f /var/run/laptop-mode-tools/state (code=exited, status=0/SUCCESS)
  Process: 2601 ExecStartPre=/bin/rm -f /var/run/laptop-mode-tools/enabled (code=exited, status=0/SUCCESS)
 Main PID: 2603 (laptop_mode)
    Tasks: 4
   Memory: 2.7M
   CGroup: /system.slice/laptop-mode.service
           ├─2603 /bin/sh /usr/sbin/laptop_mode init force
           ├─3007 /bin/sh /usr/sbin/laptop_mode init force
           ├─3838 /bin/sh /usr/sbin/laptop_mode init force
           └─3839 /bin/sh /usr/sbin/laptop_mode init force

déc. 04 10:57:41 debian systemd[1]: Starting Laptop Mode Tools...
déc. 04 10:57:41 debian laptop-mode[2641]: enabled, not active
déc. 04 10:57:41 debian laptop_mode[2603]: enabled, not active
déc. 04 10:57:41 debian su[2800]: (to guy) root on none
déc. 04 10:57:42 debian su[2800]: pam_unix(su:session): session opened for user guy by (uid=0)
déc. 04 10:57:42 debian laptop_mode[2603]: Cannot find device "eth0"
déc. 04 10:57:42 debian su[2800]: pam_unix(su:session): session closed for user guy
déc. 04 10:57:43 debian systemd[1]: laptop-mode.service: Unit cannot be reloaded because it is inactive.
dpkg: erreur de traitement du paquet laptop-mode-tools (--configure) :
 installed laptop-mode-tools package post-installation script subprocess returned error exit status 1
Traitement des actions différées (« triggers ») pour mime-support (3.61) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.23-4) ...
Traitement des actions différées (« triggers ») pour systemd (239-13) ...
Traitement des actions différées (« triggers ») pour man-db (2.8.4-3) ...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-11) ...
Des erreurs ont été rencontrées pendant l'exécution :
 laptop-mode-tools
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)

Voyant cela je l’active moi-même

 systemctl enable laptop-mode.service
Synchronizing state of laptop-mode.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable laptop-mode
Created symlink /etc/systemd/system/multi-user.target.wants/laptop-mode.service → /lib/systemd/system/laptop-mode.service.

mais le paquet est toujours dans un état nok

 dpkg -l laptop-mode-tools
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom               Version      Architecture Description
+++-=================-============-============-==================================================
iF  laptop-mode-tools 1.72-3       all          Tools for Power Savings based on battery/AC status

Une deuxième installation alors que l’outil est activé, résoud le problème en allant jusqu’au bout

apt install laptop-mode-tools
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
laptop-mode-tools est déjà la version la plus récente (1.72-3).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] 
Paramétrage de laptop-mode-tools (1.72-3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/laptop-mode.timer → /lib/systemd/system/laptop-mode.timer.
Created symlink /etc/systemd/system/multi-user.target.wants/lmt-poll.service → /lib/systemd/system/lmt-poll.service.

root@debian:~# dpkg -l laptop-mode-tools
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom               Version      Architecture Description
+++-=================-============-============-==================================================
ii  laptop-mode-tools 1.72-3       all          Tools for Power Savings based on battery/AC status

Pas génial tout ça :face_with_raised_eyebrow:

systemctl status laptop-mode.service
● laptop-mode.service - Laptop Mode Tools
   Loaded: loaded (/lib/systemd/system/laptop-mode.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2018-12-04 10:59:39 CET; 23min ago
     Docs: man:laptop_mode(8)
           man:laptop-mode.conf(8)
           http://github.com/rickysarraf/laptop-mode-tools
  Process: 7875 ExecReload=/usr/sbin/laptop_mode auto (code=exited, status=0/SUCCESS)
 Main PID: 5819 (code=exited, status=0/SUCCESS)

déc. 04 11:16:12 debian laptop_mode[7786]: enabled, not active [unchanged]
déc. 04 11:16:12 debian systemd[1]: Reloaded Laptop Mode Tools.
déc. 04 11:19:12 debian systemd[1]: Reloading Laptop Mode Tools.
déc. 04 11:19:12 debian laptop_mode[7834]: Laptop mode
déc. 04 11:19:12 debian laptop_mode[7834]: enabled, not active [unchanged]
déc. 04 11:19:12 debian systemd[1]: Reloaded Laptop Mode Tools.
déc. 04 11:22:12 debian systemd[1]: Reloading Laptop Mode Tools.
déc. 04 11:22:12 debian laptop_mode[7875]: Laptop mode
déc. 04 11:22:12 debian laptop_mode[7875]: enabled, not active [unchanged]
déc. 04 11:22:12 debian systemd[1]: Reloaded Laptop Mode Tools.

Est-ce pareil pour vous?

Testé l’installation en direct, aucun souci pour moi, sur un portable (!) en x64 testing.
Ça fait pas avancer le schmilblick, mon message.

Pas testé, mais

indique un post-inst qui pose potentiellement problème. A la fin de ce fichier (/var/lib/dpkg/info/laptop-mode-tools.postinst), selon la méthode d’empaquetage choisie par le mainteneur, tu auras probablement à la fin des lignes ajoutées par les scripts debhelper, du style (je précise que j’ai juste pris un fichier post-inst d’un autre paquet et remplacé le nom du paquet par laptop-mode-tools, donc il faudrait vérifier avec le vrai script de laptop-mode-tools, mais je n’ai pas de quoi faire cette vérif):

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_installinit
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
        if [ -x "/etc/init.d/laptop-mode-tools" ]; then
                update-rc.d laptop-mode-tools defaults >/dev/null
                if [ -n "$2" ]; then
                        _dh_action=restart
                else
                        _dh_action=start
                fi
                invoke-rc.d laptop-mode-tools $_dh_action || exit $?
        fi
fi
# End automatically added section

Tu aurais donc eu un invoke-rc.d laptop-mode-tools restart qui aurait échoué, mais je n’arrive pas bien à comprendre pourquoi il est entré dans ce cas de figure (quel était l’argument présent en 2e position de l’appel au script, après ‘configure’), au lieu de juste faire invoke-rc.d laptop-mode-tools start

Pour creuser plus avant il faudrait:

  • supprimer (purger) le paquet
  • refaire l’installation pour reproduire le problème
  • éditer le script postinst pour ajouter set -x au début, et relancer l’installation avec dpkg-(re)configure laptop-mode-tools

Bon, pas certain que ça en vaille la peine dans ton cas, l’important étant que le laptop-mode-tools fonctionne.

Non reproduit, encore un mystère de l’informatique ou de l’influence des trous noirs :upside_down_face: