Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
Bonsoir Philippe, On 05/14/2017 12:37 PM, MERLIN Philippe wrote: > Quand j'ouvre une session avec Kdm j'obtiens un écran gris et > le plus étrange c'est que la souris fonctionne, en examinant > attentivement on voit que le serveur X marche également > En regardant .Xsession-errors on voit une erreur que je > retranscris de mémoire > Kdm[1401] pam_ck_connector (kde:session) : noX11 mode > Je me suis dit puisque Kdm me joue un tour essayons Sddm et là > un autre problème impossible d'ouvrir une session car > impossible de passer la phase authentification tous mes comptes > sont refusés. > Remarque : J'avais déjà ce problème en 32 bits mais comme Kdm > fonctionnait je me disais que je regarderais ce problème plus > tard. Je n'ai guère que deux conjectures en tête dans ce cas : 1. Soit le problème est lié au multi arch et un ou plusieurs paquets i386 associés de prêt ou de loin à PAM ou KDM marchent sur les pieds du paquet homologue en amd64. (ConsoleKit?) 2. Soit le problème est bel et bien lié à la configuration de PAM, qui donc serait à revoir, voir à remettre à zéro si applicable, ce que laisse particulièrement penser le symptôme de Sddm. À tout hasard, jette également un œil dans le journal de Xorg : /var/log/Xorg.0.log > Voilà ou j'en suis de ma migration et étant actuellement loin > du poste incriminé, je ne peux continuer mes recherches. Difficile effective de poursuivre sans avoir la machine à portée de main. :) Bon courage pour la fin de la migration -- Étienne Mollier
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
Merci Étienne, Actuellement j'ai du arrêter mon travail de la migration 32 bits--64 bits car je suis en dehors de chez moi. Je n'ai pas tenu au courant la liste des progrès dans cette migration . J'avais réussi à passer ce problème en modifiant comme l'indique Étienne le script /var/lib/dpkg/info/python3-pil:i386.prerm et tout alors à fonctionner à merveille, sauf et c'est là que je me suis arrêter. Quand j'ouvre une session avec Kdm j'obtiens un écran gris et le plus étrange c'est que la souris fonctionne, en examinant attentivement on voit que le serveur X marche également En regardant .Xsession-errors on voit une erreur que je retranscris de mémoire Kdm[1401] pam_ck_connector (kde:session) : noX11 mode Je me suis dit puisque Kdm me joue un tour essayons Sddm et là un autre problème impossible d'ouvrir une session car impossible de passer la phase authentification tous mes comptes sont refusés. Remarque : J'avais déjà ce problème en 32 bits mais comme Kdm fonctionnait je me disais que je regarderais ce problème plus tard. Voilà ou j'en suis de ma migration et étant actuellement loin du poste incriminé, je ne peux continuer mes recherches. Encore merci. Philippe Merlin Le vendredi 12 mai 2017, 23:07:25 CEST Étienne Mollier a écrit : > On 05/06/2017 06:50 PM, MERLIN Philippe wrote: > > Bonsoir, > > J'avance péniblement dans cette migration et j'espérais arriver > > à la fin > > Las !!! > > J'arrive à obtenir un apt-get -f install qui semble cohérent > > sauf que python3 a frappé et me bloque, je ne sais pas comment > > m'en sortir. > > Bonsoir Philippe, > > J'ai pris un peu de temps pour sauvagement torturer une VM Debian > afin de voir si j'arrivais à me retrouver dans la même situation. > Plein de problèmes se sont produits, mais celui-ci je n'ai pas > réussi à le voir passer, faute d'avoir pu réussir à atteindre la > fin de mon second crossgrade sans tout casser. Ceci dit, ça m'a > permis d'avoir peut-être une idée pour décoincer la situation... > > > Les scripts de python3 semblent ne pas avoir envisager la > > possibilité d'avoir un instant donné deux versions d'un paquet > > i386 et amd64 si bien que dpkg -L paquet sort en erreur, à la > > main un dpkg -l paquet:i386 marche très bien. > > > > #!/bin/sh > set -e > > # Automatically added by dh_python3: > if which py3clean >/dev/null 2>&1; then > py3clean -p python3-pil > else > dpkg -L python3-pil | perl -ne > 's,/([^/]*)\.py$,/__pycache__/\1.*, or next; unlink $_ or die $! > foreach glob($_)' > find /usr/lib/python3/dist-packages/ -type d -name > __pycache__ -empty -print0 | xargs --null --no-run-if-empty rmdir > fi > > # End automatically added section > > La ligne qui produit l'erreur est très probablement celle en > `dpkg -L python3-pil | ...' qui gagnerait à être rédigée sous la > forme `dpkg -L python3-pil:i386 | ...'. La correction peut être > effectuée dans le script enregistré par `dpkg' à l'installation > de python3-pil, et qui devrait se nommer > > /var/lib/dpkg/info/python3-pil:i386.prerm > > ou si l'architecture n'est pas présente (mais je crains une > confusion avec le paquet 64bits dans ce cas) : > > /var/lib/dpkg/info/python3-pil.prerm > > À plus,
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
On 05/06/2017 06:50 PM, MERLIN Philippe wrote: > Bonsoir, > J'avance péniblement dans cette migration et j'espérais arriver > à la fin > Las !!! > J'arrive à obtenir un apt-get -f install qui semble cohérent > sauf que python3 a frappé et me bloque, je ne sais pas comment > m'en sortir. Bonsoir Philippe, J'ai pris un peu de temps pour sauvagement torturer une VM Debian afin de voir si j'arrivais à me retrouver dans la même situation. Plein de problèmes se sont produits, mais celui-ci je n'ai pas réussi à le voir passer, faute d'avoir pu réussir à atteindre la fin de mon second crossgrade sans tout casser. Ceci dit, ça m'a permis d'avoir peut-être une idée pour décoincer la situation... > Les scripts de python3 semblent ne pas avoir envisager la > possibilité d'avoir un instant donné deux versions d'un paquet > i386 et amd64 si bien que dpkg -L paquet sort en erreur, à la > main un dpkg -l paquet:i386 marche très bien. > Voici la sortie d'erreur : > > Suppression de python3-pil:i386 (4.0.0-4) ... > dpkg-query: erreur: --listfiles requiert un nom de paquet légal. « > python3-pil » ne l'est pas ; nom de paquet « python3-pil » ambigu avec plus > d'une instance installée Cette erreur se produit dans le script de pre-removal `prerm' extrait du paquet python3-pil_4.0.0-4_amd64.deb, script reproduit ci-dessous: #!/bin/sh set -e # Automatically added by dh_python3: if which py3clean >/dev/null 2>&1; then py3clean -p python3-pil else dpkg -L python3-pil | perl -ne 's,/([^/]*)\.py$,/__pycache__/\1.*, or next; unlink $_ or die $! foreach glob($_)' find /usr/lib/python3/dist-packages/ -type d -name __pycache__ -empty -print0 | xargs --null --no-run-if-empty rmdir fi # End automatically added section La ligne qui produit l'erreur est très probablement celle en `dpkg -L python3-pil | ...' qui gagnerait à être rédigée sous la forme `dpkg -L python3-pil:i386 | ...'. La correction peut être effectuée dans le script enregistré par `dpkg' à l'installation de python3-pil, et qui devrait se nommer /var/lib/dpkg/info/python3-pil:i386.prerm ou si l'architecture n'est pas présente (mais je crains une confusion avec le paquet 64bits dans ce cas) : /var/lib/dpkg/info/python3-pil.prerm Aux écarts de versions près, le contenu ne devrait pas différer du code cité plus haut. Il faudrait relancer la moulinette `apt-get' après modification de ce script et voir comment la situation évolue. À plus, -- Étienne Mollier
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
On 05/09/2017 07:27 PM, Daniel Caillibaud wrote: > Je me suis demandé pourquoi xargs sur > >> apt-get install $(xargs < packages) > > car en bash le $(< fichierQcq) transforme les \n en espaces, et > je l'utilise depuis des années sans me poser de question, mais > effectivement avec dash (par ex) $( pas la 1re ligne) et xargs est alors nécessaire. Bonjour Daniel, J'aurais aimé dire que c'était voulu, mais à la base, c'était une simple méconnaissance de cette construction de ma part. Merci beaucoup, j'ai appris un truc, très utile qui plus est. :D Effectivement, dépendant des situations, les constructions ne sont pas toujours possibles. Par exemple, si on a cassé la lib C et qu'on ne peut se ratrapper qu'avec un shell `busybox ash', alors la construction utilisable dans ce cas est celle en `xargs'. Et encore, parce que `xargs' est un builtin de busybox. Sinon dans ce cas précis, en `dash', aucune des constructions n'aurait fonctionné. Enfin, en `bash' seule la construction en `$(
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
Le 05/05/17 à 20:05, Étienne Mollier a écrit : > Intéressante manipulation, j'ai essayé dans une machine > virtuelle. Le moins qu'on puisse dire, c'est que c'est délicat. Et intéressante contribution ! Je me suis demandé pourquoi xargs sur > apt-get install $(xargs < packages) car en bash le $(< fichierQcq) transforme les \n en espaces, et je l'utilise depuis des années sans me poser de question, mais effectivement avec dash (par ex) $(
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
Bonsoir, J'avance péniblement dans cette migration et j'espérais arriver à la fin Las !!! J'arrive à obtenir un apt-get -f install qui semble cohérent sauf que python3 a frappé et me bloque, je ne sais pas comment m'en sortir. Les scripts de python3 semblent ne pas avoir envisager la possibilité d'avoir un instant donné deux versions d'un paquet i386 et amd64 si bien que dpkg -L paquet sort en erreur, à la main un dpkg -l paquet:i386 marche très bien. Voici la sortie d'erreur : Suppression de python3-pil:i386 (4.0.0-4) ... dpkg-query: erreur: --listfiles requiert un nom de paquet légal. « python3-p il » ne l'est pas ; nom de paquet « python3-pil » ambigu avec plus d'une instance installée Utiliser --help pour de l'aide sur la recherche de paquets. Traceback (most recent call last): File "/usr/bin/py3clean", line 210, in main() File "/usr/bin/py3clean", line 196, in main pfiles = set(dpf.from_package(options.package)) File "/usr/share/python3/debpython/files.py", line 53, in from_package raise Exception("cannot get content of %s" % package_name) Exception: cannot get content of python3-pil dpkg: erreur de traitement du paquet python3-pil:i386 (--remove) : le sous-processus script pre-removal installé a retourné une erreur de sortie d'état 1 dpkg-query: erreur: --listfiles requiert un nom de paquet légal. « python3-p il » ne l'est pas ; nom de paquet « python3-pil » ambigu avec plus d'une instance installée Utiliser --help pour de l'aide sur la recherche de paquets. Traceback (most recent call last): File "/usr/bin/py3compile", line 290, in main() File "/usr/bin/py3compile", line 270, in main options.force, options.optimize, e_patterns) File "/usr/bin/py3compile", line 154, in compile for fn, versions_to_compile in filter_files(files, e_patterns, versions): File "/usr/bin/py3compile", line 106, in filter_files for fn in files: File "/usr/share/python3/debpython/files.py", line 71, in filter_public for fn in files: File "/usr/share/python3/debpython/files.py", line 53, in from_package raise Exception("cannot get content of %s" % package_name) Exception: cannot get content of python3-pil dpkg: error while cleaning up: le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1 Des erreurs ont été rencontrées pendant l'exécution : python3-pil:i386 Si quelqu'un peut m'aider ou m'indiquer une piste pour m'en sortir, je serais très reconnaissant. Philippe Merlin P.S. Je remercie Etienne Mollier pour son message qui était très intéressant, si j'avais lu le lien qu'il indique j'aurais certainement agis différemment, malheureusement j'étais déjà bien avancé dans ma migration et je ne pouvais pas revenir en arrière
Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing
Bonjour Philippe, Philippe Merlin, le 2017-05-04 à 14:53:16 CEST : > Sur ce poste est installé la Debian testing à jour et j'ai > essayé de migrer d'une version 32 bits vers 64 bits en suivant > la doc > > https://wiki.debian.org/CrossGrading Intéressante manipulation, j'ai essayé dans une machine virtuelle. Le moins qu'on puisse dire, c'est que c'est délicat. Ma configuration était une machine en Testing avec uniquement les composants de base, donc je suis probablement passé à côté des problèmes de configuration. Avant toute chose, j'espère que tu as une copie de sauvegarde des donnée de ta machine et de sa configuration et que tu sais comment la restaurer. Les liens en bas de la page du wiki CrossGrading renvoient sur d'autres retours d'expérience. Il ne faut pas hésiter à les consulter également pour voir leurs approches. En particulier, j'ai trouvé de l'inspiration dans l'article suivant : http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html Ce n'est pas mentionné dans ton courriel, mais je pars du principe que tu as pu installer tes commandes tar, dpkg et apt en version 64bits : $ file $(which tar) /bin/tar: ELF 64-bit LSB shared object, ... $ file $(which dpkg) /usr/bin/dpkg: ELF 64-bit LSB shared object, ... $ file $(which apt-get) /usr/bin/apt-get: ELF 64-bit LSB shared object, ... Si ce n'est pas le cas et que quelque chose a cassé, les manipulations à base de `ar' et de `busybox tar' mentionnée dans les retours d'expérience peuvent éventuellement te sauver la mise. > Tout a très bien marché, j'ai bien migré vers une version 64 > bits de la testing qui fonctionne très bien avec un noyau AMD > 64 et des librairies 32 bits Merci Multi-Arch , mais il y a un > mais Si je veux migrer tous les paquets installés de 32 > bits à 64 bits par la commande : > > dpkg --get-selections|grep :i386 |sed -e s/:i386/:amd64/ | dpkg > --set-selections > > J'obtiens une liste de warning : > > package not in status nor available database a line xxx : :amd64 > > une ligne par paquet répondant à dpkg --get-selections > On dirait que les paquets amd64 sont ignorés. Les paquets amd64 sont effectivement ignorés. L'erreur se produit dans mon cas d'utilisation aussi. Un gourou de dpkg aura sans doute la solution pour résoudre ce problème proprement. Pour ma part, je suis passé par un fichier temporaire `packages` pour pouvoir travailler dedans avec un éditeur de texte : dpkg --get-selections\ | grep :i386 \ | sed -e s/:i386/:amd64/ \ | awk '{print $1}' \ > packages Le fichier `packages` contient une liste des paquets, un par ligne, sans le champ d'état d'installation. Je le réutilise pour une première tentative d'installation des paquets en 64bits : apt-get install $(xargs < packages) À la première passe, `apt` sort des erreurs sur des paquets introuvable. Il faut les retirer de la liste. Typiquement les images linux 686 sont en cause, mais éventuellement certaines versions de paquets devenus obsolètes, si des mises à jour sont passées pendant la crossgrade. C'est souvent le cas des paquets qui ont leur numéro de version dans leur nom, pour faciliter l'installation de versions différentes sur un même système. En relançant la commande sans les erreurs sur les paquets indisponibles, l'installation démarre. Étant donné les composants de cœur en 32bits qui nécessiteront un désinstallation, il est vraisemblable qu'apt demande de confirmer l'opération par la saisie au clavier d'une locution: "Yes, do as I say!" sur une machine localisée en en_US. La désinstallation de perl-base:i386 dans mon cas a été la cause du message. Si l'opération plante, passer un coup `apt-get -f install` avant de recommencer avec la liste complète des paquets. Il est probable que certain services récalcitrants bloquent le gestionnaire de paquet. Dans ce cas j'ai eu la chance de pouvoir désinstaller manuellement le composant, puis le réinstaller après coup dans sa nouvelle architecture. En l'occurrence, il s'agissait du passage de acpid:i386 à acpid:amd64. Quand une tentative d'installation de l'ensemble des paquets termine en disant que tout est bien installé et qu'aucune opération n'est à effectuer, alors la partie 64bits du système est normalement complète. Les paquets en 32bits peuvent être enlevés : dpkg --get-selections \ | grep :i386 \ | awk '{print $1}'\ > packages.i386 apt-get remove $(xargs < packages.i386) À ce stade, le système ne doit plus comporter de binaire 32bits sur disque et être capable de tourner juste avec les paquets amd64. Reste à redémarrer la machine pour arrêter les processus 32bits encore en cours d'exécution, tel l'init. Si la machine est capable de redémarrer correctement avec ses services opérationnels après ce traitement, alors la bouteille réser
Migration 32 bits vers 64 bits gros problème avec dpkg testing
Bonjour, Sur ce poste est installé la Debian testing à jour et j'ai essayé de migrer d'une version 32 bits vers 64 bits en suivant la doc https://wiki.debian.org/CrossGrading Tout a très bien marché, j'ai bien migré vers une version 64 bits de la testing qui fonctionne très bien avec un noyau AMD 64 et des librairies 32 bits Merci Multi-Arch , mais il y a un mais Si je veux migrer tous les paquets installés de 32 bits à 64 bits par la commande : dpkg --get-selections|grep :i386 |sed -e s/:i386/:amd64/ | dpkg --set- selections J'obtiens une liste de warning : package not in status nor available database a line xxx : :amd64 une ligne par paquet répondant à dpkg --get-selections On dirait que les paquets amd64 sont ignorés. dpkg --print-architecture me donne bien amd64 si je fait un apt-cache policy (xpack étant un paquet i386) le paquet est dit non installé et le candidat est un paquet amd64 si je fait un apt-get download xpack c'est bien un paquet amd64 qui arrive. J'ai fait des apt-get update j'ai essayé beaucoup de commande : sync-available qui donne "l'information sur 90355 paquets a été mis à jour" toujours sans succès un apt-get -f install se casse la figure avec des tas d'insultes donc résumons cela marche grâce à multi-arch mais je ne peux plus faire de mis à jour. Avez vous rencontrer ce problème, ou pourrais je m'adresser pour avoir de l'aide ? Philippe Merlin P.S. les commentaires du genre c'est ta faute tu l'as bien cherché ne sont pas la bienvenue