# Gibt die Shell Kommandos aus um die Umgebung vorzubereiten
$ perl -Mlocal::lib
- export MODULEBUILDRC=/home/username/perl/.modulebuildrc
- export PERL_MM_OPT='INSTALL_BASE=/home/username/perl'
- export PERL5LIB='/home/username/perl/lib/perl5:/home/username/perl/lib/perl5/i386-linux'
- export PATH="/home/username/perl/bin:$PATH"
+ export PERL_MB_OPT='--install_base /home/username/perl5'
+ export PERL_MM_OPT='INSTALL_BASE=/home/username/perl5'
+ export PERL5LIB='/home/username/perl5/lib/perl5/i386-linux:/home/username/perl5/lib/perl5'
+ export PATH="/home/username/perl5/bin:$PATH"
=head2 Die Bootstrapping Methode
Standardmäßig installiert sich local::lib in ~/perl5.
-Windows Benutzern müssen ausserdem dies hier lesen:
+Windows Benutzern müssen ausserdem dies hier lesen:
L</Unterschiede bei Benutzung dieses Module mit Win32>.
1. Lade das Tar-Archiv von CPAN runter (Suche nach "Download" auf der CPAN Seite von
make test && make install
4. Nun müssen wir die benötigten Umgebungsvariablen, damit Perl unser neu generiertes
-lib/ Verzeichnis benutzt. Wenn du bash oder eine andere Bourne Shell benutzt, kannst
+lib/ Verzeichnis benutzt. Wenn du bash oder eine andere Bourne Shell benutzt, kannst
du es über diesen Weg zu deinem Shell Startup Skript hinzufügen:
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
Nachdem diese Änderungen in deinem Shell Startup Skript gemacht wurden, ist es nun wichtig
das diese Umgebungsvariablen auch gesetzt sind in deiner aktuellen Umgebung. In Bourne
-Shells macht man dies z.B. mit C<. ~/.bashrc>, und in C Shell würde man es mit:
+Shells macht man dies z.B. mit C<. ~/.bashrc>, und in C Shell würde man es mit:
C<source ~/.cshrc> mit.
Wenn du eine sehr langsames System hast, oder du unter drakonischen Regulierungen des
Für mehrere Umgebungen in dieser Form brauch man eine Modifikation in der
Benutzung von C<< use FindBin >> in dem "Im Code" Beispiel oben.
Wenn du sowas machst, und du hast damit z.B. Perl Module nach C<<
-~/mydir1/lib >> installiert und du hast ein Script in C<<
+~/mydir1/lib >> installiert und du hast ein Script in C<<
~/mydir1/scripts/myscript.pl >>, du musst dort angeben das die Module
die es braucht im Verzeichnis C<< ~/mydir1/lib >> liegen.
use strict;
use warnings;
- use local::lib "$FindBin::Bin/.."; ### zeigt auf ~/mydir1 und local::lib
+ use local::lib "$FindBin::Bin/.."; ### zeigt auf ~/mydir1 und local::lib
### findet dort lib
use lib "$FindBin::Bin/../lib"; ### zeigt auf ~/mydir1/lib
Sitzung mit C<CMD.EXE> zu setzen, kann man folgendes kommando nutzen:
C:\>perl -Mlocal::lib
- set MODULEBUILDRC=C:\DOCUME~1\ADMINI~1\perl5\.modulebuildrc
+ set PERL_MB_OPT=--install_base C:\DOCUME~1\ADMINI~1\perl5
set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5
set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5;C:\DOCUME~1\ADMINI~1\perl5\lib\perl5\MSWin32-x86-multi-thread
set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH%
-
+
### Um die Umgebungsvariablen für diese Shell alleine zu setzen
C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat
### anstelle von $(perl -Mlocal::lib=./) in bash.
Wenn du willst das die Umgebungsvariablen dauerhaft gesetzt sind, musst du diese
-in Systemsteuerung / System dauerhaft selber eintragen oder
+in Systemsteuerung / System dauerhaft selber eintragen oder
L<App::local::lib::Win32Helper> benutzen.
Die "~" wird übersetzt zu dem Benutzer Profil Verzeichnis (das Verzeichnis was
local::lib löst dieses Problem, es erlaubt dir dein komplett eigenes Verzeichnis
für deine CPAN Module zu haben und bist so nicht genötigt die Module vom
-System zu nutzen oder andersrum andere User nicht mit individuellen
+System zu nutzen oder andersrum andere User nicht mit individuellen
Modulwünschen zu Überarbeitung ihres Codes zu zwingen, weil bestimmte Module
zentral für alle auf neuere Version upgedatet werden. Die Installation findet
hierbei dann z.B. im Home Verzeichnis statt. Es werden nur Umgebungsvariablen
-gesetzt die das installierte Perl dazu bewegen die im Homeverzeichnis
+gesetzt die das installierte Perl dazu bewegen die im Homeverzeichnis
installierten Module zu benutzen, zusätzlich und vorgezogen zu denen auf dem
System.
=over 4
-=item MODULEBUILDRC
+=item PERL_MB_OPT
=item PERL_MM_OPT
auf der Basis des angegebenen Pfad. Basierend auf L</install_base_perl_path>
Rückgabewert, hängt diese Methode noch C<bin> an.
-=head2 modulebuildrc_path
-
-=over 4
-
-=item Parameter: $pfad
-
-=item Rückgabewert: $modulebuildrc_pfad
-
-=back
-
-Gibt den Pfad zurück wo die C<.modulebuildrc> Datei angelegt wird, basierend
-auf der Basis des angegebenen Pfad.
-
=head2 resolve_empty_path
=over 4
Hierbei wird der Pfad durch die folgende Methoden gegeben, wobei der Rückgabewert
der ersten an die nächste weitergeben wird, um die Umgebung zu konfigurieren
-für die lokale Bibliotheks Installation: L</resolve_empty_path>,
-L</resolve_home_path>, L</resolve_relative_path>.
+für die lokale Bibliotheks Installation: L</resolve_empty_path>,
+L</resolve_home_path>, L</resolve_relative_path>.
Der daraus resultierende Pfad wird zu L</resolve_empty_path> übergeben, dessen
Resultat dann weitergegeben wird an L</resolve_home_path>, wessen Resultat dann
-weitergegeben wird an L</resolve_relative_path>. Dieses Resultat wird dann final
+weitergegeben wird an L</resolve_relative_path>. Dieses Resultat wird dann final
an L</resolve_path> übergeben, welches dann den Rückgabewert stellt.
=head1 EINE WARNUNG VOR UNINST=1
=head1 EINSCHRÄNKUNGEN
Die Werkzeuge von perl, die benutzt werden um die Pakete zu installieren
-(die sogenannte toolchain), sind leider nicht in der Lage sauber mit
+(die sogenannte toolchain), sind leider nicht in der Lage sauber mit
Verzeichnissen umzugehen die Leerzeichen enthalten und können daher local::lib
nicht direkt in ein solches Verzeichnis installieren. Was du machen kannst
ist B<nach> der Installation von local::lib und der Module die du in deiner
Bootstrap ist leider ein Hack, und wird auf jedenfall CPAN.pm benutzen für
ExtUtils::MakeMaker, auch wenn CPANPLUS installiert ist.
-Es setzt definitiv PERL5LIB, PERL_MM_OPT und MODULEBUILDRC neu und vernichtet
+Es setzt definitiv PERL5LIB, PERL_MM_OPT und PERL_MB_OPT neu und vernichtet
jeden Wert der vorher gesetzt war.
Es sollte vielleicht eine automatische Korrektur der CPAN Config machen, wenn
Wenn du local::lib konfiguriert hast CPAN Module in deinem Home Verzeichnis
zu installieren, und du danach versuchst mit C<cpan -i Foo::Bar> ein Modul
-zu installieren, und dabei einen Fehler bekommst, wie: C<Warning: You do not
+zu installieren, und dabei einen Fehler bekommst, wie: C<Warning: You do not
have permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at
/usr/lib64/perl5/5.8.8/Foo/Bar.pm> und in der installationsausgabe steht
-irgendwo ein Fehler der sagt C<'INSTALL_BASE' is not a known MakeMaker parameter
+irgendwo ein Fehler der sagt C<'INSTALL_BASE' is not a known MakeMaker parameter
name>, dann hast du aus irgendeinem Grund dein neue Version von ExtUtils::MakeMaker
verloren.