• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

check ob ein od. zwei Versionen von Perl auf der Kiste sind?

lin

Hacker
hallo und guten Abend,


habe Opensuse 12.2 auf dem Rechner.

Mit der Installation von mehreren Perl-Modulen hab ich sehr viele Probleme.

wie kann ich sinnvoll und schnell checken ob ich ein oder zwei Versionen von Perl auf der Kiste habe?!

müsste ich auf yast sehen oder nat. in der Kommandozeile.

Code:
linux-wyee:/home/martin #  perl -v

This is perl 5, version 16, subversion 0 (v5.16.0) built for i586-linux-thread-multi

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

linux-wyee:/home/martin #

bin dennoch unsicher - ggf. ist da etwas messi installiert worden...
anm;

Code:
  use WWW::Mechanize::Firefox;
  my $mech = WWW::Mechanize::Firefox->new(
      tab => 'current',
  );
  $mech->get('http://google.com',
      ':content_file' => 'google_com.html' ); 
and the issues

und hier die errors

Code:
martin@linux-wyee:~/perl> perl moz_test3.pl
Cant locate WWW/Mechanize/Firefox.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.16.0/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.16.0 /usr/lib/perl5/vendor_perl/5.16.0/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.16.0 /usr/lib/perl5/5.16.0/i586-linux-thread-multi /usr/lib/perl5/5.16.0 /usr/lib/perl5/site_perl/5.16.0/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.16.0 /usr/lib/perl5/site_perl .) at moz_test3.pl line 1.
BEGIN failed--compilation aborted at moz_test3.pl line 1.


vermute dass das ggf. auch hervorgerufen werden kann durch eine messi perl installation...
 
OP
L

lin

Hacker
hallo abgdf

danke für die Antwort.

abgdf schrieb:
Hattest Du alles schonmal gefragt:
http://www.linux-club.de/viewtopic.php?f=28&t=116846

Das ist ja der Jammer - es ist mir nicht zum ersten Mal passiert (s.u.)



Das Problem: Im Grunde koennten 2 oder drei oder vier Versionen von Perl auf der Kiste sein. Ich sollte da wohl am besten alles platt machen und von vorne
anfangen. Das wäre wohl das Einfachste.

So etwas ist mir leider schon einmal passiert. Mit Perl und auch schon einmal mit Ruby.
Frage; wie kann ich von vornherrein verhindern dass mir so ein Lapsus nochmals passiert. Wie beim frischen Installieren v orgehen wenn ich mir Linux auf / unter
opensuse einrichte und dann gleich eine Entwicklungsumgebung noch dazusetze:

mit Perl,

was muss unbed rein!? Perlbrew !?


Nebenbei bemerkt; Die Info zu den Perl-Installationen koennte ja auch so gehen:

Code:
bash: /usr/sbin/zypper info perl
...
Information for package perl:

Repository: @System
Name: perl
Version: 5.12.3-11.20.1
Arch: i586
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 40.5 MiB
Summary: The Perl interpreter
Description: 
perl - Practical Extraction and Report Language
...

Das findet alle perls die man mit den gegenwärtigen Privilegien erreichen kann:

Code:
bash: find / -type f -name perl -ls 2>/dev/null
...
 808523 1372 -rwxr-xr-x   2 perl5    users     1404260 Aug 28  2011 /opt/perl/bin/perl
1094034 1372 -rwxr-xr-x   1 perl5    users     1404260 Aug 27  2011 /home/perl5/src/perl-5.14.1/perl
   6233 2832 -rwxr-xr-x   2 root     root      2899960 Jan 31  2012 /usr/bin/perl
...

Wie gesagt - ich werd wohl erstamal auf einem zweiten Notebook versuchen eine Perl-Entwicklungsumgebung einzurichten.
Später kümmere ich mich dann nochmals um das Notebook, auf dem wohl mehrere Perls drauf sind.



abgdf: am liebsten würde ich da alles was irgendwie nach Perl aussieht platt machen - das bringt aber wohl auch nichts.... Denn ich denke dass ich nicht
gleich alles treffe!?
 

abgdf

Guru
Wie man das verhindert, ist doch ganz einfach: Man nimmt NUR DIE PERL-VERSION DER DISTRIBUTION. Die als rpm vorliegt. So daß man sie auch mit "rpm -ql perl" oder in YaST abfragen kann.
Und läßt die Finger von Eigenkompilierungen, wenn man das nicht beherrscht.
 
OP
L

lin

Hacker
hallo abbdf

danke für die tipps

abgdf schrieb:
Wie man das verhindert, ist doch ganz einfach: Man nimmt NUR DIE PERL-VERSION DER DISTRIBUTION. Die als rpm vorliegt. So daß man sie auch mit "rpm -ql perl" oder in YaST abfragen kann.
Und läßt die Finger von Eigenkompilierungen, wenn man das nicht beherrscht.

das leuchtet ein. das mit der Distrbution ist schon plausibel. Das würde bedeuten dass ich das via YAST einbinde -
ggf. ein Repo dafür nehm - oder dann halt auch die Pakete bzw. Module in YAST suche.

Auf diesem weg verhindere ich dass Konflikte u. Abhänigkeiten nicht aufgeloest werden

Noch was ist mir eingefallen;: ich denk dass unweigerlich zwei Versionen von Perl kriege wenn ich

- samstags eine Terminalbasierte installation als user martin mahe
- samstags drauf dann eine YAST basierte Installation mache - die superuser-basiert ist.

Das führt doch wahrscheinl. auch nochmals zu konfusionen, oder!!?
 

abgdf

Guru
lin schrieb:
Noch was ist mir eingefallen;: ich denk dass unweigerlich zwei Versionen von Perl kriege wenn ich

- samstags eine Terminalbasierte installation als user martin mahe
- samstags drauf dann eine YAST basierte Installation mache - die superuser-basiert ist.

Das führt doch wahrscheinl. auch nochmals zu konfusionen, oder!!?
Sag' Du's mir: Wohin installiert "martin", wohin installiert "root"?
 
OP
L

lin

Hacker
hallo und guten Tag,

vielen Dank für deine fortgesetzte Hilfe in diesem Fall hier. Das ist wirklich eine sehr aufwändige Sache. Deine Fragen sind hilfeich. Ich merk dass ich da wohl
Anfängerfehler gemacht habe. Die Root / User-Unterscheidung ist immer wieder total wichtig - und ich vergess die immer wieder.


Also ich denke dass das sehr unterschiedliche Orte sind.

Denke mal dass ich ggf auch mit dem "whereis" Befehl weiterkomme.
Damit kann ich sehen wieviele Installationen auf der Kiste sind.


Code:
martin@linux-wyee:~> whereis perl
perl: /usr/bin/perl /usr/bin/X11/perl /usr/share/man/man1/perl.1.gz

martin@linux-wyee:~> su
Passwort: 

linux-wyee:/home/martin # whereis perl
perl: /usr/bin/perl /usr/bin/X11/perl /usr/share/man/man1/perl.1.gz
linux-wyee:/home/martin #

Man müsste vllt auch mal automatisch den ganzen Rechner durchsuchen und gucken ob denn 'perl -V' Ergebnisse bringt und v.a.

Grundsätzlich: Man braucht überhaupt nicht auf die root-Ebene zu gehen wenn man Perl einrichtet oder scripte laufen lässt, oder!?
Was meinst du. Oder besser: man muss halt die Rechte immer beachten.

Wenn man nämlich neuen Code ausprobiert - und als Root arbeitet kann das - hmm interessante Seiteneffekte ;-) nach sich ziehen.

Hmm - ich werd mal überlegen wie ich hier jetzt weitermache.,

ggf. teste ichmal einfach paralell auf einem kürzlich frisch installierten Notebook ob denn diese Turbulenzen die hierauftauchen -

_ insbes. mit der WWW::;Mechanize::FireFox und dem Mozrepl
denn auch auftauchen auf dem anderen Rechner!?

Darüber hinaus teste ich dann mal - wie man eine grundsätzlich funktionierende Perl-Umgebung einrichtet. So eine die einem das Leben erleichtert u. nicht so doll
aufwändig wird wie im Moment. Aber das gehoert wohl auch dazu...

lg lin

Meinst du denn dass ich Perlbrew auch - in eine Basisinstallation reinpacken sollte!?
 

abgdf

Guru
lin schrieb:
Also ich denke dass das sehr unterschiedliche Orte sind.
In der Tat. Die richtige Lösung wäre gewesen:
"root" installiert Perl typischerweise in "/usr", meistens "/usr/lib/perl5", er legt sicher auch "/usr/bin/perl" an.
"martin" hat keinen Schreibzugriff auf /usr. Wenn "martin" eine Installation schafft, wäre sie in "/home/martin".
lin schrieb:
Denke mal dass ich ggf auch mit dem "whereis" Befehl weiterkomme.
"whereis" ist gut. Ich dachte an "which", aber "whereis" scheint ausführlicher zu sein. Aber ob es mehrere Perl-Installationen anzeigt, wage ich zu bezweifeln. Ausgangspunkt ist ja immer das übergebene Kommando, das nur einer Installation zugeordnet ist.
lin schrieb:
Grundsätzlich: Man braucht überhaupt nicht auf die root-Ebene zu gehen wenn man Perl einrichtet oder scripte laufen lässt, oder!?
Um Skripte laufen zu lassen, normalerweise nicht, um Perl einzurichten (Schreibzugriff auf "/usr/..." benötigt!) aber sehr wohl!
lin schrieb:
Darüber hinaus teste ich dann mal - wie man eine grundsätzlich funktionierende Perl-Umgebung einrichtet. So eine die einem das Leben erleichtert u. nicht so doll
aufwändig wird wie im Moment. Aber das gehoert wohl auch dazu...

lg lin

Meinst du denn dass ich Perlbrew auch - in eine Basisinstallation reinpacken sollte!?
NEIN, DAS MEINE ICH NICHT!!! BENUTZE AUSSCHLIEßLICH DIE PERL-INSTALLATION DER DISTRIBUTION, DIE DU ÜBER YAST ALS RPM INSTALLIERST, BZW. DIE IN ALLER REGEL BEREITS BEI DER GRUNDINSTALLATION AUTOMATISCH INSTALLIERT WURDE!!!
LAß DIE FINGER VON PERLBREW!!!
Herrje, ist das denn sooo schwierig???
 
OP
L

lin

Hacker
hallo abgdf

danke für die tipps

hab auf einer zweiten maschine mal taufrisch die perl entwicklungsumgebung via repo eingerichten: hier über diese hier



http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_12.2/

das ist jetzt mal gemacht. Was ich noch brauch ist WWW::Mechanize::FireFox

Keine genaue Ahnung, wie ich denn das noch sozuagen nach deinen - den o.g. Bedinugungen einbinden kann.
Also m.a.W . ich will ja nicht (schon wieder ) auf die ebene des Terminals - auf CPAN wechseln um darüber wieder zu installieren.

Frage ist jetzt: wie bzw. wo finde ich das Modul - im Perl-Repository?

Das dürft m.E. schon schwierig sein - denk halt dass nicht alle Module in die offizielle repositoy eingebunden sind.....

was meinst du denn!?

hier noch ein paar links:

http://search.cpan.org/~corion/WWW-Mechanize-Firefox-0.68/lib/WWW/Mechanize/Firefox/Troubleshooting.pod
http://search.cpan.org/~corion/WWW-Mechanize-Firefox-0.68/lib/WWW/Mechanize/Firefox/Installation.pod

Source Latest Release: WWW-Mechanize-Firefox-0.68

MODULE INSTALLATION
TROUBLESHOOTING

MODULE INSTALLATION ^

Installing the module is easy:

1. Download the distribution 2. Unpack it 3. Start a shell in the distribution directory

4a. With a recent version of the cpan tool, run cpan . there.

4b. Alternatively run the following commands: perl Makefile.PL make make test make install
TROUBLESHOOTING ^

If you notice that tests get skipped and/or the module installs but "does not seem to work", there are some more steps required to configure Firefox:

1. Install mozrepl from

http://wiki.github.com/bard/mozrepl/

A direct link is

http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi

2. Launch Firefox

3. Start mozrepl in Firefox by going to the menu: "Tools" -> "MozRepl" -> "Start" You may want to tick the "Activate on startup" item.

If tests still fail, especially t/50-click.t and 51-mech-submit.t , this might be because you use the NoScript Mozilla extension and have it blocking Javascript for file:// URLs. While this is good, the tests need Javascript enabled.

Solution: 1. Open t/50-click.html in Firefox 2. Allow Javascript for all file:// URLs 3. Re-run tests 4. No test should fail
 

abgdf

Guru
lin schrieb:
hab auf einer zweiten maschine mal taufrisch die perl entwicklungsumgebung via repo eingerichten: hier über diese hier

http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_12.2/

das ist jetzt mal gemacht. Was ich noch brauch ist WWW::Mechanize::FireFox
Ich sagte, aus der Distribution, also hier:

http://download.opensuse.org/distribution/12.2/repo/oss/suse/i586/

Da gibt's jede Menge Perl-Sachen, z.B. Perl oder auch Mechanize.
Guck' Dich bitte Da mal um.
 
OP
L

lin

Hacker
hallo abgdf

vielen Dank - da werd ich mich umgucken - d.h. das Repo einbinden

meld mich wieder

viele Gruesse
lin
 

abgdf

Guru
Ja, das Standard-Repo einzubinden, könnte eine gute Idee sein ....

Aber, ist das in YaST nicht automatisch drin?
 
Oben