whitespace cleanup
[p5sagit/local-lib.git] / lib / POD2 / DE / local / lib.pod
old mode 100755 (executable)
new mode 100644 (file)
index b6e8db1..458f8f0
@@ -23,10 +23,10 @@ Von der Shell -
 
   # 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
 
@@ -39,7 +39,9 @@ Schritt 4 in deinem Shell Startup Skript gesetzt werden. Ohne diesen Schritt wer
 Module von CPAN weiterhin im System installiert und auch Perl Skripte die du startest
 würden das von local::lib erstellte lib/ Verzeichnis nicht nutzen.
 
-Windows Benutzern müssen ausserdem dies hier lesen: 
+Standardmäßig installiert sich local::lib in ~/perl5.
+
+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
@@ -63,7 +65,7 @@ dieses Verzeichnis als Parameter angeben:
   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
@@ -82,7 +84,7 @@ dann musst du dieses Verzeichnis als Parameter beim Laden des Modules local::lib
 
 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
@@ -104,7 +106,7 @@ eigenständige lib/ Umgebungen zu bekommen:
 
   printenv                      ### Hier kannst du sehen das ~/mydir1
                                 ### in der PERL5LIB Umgebungsvariable
-                                                               ### steht
+                                ### steht
 
   perl -MCPAN -e install ...    ### welche Module auch immer ...
   cd ../mydir2
@@ -114,7 +116,7 @@ eigenständige lib/ Umgebungen zu bekommen:
 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.
 
@@ -122,7 +124,7 @@ In C<< ~/mydir1/scripts/myscript.pl >> steht dann:
 
   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
 
@@ -135,22 +137,22 @@ Um die nötigen Umgebungsvariablen für diese Variablen in der derzeitigen
 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
 beim User als "Dokumente und Einstellungen" bekannt ist unter Windows XP und
-vorher oder das "Benutzer" Verzeichnis bei Windows Vista und später, solange
+vorher oder das "Benutzer" Verzeichnis bei Windows Vista und später), solange
 $ENV{HOME} nicht gesetzt ist. Das Verzeichnis wird hierbei zu dem korrekten
 Kurznamen umgewandelt, und muss daher definitiv existieren, und wird um die
 nötigen Unterverzeichnise erweitert.
@@ -167,11 +169,11 @@ Systemverwaltung auch installiert wurde.
 
 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.
 
@@ -200,7 +202,7 @@ nötigen Werten:
 
 =over 4
 
-=item MODULEBUILDRC
+=item PERL_MB_OPT
 
 =item PERL_MM_OPT
 
@@ -214,15 +216,169 @@ Am PATH wird natürlich angehangen, und nicht ersetzt.
 
 Diese Werte sind dann verfügbar für jeden Code der danach importiert wurde.
 
-=head1 CREATING A SELF-CONTAINED SET OF MODULES
+=head1 ERSTELLEN EINES EIGENSTÄNDIGE SAMMLUNG VON MODULEN
+
+Mit L<lib::core::only> besteht eine Möglichkeit dieses zutun, aber beachte das
+hier eine Menge von Fallstricken und Problemen existieren, und man sollte
+immer darauf achten das man auf einem Perl aufbaut was sowenig wie möglich
+verändert wurde (d.h. site und vendor Verzeichnis so leer wie möglich).
+
+=head1 METHODEN
+
+=head2 ensure_dir_structure_for
+
+=over 4
+
+=item Parameter: $path
+
+=item Rückgabewert: Keiner
+
+=back
+
+Versucht den angegebenen Pfad anzulegen, mit allen nötigen drüberliegenden
+Verzeichnissen. Im Fehlerfall wird eine Exception geworfen.
+
+=head2 print_environment_vars_for
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: Keiner
+
+=back
+
+Gibt die Umgebungsvariablen aus, die benötigt werden um den angegebenen Pfad
+als Basis Verzeichnis zu nutzen.
+
+=head2 build_environment_vars_for
+
+=over 4
+
+=item Parameter: $pfad, $interpolate
+
+=item Rückgabewert: \%umgebungs_variablen
+
+=back
+
+Gibt ein Hash zurück mit den Variablen die nötig sind in den Umgebungsvariablen
+um eine Installation in dem gegebenen Pfad zu benutzen.
+
+=head2 setup_env_hash_for
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: Keiner
+
+=back
+
+Setzt die C<%ENV> Einträge basierend auf dem Aufruf von
+L</build_environment_vars_for>.
+
+=head2 install_base_perl_path
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $module_installations_pfad
+
+=back
+
+Gibt den Pfad zurück der benutzt wird um Perl Module zu installieren bei
+dem gegebenen Pfad als Basis. Prinzipiell wird nur C<lib> und C<perl5> als
+Pfadelemente angehangen.
+
+=head2 install_base_arch_path
 
-C<Übersetzung fehlt...>
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $architektur_module_installations_pfad
+
+=back
+
+Gibt den Pfad zurück der benutzt wird um die Architektur-abhängigen Perl
+Module zu installieren basirend auf dem angegebenen Pfad als Basis. Basierend
+auf dem was L</install_base_perl_path> zurückgibt, and appends the value of
+C<$Config{archname}>.asis.
 
-=head1 METHODS
+=head2 install_base_bin_path
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $ausfuehrbare_programme_installations_pfad
+
+=back
 
-C<Übersetzung fehlt...>
+Gibt den Pfad zurück, wo ausführbare Programme installiert werden, basierend
+auf der Basis des angegebenen Pfad. Basierend auf L</install_base_perl_path>
+Rückgabewert, hängt diese Methode noch C<bin> an.
+
+=head2 resolve_empty_path
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $basis_pfad
+
+=back
+
+Erstellt und gibt zurück den Pfad der benutzt wird als Basis zur Installation
+der Module. Standardmäßig dies ist C<~/perl5>.
+
+=head2 resolve_home_path( $path )
+
+=over 4
 
-=head1 A WARNING ABOUT UNINST=1
+=item Parameter: $pfad
+
+=item Rückgabewert: $home
+
+=back
+
+Versucht das Home Verzeichnis vom aktullen User zu finden. Wenn C<File::HomeDir>
+installiert ist, für dieses benutzt dafür. Es wird eine Exception geworfen, wenn
+kein Home Verzeichnis ermittelt werden konnte.
+
+=head2 resolve_relative_path
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $absoluter_pfad
+
+=back
+
+Macht aus dem angegebenen Pfad einen absoluten Pfad.
+
+=head2 resolve_path
+
+=over 4
+
+=item Parameter: $pfad
+
+=item Rückgabewert: $absoluter_pfad
+
+=back
+
+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>.
+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
+an L</resolve_path> übergeben, welches dann den Rückgabewert stellt.
+
+=head1 EINE WARNUNG VOR UNINST=1
 
 Wenn man local::lib in Kombination mit "make install UNINST=1" benutzt, muss
 man vorsichtig sein über die Tatsache das der Prozess über die Neuinstallation
@@ -236,6 +392,16 @@ entgegenkommen.
 
 =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
+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
+local::lib haben willst, das gesamte Verzeichnis dahin zu bewegen. local::lib
+kann mit dem Verzeichnis mit Leerzeichen umgehen. Bitte aufpassen das natürlich
+eine weitere Installation oder ein Erneuern von Paketen mit dem CPAN Programm
+nicht mehr möglich ist.
+
 Die Shell Erkennung ist sehr primitiv. Derzeit ist es so das alles was "csh"
 im Namen hat auch als C Shell eingeordnet wird, und alles andere wird als
 Bourne Shell betrachet, ausser auf Win32 Systemen. Wenn die C<SHELL> Variable
@@ -244,7 +410,7 @@ nicht gesetzt ist, eine Bourne Shell wird angenommen.
 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
@@ -260,10 +426,10 @@ geschrieben damit sie auch nach dem Neustarten erhalten bleiben.
 
 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.
 
@@ -302,8 +468,8 @@ Torsten Raudssus <torsten@raudssus.de> http://www.raudssus.de/
 
 =head1 URHEBERRECHT
 
-Copyright (c) 2007 - 2010 von den local::lib L</AUTHOR> und L</CONTRIBUTORS>
-aufgelistet in L<local::lib|local::lib>.
+Copyright (c) 2007 - 2010 von den local::lib L<local::lib/"AUTHOR">
+und L<local::lib/"CONTRIBUTORS"> aufgelistet in L<local::lib|local::lib>.
 
 =head1 LIZENZ