Perl: Abbruch bei jedem Aufruf
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
Hallo miteinander, habe auf einer Maschine mit perl-5.8.8-14.7 das Problem, dass bei jedem Aufruf eines Perl-Scripts die Sache abbricht. Beispiel: ---snip--- sapsom:~ # perl -MCPAN -e shell IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm line 263. BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm line 263. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Seekable.pm line 101. BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Seekable.pm line 101. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/File.pm line 133. BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/File.pm line 133. Compilation failed in require at /usr/lib/perl5/5.8.8/FileHandle.pm line 9. Compilation failed in require at /usr/lib/perl5/5.8.8/CPAN.pm line 26. BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/CPAN.pm line 26. Compilation failed in require. BEGIN failed--compilation aborted. ---pins--- Das Perl ist durch ein "echtes" Update (SLES10SP1) auf die Maschine gekommen, und ich weiß nicht, welches "IO Modul" mit welchem "bootstrap" übereinstimmen muss. Im Paket perl ist /usr/lib/perl5/5.8.8/ExtUtils/Mkbootstrap.pm enthalten (ist das die Quelle des bootstrap parameters?) und auch viel IO. Aber wer oder was harmoniert da nicht? Eigentlich sollte ich den Support fragen, aber da da hier widersprüchliche Angaben über die Supportquellen vorlagen, wurde hier nur der 3monatige Installationssupport mitgekauft :-( Änderung ist in Arbeit, aber das Problem besteht schon jetzt :-( Für sachdienliche Hinweise bin ich dankbar. Gruß Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Fre, 23 Nov 2007, Werner Flamme schrieb:
habe auf einer Maschine mit perl-5.8.8-14.7 das Problem, dass bei jedem Aufruf eines Perl-Scripts die Sache abbricht. Beispiel: sapsom:~ # perl -MCPAN -e shell IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm line 263. [..] Das Perl ist durch ein "echtes" Update (SLES10SP1) auf die Maschine gekommen, und ich weiß nicht, welches "IO Modul" mit welchem "bootstrap" übereinstimmen muss.
Der "bootstrap"-Parameter ist der, der als verlangte Version von IO an XSLoader übergeben wird. XSLoader soll das Modul IO/IO.so laden, und zwar eben in Version >= 1.23, gefunden wird aber nur 1.22.
Im Paket perl ist /usr/lib/perl5/5.8.8/ExtUtils/Mkbootstrap.pm enthalten (ist das die Quelle des bootstrap parameters?) und auch viel IO. Aber wer oder was harmoniert da nicht?
Da das IO/IO Modul Teil des perl-Paketes ist, mußt du a) dieses aktualisieren oder b) IO::Handle (Paket perl-IO-Handle vermutlich) sowie alle weiteren, die ein zu neues IO::IO verlangen zu Versionen "downgraden", die zum perl-Paket passen. Hm. Bei der 9.1, die ich hier auch habe, steckt IO::Handle ebenfalls im perl-Paket. Wenn das bei dir auch der Fall ist, ist das ein eindeutiger Bug. HTH, -dnh -- Indifference will be the downfall of mankind, but who cares? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
David Haller [23.11.2007 17:40]:
Hallo,
Am Fre, 23 Nov 2007, Werner Flamme schrieb:
habe auf einer Maschine mit perl-5.8.8-14.7 das Problem, dass bei jedem Aufruf eines Perl-Scripts die Sache abbricht. Beispiel: sapsom:~ # perl -MCPAN -e shell IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm line 263. [..] Das Perl ist durch ein "echtes" Update (SLES10SP1) auf die Maschine gekommen, und ich weiß nicht, welches "IO Modul" mit welchem "bootstrap" übereinstimmen muss.
Der "bootstrap"-Parameter ist der, der als verlangte Version von IO an XSLoader übergeben wird. XSLoader soll das Modul IO/IO.so laden, und zwar eben in Version >= 1.23, gefunden wird aber nur 1.22.
Im Paket perl ist /usr/lib/perl5/5.8.8/ExtUtils/Mkbootstrap.pm enthalten (ist das die Quelle des bootstrap parameters?) und auch viel IO. Aber wer oder was harmoniert da nicht?
Da das IO/IO Modul Teil des perl-Paketes ist, mußt du a) dieses aktualisieren oder b) IO::Handle (Paket perl-IO-Handle vermutlich) sowie alle weiteren, die ein zu neues IO::IO verlangen zu Versionen "downgraden", die zum perl-Paket passen.
Hm. Bei der 9.1, die ich hier auch habe, steckt IO::Handle ebenfalls im perl-Paket. Wenn das bei dir auch der Fall ist, ist das ein eindeutiger Bug.
HTH, -dnh
Hallo David, danke für die Info, sie hat "etwas" geholfen - zumindest habe ich das Problem jetzt verstanden, wenn auch nicht gelöst. Nach Einspielen der ursprünglichen Perl-Version lief (natürlich) wieder alles, ich habe CPAN aufgerufen und IO von 1.22 auf 1.23 aktualisiert, aber - da IO ja im Perl-Core enthalten ist, vergeblich... Nach dem erneuten Update wieder derselbe Fehler. Also nochmal zurück, Perl läuft nun, ich könnte einen Bug melden. (Aber: ohne Support? Wo?) Frage mich nur, wieso ich der einzige bin, bei dem das auftritt. Kann doch nicht der einzige sein, der SLES10 SP1 einsetzt? Danke für die Hilfe, saacht Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Mon, 26 Nov 2007, Werner Flamme schrieb:
David Haller [23.11.2007 17:40]:
Am Fre, 23 Nov 2007, Werner Flamme schrieb:
habe auf einer Maschine mit perl-5.8.8-14.7 das Problem, dass bei jedem Aufruf eines Perl-Scripts die Sache abbricht. Beispiel: sapsom:~ # perl -MCPAN -e shell IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm line 263. [..] Der "bootstrap"-Parameter ist der, der als verlangte Version von IO an XSLoader übergeben wird. XSLoader soll das Modul IO/IO.so laden, und zwar eben in Version >= 1.23, gefunden wird aber nur 1.22. [..] Da das IO/IO Modul Teil des perl-Paketes ist, mußt du a) dieses aktualisieren oder b) IO::Handle (Paket perl-IO-Handle vermutlich) sowie alle weiteren, die ein zu neues IO::IO verlangen zu Versionen "downgraden", die zum perl-Paket passen. [..] danke für die Info, sie hat "etwas" geholfen - zumindest habe ich das Problem jetzt verstanden, wenn auch nicht gelöst.
Nach Einspielen der ursprünglichen Perl-Version lief (natürlich) wieder alles, ich habe CPAN aufgerufen und IO von 1.22 auf 1.23 aktualisiert,
IO oder IO::Handle? Und warum?
aber - da IO ja im Perl-Core enthalten ist, vergeblich... Nach dem erneuten Update wieder derselbe Fehler.
Ja logisch. Welche IO und IO::Handle Versionen hast du denn und woher? perl -e 'use IO; print $IO::VERSION, "\n";' perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";' rpm -qif `man -w 3 IO` rpm -qif `man -w 3 IO::Handle` Apropos: wenn nicht beide Module aus dem gleichen RPM stammen ist was faul. IO 1.23 und IO::Handle 1.27 sind auf CPAN im gleichen Tarball (IO-1.2301).
Also nochmal zurück, Perl läuft nun, ich könnte einen Bug melden. (Aber: ohne Support? Wo?)
Wenn das wirklich falsch gepackt ist (ein neues IO::Handle, das IO >= 1.23 verlang und im SLES Update steckte und ohne Abhängigkeit und Verfügbarkeit eines (patch-)RPMs mit IO 1.23, dann auf bugzilla.novell.com. Ansonsten liegt's an euch. -dnh -- [Überlange Sig] Dir ist schon klar, das 4 Zeilen genug sind? 4*4 Zeilen ist eine Kriegserklaerung. [Wolfgang Weisselberg in suse-linux] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
David Haller [26.11.2007 11:03]:
IO oder IO::Handle? Und warum?
IO. Weil ich Dich so verstanden hatte, dass IO die Ursache war.
aber - da IO ja im Perl-Core enthalten ist, vergeblich... Nach dem erneuten Update wieder derselbe Fehler.
Ja logisch.
Welche IO und IO::Handle Versionen hast du denn und woher?
perl -e 'use IO; print $IO::VERSION, "\n";' Vor dem Update aus dem SLES10-Update-Repository: 1.22 (aus dem Perl-RPM auf der Install-DVD) 1.23 (von CPAN, manuell installiert) nach dem Update: IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1.
perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";' 1.27 aus RPM (nach Update: siehe oben)
rpm -qif `man -w 3 IO` Name : perl Relocations: (not relocatable) Version : 5.8.8 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany Release : 14.2 Build Date: Fr 16 Jun 2006 14:20:09 CEST Install Date: Fr 23 Nov 2007 16:03:50 CET Build Host: icecream.suse.de Group : Development/Languages/Perl Source RPM: perl-5.8.8-14.2.src.rpm Size : 45395225 License: GPL, Artistic License Signature : DSA/SHA1, Fr 16 Jun 2006 14:22:06 CEST, Key ID a84edae89c800aca Packager : http://bugs.opensuse.org Summary : The Perl interpreter Description : perl - Practical Extraction and Report Language
Perl is optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It is also good for many system management tasks. Perl is intended to be practical (easy to use, efficient, and complete) rather than beautiful (tiny, elegant, and minimal). Some of the modules available on CPAN can be found in the "perl" series. Authors: -------- Larry Wall, Louis J. LaBash, Jr. <llabash@siue.edu> Distribution: SUSE Linux Enterprise 10 (X86-64)
rpm -qif `man -w 3 IO::Handle` Name : perl Relocations: (not relocatable) Version : 5.8.8 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany Release : 14.2 Build Date: Fr 16 Jun 2006 14:20:09 CEST Install Date: Fr 23 Nov 2007 16:03:50 CET Build Host: icecream.suse.de Group : Development/Languages/Perl Source RPM: perl-5.8.8-14.2.src.rpm Size : 45395225 License: GPL, Artistic License Signature : DSA/SHA1, Fr 16 Jun 2006 14:22:06 CEST, Key ID a84edae89c800aca Packager : http://bugs.opensuse.org Summary : The Perl interpreter Description : perl - Practical Extraction and Report Language
Perl is optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It is also good for many system management tasks. Perl is intended to be practical (easy to use, efficient, and complete) rather than beautiful (tiny, elegant, and minimal). Some of the modules available on CPAN can be found in the "perl" series. Authors: -------- Larry Wall, Louis J. LaBash, Jr. <llabash@siue.edu> Distribution: SUSE Linux Enterprise 10 (X86-64)
Apropos: wenn nicht beide Module aus dem gleichen RPM stammen ist was faul. IO 1.23 und IO::Handle 1.27 sind auf CPAN im gleichen Tarball (IO-1.2301).
Sie stammen eigentlich aus dem gleichen RPM - dem Perl-RPM. Nur ist z. Zt. IO 1.23 installiert, manuell von CPAN.
Also nochmal zurück, Perl läuft nun, ich könnte einen Bug melden. (Aber: ohne Support? Wo?)
Wenn das wirklich falsch gepackt ist (ein neues IO::Handle, das IO >= 1.23 verlang und im SLES Update steckte und ohne Abhängigkeit und Verfügbarkeit eines (patch-)RPMs mit IO 1.23, dann auf bugzilla.novell.com. Ansonsten liegt's an euch.
Tja, nach dem Einspielen funktionieren die beiden Perl-Zeilen (natürlich :-() nicht mehr. Die rpm-Zeilen geben wieder beide Male dasselbe Paket aus, allerdings diesmal Version 14.7 statt 14.2. Weitere Perl-Patches werden im YOU nicht angezeigt. Gruß Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Mon, 26 Nov 2007, Werner Flamme schrieb:
David Haller [26.11.2007 11:03]:
IO oder IO::Handle? Und warum? IO. Weil ich Dich so verstanden hatte, dass IO die Ursache war.
Nein. IO::Handle verlangt IO >= 1.23. Das heißt aber NICHT, daß du jetzt IO (d.h. perl) aktualisieren sollst.
aber - da IO ja im Perl-Core enthalten ist, vergeblich... Nach dem erneuten Update wieder derselbe Fehler.
Ja logisch.
Welche IO und IO::Handle Versionen hast du denn und woher?
perl -e 'use IO; print $IO::VERSION, "\n";' Vor dem Update aus dem SLES10-Update-Repository: 1.22 (aus dem Perl-RPM auf der Install-DVD) 1.23 (von CPAN, manuell installiert)
Wieso jetzt von CPAN? Laß das.
nach dem Update: IO object version 1.22 does not match bootstrap parameter 1.23 at /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm line 88. Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1.
Mir fällt grad ein: ISTR, daß diese Fehlermeldung auch bedeutet: IO.so (der C-Teil des Moduls) liegt als 1.22 vor, IO.pm (der Perl-Teil) als 1.23. *peng* => Update von IO aus CPAN hat nicht geklappt. Was mich auch nicht wundert.
perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";' 1.27 aus RPM (nach Update: siehe oben)
Ok.
rpm -qif `man -w 3 IO` Name : perl Relocations: (not relocatable) Version : 5.8.8 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany Release : 14.2 Build Date: Fr 16 Jun 2006 14:20:09 CEST
Ok.
rpm -qif `man -w 3 IO::Handle` Name : perl Relocations: (not relocatable) Version : 5.8.8 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany Release : 14.2 Build Date: Fr 16 Jun 2006 14:20:09 CEST
Ok. Allerdings bekommt RPM ja nix davon mit, wenn du was von CPAN aktualisierst. Aber die Module stammen (ursprünglich) aus dem perl-RPM. Das wollte ich wissen.
Apropos: wenn nicht beide Module aus dem gleichen RPM stammen ist was faul. IO 1.23 und IO::Handle 1.27 sind auf CPAN im gleichen Tarball (IO-1.2301).
Sie stammen eigentlich aus dem gleichen RPM - dem Perl-RPM. Nur ist z. Zt. IO 1.23 installiert, manuell von CPAN.
*grmpf*
Tja, nach dem Einspielen funktionieren die beiden Perl-Zeilen (natürlich :-() nicht mehr. Die rpm-Zeilen geben wieder beide Male dasselbe Paket aus, allerdings diesmal Version 14.7 statt 14.2.
Noch mal von vorn: Start: rpm von DVD/CD. perl-5.8.8-14.2, IO 1.22 und IO::Handle (1.27???) daraus. Dann installierst du das Update perl-5.8.8-14.7. Was tut? Wenn der Fehler auftritt: schick mir per PM mal die Ausgabe von: rpm -ql perl-5.8.8-14.2 > /tmp/perl-5.8.8-14.2.filelist rpm -ql perl-5.8.8-14.7 > /tmp/perl-5.8.8-14.7.filelist diff -u /tmp/perl-5.8.8-14.2.filelist /tmp/perl-5.8.8-14.7.filelist (ggfs. ersteres nach dem Update per: rpm -qpl /pfad/zur/dvd/suse/i586/perl-5.8.8-14.2....rpm) Dann hast du das Update von IO via CPAN versucht? Wie genau? -dnh -- Time is an illusion; lunchtime, doubly so. -- Ford Prefect -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
David Haller [26.11.2007 16:52]:
Hallo,
Am Mon, 26 Nov 2007, Werner Flamme schrieb:
David Haller [26.11.2007 11:03]:
IO oder IO::Handle? Und warum? IO. Weil ich Dich so verstanden hatte, dass IO die Ursache war.
Nein. IO::Handle verlangt IO >= 1.23.
Das heißt aber NICHT, daß du jetzt IO (d.h. perl) aktualisieren sollst.
Nach dem Perl-RPM-Downgrade habe ich versucht, via CPAN das IO-Modul zu aktualisieren, in der Hoffnung, dass es vielleicht vom RPM-Upgrade unberührt bleibt. Ich habe dazu in der cpan-shell den Befehl "install IO" eingegeben. Das Modul wurde heruntergeladen und installiert. Die Version war vorher 1.22, hinterher 1.23. Das habe ich getan, weil ich nicht wusste, ob IO zu den Modulen gehört, die ihre Unter-Module mitaktualisieren. Tut es anscheinend, denn die 1.27 für IO::Handle war nicht die Version im Original-RPM.
perl -e 'use IO; print $IO::VERSION, "\n";' Vor dem Update aus dem SLES10-Update-Repository: 1.22 (aus dem Perl-RPM auf der Install-DVD) 1.23 (von CPAN, manuell installiert)
Wieso jetzt von CPAN? Laß das. Das war der erste Fehlerbehebungsversuch. Der sollte inzwischen durch das mehrfache reinstallieren der 14.2 überbügelt worden sein.
Mir fällt grad ein: ISTR, daß diese Fehlermeldung auch bedeutet:
IO.so (der C-Teil des Moduls) liegt als 1.22 vor, IO.pm (der Perl-Teil) als 1.23. *peng*
=> Update von IO aus CPAN hat nicht geklappt. Was mich auch nicht wundert.
????? Doch, nachdem ich über die 14.2 das neue IO installiert habe, hat alles geklappt. Erst nach der Installation von 14.7 war tote Hose.
Allerdings bekommt RPM ja nix davon mit, wenn du was von CPAN aktualisierst. Aber die Module stammen (ursprünglich) aus dem perl-RPM. Das wollte ich wissen.
Ersteres war mir klar :-) Das zweite eigentlich auch... mein Co-Admin hat bisher nichts auf der Kiste getan, und ich kenne die Installationsquellen ;-)
Apropos: wenn nicht beide Module aus dem gleichen RPM stammen ist was faul. IO 1.23 und IO::Handle 1.27 sind auf CPAN im gleichen Tarball (IO-1.2301). Sie stammen eigentlich aus dem gleichen RPM - dem Perl-RPM. Nur ist z. Zt. IO 1.23 installiert, manuell von CPAN.
*grmpf*
Ist ja gut, hab ja wieder das Okinalrpm drüberinstalliert ;-)
Noch mal von vorn:
Start: rpm von DVD/CD. perl-5.8.8-14.2, IO 1.22 und IO::Handle (1.27???) daraus. Nach dem Update auf 14.7 wird ja nur noch der Fehler ausgegeben. Jetzt - also nach dem Downgrade - erhalte ich: # perl -e 'use IO; print $IO::VERSION, "\n";' 1.22 # perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";' 1.25
Dann installierst du das Update perl-5.8.8-14.7. Was tut? Nix mehr, bzw. nix perlendes mehr. Fehler tritt bei den Perl-Befehlen auf, wie im OP bei "perl -MCPAN -e shell" oder bei "perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";'"
Wenn der Fehler auftritt: schick mir per PM mal die Ausgabe von:
rpm -ql perl-5.8.8-14.2 > /tmp/perl-5.8.8-14.2.filelist rpm -ql perl-5.8.8-14.7 > /tmp/perl-5.8.8-14.7.filelist diff -u /tmp/perl-5.8.8-14.2.filelist /tmp/perl-5.8.8-14.7.filelist
Ist unterwegs. Diff zeigt mir nix.
(ggfs. ersteres nach dem Update per: rpm -qpl /pfad/zur/dvd/suse/i586/perl-5.8.8-14.2....rpm)
Neee :-), habe doch auf 14.2 zurückinstalliert. Filelist erzeugt, 14.7 installiert, Filelist erzeugt, 14.2 erneut installiert.
Dann hast du das Update von IO via CPAN versucht? Wie genau? Erst mit der Abkürzung "cpan". Fehler. Dann mit "perl -MCPAN -e shell". Reaktion: siehe OP... Ich wollte - da IO ein Problem hatte - IO aktualisieren. Aber ich bin ja gar nicht mehr ins CPAN gekommen...
Nochmal die Geschichte: - Original (14.2) war installiert, alles lief - im Update-Repo kam die 14.7, wurde installiert, nix lief mehr - ich habe die Mail geschrieben - um Perl wieder ans Funktionieren zu bringen, habe ich auf die 14.2 zurückgesetzt - in der Antwort tauchte IO als verantwortlich auf - ich habe IO aus CPAN aktualisiert (also auf die 14.2) und dann wieder die 14.7 installiert. Wie befürchtet wurde die Aktualisierung überbügelt, wieder lief nichts mehr - erneut auf die 14.2 zurückgesetzt Das ist der Stand, es sei denn, Du möchtest noch ein paar kaputte Ausgaben von der 14.7, dann installiere ich das mal wieder ;-) Danke für Deine Geduld :-) Gruß Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Mon, 26 Nov 2007, Werner Flamme schrieb:
David Haller [26.11.2007 16:52]: [..] ????? Doch, nachdem ich über die 14.2 das neue IO installiert habe, hat alles geklappt. Erst nach der Installation von 14.7 war tote Hose.
Ok. Hab's jetzt kapiert. ;) Ich nehme aber doch mal an, daß du "eigentlich" das Update -14.7 installieren willst, denn ohne tut's ja.
Noch mal von vorn:
Start: rpm von DVD/CD. perl-5.8.8-14.2, IO 1.22 und IO::Handle (1.27???) daraus. Nach dem Update auf 14.7 wird ja nur noch der Fehler ausgegeben. Jetzt - also nach dem Downgrade - erhalte ich: # perl -e 'use IO; print $IO::VERSION, "\n";' 1.22 # perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";' 1.25
Dann installierst du das Update perl-5.8.8-14.7. Was tut? Nix mehr, bzw. nix perlendes mehr. Fehler tritt bei den Perl-Befehlen auf, wie im OP bei "perl -MCPAN -e shell" oder bei "perl -e 'use IO::Handle; print $IO::Handle::VERSION, "\n";'"
Dann guck bitte mal "per Hand" mit DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" grep 'VERSION.*=' "${DIR}/IO.pm" grep 'VERSION.*=' "${DIR}/IO/Handle.pm" strings "${DIR}/auto/IO/IO.so" | grep -A1 'VERSION' unset DIR welche Versionen im -14.7er Paket drinstecken.
Dann hast du das Update von IO via CPAN versucht? Wie genau? Erst mit der Abkürzung "cpan". Fehler. Dann mit "perl -MCPAN -e shell". Reaktion: siehe OP... Ich wollte - da IO ein Problem hatte - IO aktualisieren. Aber ich bin ja gar nicht mehr ins CPAN gekommen...
Das CPAN Update vor der Installation der -14.7 kann ja nix bringen, da es durch das Update ja wieder überschrieben wird. Wenn, dann mußt du das anschließend installieren, was aber wohl nicht so einfach ist. Aber mal abwarten, was obiges an Versionen zeigt, denn das riecht ziemlich streng nach nem Bug im -14.7 Paket... -dnh -- Beware of bugs in the above code; I have only proved it correct, not tried it. - Donald Knuth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
David Haller schrieb:
Hallo,
Dann guck bitte mal "per Hand" mit
DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" grep 'VERSION.*=' "${DIR}/IO.pm" 1.22 (ha!)
grep 'VERSION.*=' "${DIR}/IO/Handle.pm"
1.25
strings "${DIR}/auto/IO/IO.so" | grep -A1 'VERSION'
XS_VERSION %s::%s (und im Binary steht gleich dahinter 1.22)
unset DIR
welche Versionen im -14.7er Paket drinstecken.
Das CPAN Update vor der Installation der -14.7 kann ja nix bringen, da ich hoffte halt - die Hoffnung stirbt zuletzt...
es durch das Update ja wieder überschrieben wird. Wenn, dann mußt du das anschließend installieren, was aber wohl nicht so einfach ist. Aber mal abwarten, was obiges an Versionen zeigt, denn das riecht ziemlich streng nach nem Bug im -14.7 Paket...
Das will ich doch stark hoffen - sonst läge es ja an mir ;-) Gruß Werner -- Werner Flamme, Abt. WKDV Helmholtz-Zentrum für Umweltforschung GmbH - UFZ Permoserstr. 15 - 04318 Leipzig Tel.: (0341) 235-1921 - Fax (0341) 235-451921 http://www.ufz.de - eMail: werner.flamme@ufz.de Information nach §§ 37a HGB, 35a GmbHG: Sitz der Gesellschaft: Leipzig Registergericht: Amtsgericht Leipzig, Handelsregister Nr. B 4703 Vorsitzender des Aufsichtsrats: MinDirig Hartmut F. Grübel Wissenschaftlicher Geschäftsführer: Prof. Dr. Georg Teutsch Administrativer Geschäftsführer: Dr. Andreas Schmidt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Die, 27 Nov 2007, Werner Flamme schrieb:
David Haller schrieb:
Dann guck bitte mal "per Hand" mit
DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" grep 'VERSION.*=' "${DIR}/IO.pm" 1.22 (ha!)
grep 'VERSION.*=' "${DIR}/IO/Handle.pm" 1.25
strings "${DIR}/auto/IO/IO.so" | grep -A1 'VERSION' XS_VERSION %s::%s (und im Binary steht gleich dahinter 1.22)
Hm. Das passt ja noch zusammen (IO und IO::Handle habe nicht die gleiche Version. Aktuell sind z.B. IO 1.23 und IO::Handle 1.27). Mit diesen Versionen sollte der Fehler eigentlich nicht auftreten. Und das sind die gleichen Versionen wie im -14.2er RPM IIRC. Das war jetzt schon mit installiertem -14.7er RPM? Oder in dem du per mc die Dateien aus dem 14.7-RPM (nach tmp o.ä.) rauskopierst und dann drin greppst. Achso, nochwas zum gucken: DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" egrep '\$VERSION.*=|XSLoader::load' "${DIR}/IO.pm" Das sollte z.B. sowas ergeben: $VERSION = "1.22"; XSLoader::load 'IO', $VERSION;
Das CPAN Update vor der Installation der -14.7 kann ja nix bringen, da ich hoffte halt - die Hoffnung stirbt zuletzt...
*g*
es durch das Update ja wieder überschrieben wird. Wenn, dann mußt du das anschließend installieren, was aber wohl nicht so einfach ist. Aber mal abwarten, was obiges an Versionen zeigt, denn das riecht ziemlich streng nach nem Bug im -14.7 Paket...
Das will ich doch stark hoffen - sonst läge es ja an mir ;-)
Jup. Kann's halt hier nicht nachvollziehen, ich denke aber, ein Bugzilla-Eintrag ist angebracht... -dnh -- Da hilft nur PraktiScript. "He, Praktikant, komme er her! Wochenende ist gestrichen!" -- ratti in suse-linux -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/164a625f3a558d1dac0727ce6a3ba850.jpg?s=120&d=mm&r=g)
David Haller [27.11.2007 17:04]:
Hallo,
Hm. Das passt ja noch zusammen (IO und IO::Handle habe nicht die gleiche Version. Aktuell sind z.B. IO 1.23 und IO::Handle 1.27).
Hmhm. Habe ich gesehen, als ich aus dem CPAN aktualisiert habe :-)
Mit diesen Versionen sollte der Fehler eigentlich nicht auftreten.
Hmpf. Bei SLES-Patches sollte eigentlich gar kein Fehler auftreten.
Und das sind die gleichen Versionen wie im -14.2er RPM IIRC.
Ja. Nur: warum verlangt "jemand" die 1.23, wenn die 1.22 installiert ist? Irgend was muss da schief stehen. Ich habe mal gesucht: ---snip--- # grep -rin "1\.23" * usr/bin/h2xs:462:my( $H2XS_VERSION ) = ' $Revision: 1.23 $ ' =~ /\$Revision:\s+([^\s]+)/; usr/bin/perlbug:57:# Changed in 1.23 Restore -ok(ay): say 'success'; don't prompt usr/lib/perl5/5.8.8/CGI/Carp.pm:235:1.23 ineval() now checks both $^S and inspects the message for the "eval" pattern usr/lib/perl5/5.8.8/CPAN.pm:6225:on CPAN in both version 1.23 and 1.23_90, CPAN.pm offers a convenient usr/lib/perl5/5.8.8/CPAN.pm:6226:way to install version 1.23 by saying usr/lib/perl5/5.8.8/CPAN.pm:6231:BAR/Foo-1.23.tar.gz) with all accompanying material. But if you would usr/lib/perl5/5.8.8/CPAN.pm:6232:like to install version 1.23_90, you need to know where the usr/lib/perl5/5.8.8/CPAN.pm:6234:directory. If the author is BAR, this might be BAR/Foo-1.23_90.tar.gz; usr/lib/perl5/5.8.8/CPAN.pm:6237: install BAR/Foo-1.23_90.tar.gz usr/lib/perl5/5.8.8/Exporter/Heavy.pm:129: # allow an easy version check: "use Foo 1.23, ''"; usr/lib/perl5/5.8.8/Math/BigFloat.pm:914: # (not with log(1.2345), but try log (123**123) to see what I mean. This usr/lib/perl5/5.8.8/Math/BigFloat.pm:1028: # log(123) == log(1.23) + log(10) * 2 usr/lib/perl5/5.8.8/Math/BigFloat.pm:1029: # log(0.0123) == log(1.23) - log(10) * 2 usr/lib/perl5/5.8.8/Math/BigFloat.pm:1052: _e_sub( $x->{_e}, $MBI->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23 usr/lib/perl5/5.8.8/Math/BigFloat.pm:1769: # no zeros after the dot (e.g. 1.23, 0.49 etc) usr/lib/perl5/5.8.8/Math/BigFloat.pm:2047: # 1.23 123e-2 3 0 2 usr/lib/perl5/5.8.8/Math/BigFloat.pm:2048: # 1.2345 12345e-4 5 0 4 usr/lib/perl5/5.8.8/Math/BigFloat.pm:2689: '123.45E-2' '1.2345' '12345E-4' usr/lib/perl5/5.8.8/Math/BigFloat.pm:3039:'+1.23', the new returns '1.23'. See the documentation in L<Math::BigInt> for usr/lib/perl5/5.8.8/bigint.pm:63: # integer. For instance, '4.5' => '4', '1.234e2' => '123' etc usr/lib/perl5/5.8.8/bigint.pm:71: if ($float =~ /^[+-]?[0-9]+\.[0-9]*$/) # 1., 1.23, -1.2 etc usr/lib/perl5/5.8.8/perl5db.pl:910:# Changes: 1.23: Dec 21, 2003 Dominique Quatravaux usr/lib/perl5/5.8.8/pod/perl572delta.pod:718: Failed 8/399 tests, 91.23% okay. usr/lib/perl5/5.8.8/pod/perl588delta.pod:1591:The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled usr/lib/perl5/5.8.8/pod/perldelta.pod:1591:The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled usr/lib/perl5/5.8.8/pod/perlfunc.pod:5347:(zero-padded as necessary). In other words, 1.23 times ten to the usr/lib/perl5/5.8.8/pod/perlfunc.pod:5348:99th may be either "1.23e99" or "1.23e099". usr/lib/perl5/5.8.8/pod/perlhpux.pod:53:HP-UX 11.11 (pa-risc 2.0) and HP-UX 11.23 (Itanium 2) ports available usr/lib/perl5/5.8.8/pod/perlhpux.pod:191:of a different version of HP-UX (currently 11.23 or 11i v2), and with usr/lib/perl5/5.8.8/pod/perlintro.pod:149: my @mixed = ("camel", 42, 1.23); usr/lib/perl5/5.8.8/pod/perlintro.pod:159: print $mixed[$#mixed]; # last element, prints 1.23 usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/POSIX.pod:455: ($mantissa, $exponent) = POSIX::frexp( 1.234e56 ); --pins---
Das war jetzt schon mit installiertem -14.7er RPM? Oder in dem du per mc die Dateien aus dem 14.7-RPM (nach tmp o.ä.) rauskopierst und dann drin greppst.
Erwischt :-) - in den RPM-Dateien gesucht.
Achso, nochwas zum gucken:
DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" egrep '\$VERSION.*=|XSLoader::load' "${DIR}/IO.pm"
Das sollte z.B. sowas ergeben:
$VERSION = "1.22"; XSLoader::load 'IO', $VERSION;
our $VERSION = "1.22"; XSLoader::load 'IO', $VERSION;
Jup. Kann's halt hier nicht nachvollziehen, ich denke aber, ein Bugzilla-Eintrag ist angebracht...
-dnh
done :-) Gruß Werner -- Werner Flamme, Abt. WKDV Helmholtz-Zentrum für Umweltforschung GmbH - UFZ Permoserstr. 15 - 04318 Leipzig Tel.: (0341) 235-1921 - Fax (0341) 235-451921 http://www.ufz.de - eMail: werner.flamme@ufz.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Mit, 28 Nov 2007, Werner Flamme schrieb:
David Haller [27.11.2007 17:04]:
Hm. Das passt ja noch zusammen (IO und IO::Handle habe nicht die gleiche Version. Aktuell sind z.B. IO 1.23 und IO::Handle 1.27).
Hmhm. Habe ich gesehen, als ich aus dem CPAN aktualisiert habe :-)
Mit diesen Versionen sollte der Fehler eigentlich nicht auftreten.
Hmpf. Bei SLES-Patches sollte eigentlich gar kein Fehler auftreten.
Ja.
Und das sind die gleichen Versionen wie im -14.2er RPM IIRC.
Ja. Nur: warum verlangt "jemand" die 1.23, wenn die 1.22 installiert ist? Irgend was muss da schief stehen. Ich habe mal gesucht: # grep -rin "1\.23" * [..]
Da bezieht sich nix auf IO.
Das war jetzt schon mit installiertem -14.7er RPM? Oder in dem du per mc die Dateien aus dem 14.7-RPM (nach tmp o.ä.) rauskopierst und dann drin greppst.
Erwischt :-) - in den RPM-Dateien gesucht.
*g*
Achso, nochwas zum gucken:
DIR="/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi" egrep '\$VERSION.*=|XSLoader::load' "${DIR}/IO.pm"
Das sollte z.B. sowas ergeben:
$VERSION = "1.22"; XSLoader::load 'IO', $VERSION;
our $VERSION = "1.22"; XSLoader::load 'IO', $VERSION;
Das passt auch wieder. Hm.
Jup. Kann's halt hier nicht nachvollziehen, ich denke aber, ein Bugzilla-Eintrag ist angebracht...
done :-)
Ich find nix. Liegt wohl an SLES. Wäre nett, wenn du mich per PM informierst, was draus wird. -dnh -- 273: MIME Elektronische Fraktur. (Ralph Babel) -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
David Haller
-
Werner Flamme