[Résolu]Erreur sur boinc-client

Ayant voulu réaliser aujourd’hui un aptitude update, je me heurte au souci suivant:
à priori il y a un souci avec boinc-client.
J’ai tenté un purge, un remove, un reinstall, même erreur:

0 packages upgraded, 0 newly installed, 1 to remove and 18 not upgraded.
Need to get 0B of archives. After unpacking 1094kB will be freed.
Writing extended state information… Done
dpkg: error processing boinc-client (–remove):
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.
terminate called after throwing an instance of 'std::logic_error’
what(): basic_string::_S_construct NULL not valid
Aborted
demonaz:/home/abbath# Errors were encountered while processing:

Une idée?

Merci.

tu peux peut être t’inspirer de ce que dit fran.b ici:
forum.debian-fr.org/viewtopic.php?t=4727

Super Mattotop, ca a fonctionné, en faisant un aptitude purge après ces lignes:

echo > /var/lib/dpkg/info/boinc-client.prerm << EOF

#!/bin/bash
exit 0
EOF

chmod 755 /var/lib/dpkg/info/boinc-client.prerm

aptitude purge boinc-client

(un aptitude remove seul ne fonctionnait pas).

Pour info., qu’est ce qu’on a fait en executant ces lignes? On lance un sous-processus? (un second “shell”, en gros?)

ça remplace le script “prerm” (pre suppression) qui plante dans le paquet par un fichier vide. Du coup, son execution ne plante plus, et permet à l’operation de remove de apt de se terminer complètement, en executant pas les operations de nettoyage du script qui plante.

Et ces lignes, que font-elles exactement? (désolé, j’essaie de comprendre pour la prochaine fois :blush: )

echo > /var/lib/dpkg/info/boinc-client.prerm << EOF

#!/bin/bash
exit 0
EOF

Mârci

man bash

[quote] Document en ligne
Avec ce type de redirection, le shell va lire son entrée standard jusqu’à ce qu’il atteigne
une ligne contenant uniquement le mot prévu (sans espaces à la suite), nommée étiquette. Une
fois cette étiquette atteinte, il exécutera la commande demandée en lui fournissant en entrée
le texte lu avant l’étiquette, que l’on appelle document en ligne.

   Le format des documents en ligne est le suivant :

          <<[-]mot
                  document en ligne
          étiquette[/quote]
# echo > /var/lib/dpkg/info/boinc-client.prerm << EOF
#!/bin/bash
exit 0
EOF [/code]
echo > /var/lib/dpkg/info/boinc-client.prerm ecrit dans le fichier 
<< EOF jusqu'a trouver le mot clef EOF

Au final voilà ce qu'il y a dans le fichier:
[code]#!/bin/bash
exit 0

[quote=“isterios”]Et ces lignes, que font-elles exactement? (désolé, j’essaie de comprendre pour la prochaine fois :blush: )

echo > /var/lib/dpkg/info/boinc-client.prerm << EOF

#!/bin/bash
exit 0
EOF

Mârci[/quote]

$ echo > tutu << EOF
bla bla
bli bli

EOF

met dans le fichier tutu ce que l’on tape jusqu’à EOF. Pratique +++

echo redirige sa sortie standard sur le fichier de preremove de boinc-client (> /var/lib/dpkg/info/boinc-client.prerm) et prend son entrée sur l’entrée standard du shell courant jusqu’à ce qu’il rencontre la chaine EOF ( << EOF ).
ce qui vient ensuite jusqu’à EOF est donc “echoisé” dans /var/lib/dpkg/info/boinc-client.prerm.
Ca va ?

Exemple:

$ cat >toto << FIN là, tu tapes ce que tu veux, et tu termines par FIN$ cat toto ...

Merci bcp à vous :wink: