Re: Migration 32 bits vers 64 bits gros problème avec dpkg testing

2017-05-15 Par sujet Étienne Mollier
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

2017-05-14 Par sujet MERLIN Philippe
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

2017-05-12 Par sujet Étienne Mollier

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

2017-05-12 Par sujet Étienne Mollier
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

2017-05-09 Par sujet Daniel Caillibaud
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

2017-05-06 Par sujet MERLIN Philippe
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

2017-05-05 Par sujet Étienne Mollier
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

2017-05-04 Par sujet MERLIN Philippe
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