Added german translation
Torsten Raudssus [Wed, 9 Jun 2010 23:33:10 +0000 (01:33 +0200)]
Enhanced english documentation

Changes
lib/local/lib.pm [changed mode: 0644->0755]
lib/podloc/de_DE/local/lib.pod [new file with mode: 0755]

diff --git a/Changes b/Changes
index 2a302a3..3d975d2 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
 Revision history for local::lib
 
+        - Added german translation
+        - Enhanced some parts of english documentation
+
 1.006001 2010-06-09
 
         - doc patch for win32 from run4flat
old mode 100644 (file)
new mode 100755 (executable)
index d15ea5b..d1d2f66
@@ -363,10 +363,14 @@ ok(-f 't/var/splat/.modulebuildrc');
 
 =end testing
 
+=encoding utf8
+
 =head1 NAME
 
 local::lib - create and use a local lib/ for perl modules with PERL5LIB
 
+L<podloc::de_DE::local::lib|Deutsche Übersetzung>
+
 =head1 SYNOPSIS
 
 In code -
@@ -396,9 +400,14 @@ From the shell -
 A typical way to install local::lib is using what is known as the
 "bootstrapping" technique.  You would do this if your system administrator
 hasn't already installed local::lib.  In this case, you'll need to install
-local::lib in your home directory. If you do have administrative priveleges,
-you will still want to set up your environment variables, as discussed in
-step 4 (and for Windows users, see L</Differences when using this module under Win32>).
+local::lib in your home directory. 
+
+If you do have administrative privileges, you will still want to set up your 
+environment variables, as discussed in step 4. Without this, you would still
+install the modules into the system CPAN installation and also your Perl scripts
+will not use the lib/ path you bootstrapped with local::lib.
+
+Windows users must also see L</Differences when using this module under Win32>.
 
 1. Download and unpack the local::lib tarball from CPAN (search for "Download"
 on the CPAN page about local::lib).  Do this as an ordinary user, not as root
@@ -412,12 +421,19 @@ convenient location.
 If the system asks you whether it should automatically configure as much
 as possible, you would typically answer yes.
 
-3. Run this:
+In order to install local::lib into a directory other than default, you need 
+to give that directory on the call of bootstrap like this: 
+
+  perl Makefile.PL --bootstrap=~/foo
+
+3. Run this: (local::lib assumes you have make installed on your system)
 
   make test && make install
 
-4. Arrange for Perl to use your own packages instead of the system
-packages.  If you are using bash, you can do this as follows:
+4. Now we need to setup the appropriate environment variables, so that Perl 
+starts using our newly generated lib/ directory. If you are using bash or
+any other Bourne shells, you can add this to your shell startup script this
+way:
 
   echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
 
@@ -428,17 +444,14 @@ If you are using C shell, you can do this as follows:
   /bin/csh
   perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc
 
-You can also pass --bootstrap=~/foo to get a different location -
-
-  perl Makefile.PL --bootstrap=~/foo
-  make test && make install
+If you passed to bootstrap a directory other than default, you also need to give that as 
+import parameter to the call of the local::lib module like this way:
 
   echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc
 
 After writing your shell configuration file, be sure to re-read it to get the
-changed settings into your current shell's environment. Bourne shells use C<.
-~/.bashrc> for this, whereas C shells use C<source ~/.cshrc>. Replace .bashrc or
-.cshrc with the name of the file you wrote above with the echo command.
+changed settings into your current shell's environment. Bourne shells use 
+C<. ~/.bashrc> for this, whereas C shells use C<source ~/.cshrc>.
 
 If you're on a slower machine, or are operating under draconian disk space
 limitations, you can disable the automatic generation of manpages from POD when
@@ -446,13 +459,15 @@ installing modules by using the C<--no-manpages> argument when bootstrapping:
 
   perl Makefile.PL --bootstrap --no-manpages
 
-If you want to install multiple Perl module environments, say for application development, 
-install local::lib globally and then:
+To avoid doing several bootstrap for several Perl module environments on the 
+same account, for example if you use it for several different deployed 
+applications independently, you can use one bootstrapped local::lib 
+installation to install modules in different directories directly this way:
 
   cd ~/mydir1
   perl -Mlocal::lib=./
   eval $(perl -Mlocal::lib=./)  ### To set the environment for this shell alone
-  printenv  ### You will see that ~/mydir1 is in the PERL5LIB
+  printenv                      ### You will see that ~/mydir1 is in the PERL5LIB
   perl -MCPAN -e install ...    ### whatever modules you want
   cd ../mydir2
   ... REPEAT ...
@@ -484,7 +499,7 @@ C<CMD.exe>, you can use this:
   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%
   
-    ### To set the environment for this shell alone
+  ### To set the environment for this shell alone
   C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat
   ### instead of $(perl -Mlocal::lib=./)
 
diff --git a/lib/podloc/de_DE/local/lib.pod b/lib/podloc/de_DE/local/lib.pod
new file mode 100755 (executable)
index 0000000..5444218
--- /dev/null
@@ -0,0 +1,312 @@
+=encoding utf8\r
+\r
+=head1 NAME\r
+\r
+local::lib - Erschaffen und benutzen von Perl Modulen in einem lokalen lib/ Verzeichnis mit PERL5LIB\r
+\r
+=head1 SYNOPSIS\r
+\r
+Im Code -\r
+\r
+  use local::lib; # Benutzt das Verzeichnis ~/perl5 zum anlegen des lokalen lib/ Verzeichnisses\r
+\r
+  use local::lib '~/foo'; # das selbe, aber mit ~/foo\r
+\r
+  # Or...\r
+  use FindBin;\r
+  use local::lib "$FindBin::Bin/../support";  # app-local support library\r
+\r
+Von der Shell -\r
+\r
+  # Installiert LWP und alle notwendigen Abhängigkeiten in das '~/perl5' Verzeichnis\r
+  perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)'\r
+\r
+  # Gibt die Shell Kommandos aus um die Umgebung vorzubereiten\r
+  $ perl -Mlocal::lib\r
+  export MODULEBUILDRC=/home/username/perl/.modulebuildrc\r
+  export PERL_MM_OPT='INSTALL_BASE=/home/username/perl'\r
+  export PERL5LIB='/home/username/perl/lib/perl5:/home/username/perl/lib/perl5/i386-linux'\r
+  export PATH="/home/username/perl/bin:$PATH"\r
+\r
+=head2 Die Bootstrapping Methode\r
+\r
+Ein typischer Weg um local::lib zu benutzen ist die sogenannte "Bootstrapping" Methode.\r
+Diese Methode wird benutzt wenn noch kein local::lib auf dem System installiert ist.\r
+In diesem Fall kannst du einfach local::lib direkt in deinem Home-Verzeichnis installieren.\r
+\r
+Selbst wenn du administrative Rechte hast, ist es wichtig das die Umgebungsvariablen von\r
+Schritt 4 in deinem Shell Startup Skript gesetzt werden. Ohne diesen Schritt werden die\r
+Module von CPAN weiterhin im System installiert und auch Perl Skripte die du startest\r
+würden das von local::lib erstellte lib/ Verzeichnis nicht nutzen.\r
+\r
+Windows Benutzern müssen ausserdem dies hier lesen: \r
+L</Unterschiede bei Benutzung dieses Module mit Win32>.\r
+\r
+1. Lade das Tar-Archiv von CPAN runter (Suche nach "Download" auf der CPAN Seite von\r
+local::lib) und entpacke es in einem beliebigem Verzeichnis. Um das obige Problem zu\r
+vermeiden, sollte man dies als normaler User tun und nicht als root oder Administrator.\r
+\r
+2. Starte in dem entstandenen Verzeichnis folgenden Befehl:\r
+\r
+  perl Makefile.PL --bootstrap\r
+\r
+Wenn das System dir vorschlägt gewisse Dinge eigenständig zu konfigurieren ist es in\r
+fast allen Fällen vollkommen in Ordnung einfach "yes" zu antworten.\r
+\r
+Falls du local::lib nicht in das Standard Verzeichnis installieren willst, musst du\r
+dieses Verzeichnis als Parameter angeben:\r
+\r
+  perl Makefile.PL --bootstrap=~/foo\r
+\r
+3. Danach folgenden Befehl starten: (local::lib erwartet make auf dem System)\r
+\r
+  make test && make install\r
+\r
+4. Nun müssen wir die benötigten Umgebungsvariablen, damit Perl unser neu generiertes\r
+lib/ Verzeichnis benutzt. Wenn du bash oder eine andere Bourne Shell benutzt, kannst \r
+du es über diesen Weg zu deinem Shell Startup Skript hinzufügen:\r
+\r
+  echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc\r
+\r
+Wenn du C Shell benutzt, du kannst das gleiche hiermit erreichen:\r
+\r
+  /bin/csh\r
+  echo $SHELL\r
+  /bin/csh\r
+  perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc\r
+\r
+Wenn du beim bootstrappen ein anderes Verzeichnis benutzt als das Standardverzeichnis,\r
+dann musst du dieses Verzeichnis als Parameter beim Laden des Modules local::lib angeben:\r
+\r
+  echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc\r
+\r
+Nachdem diese Änderungen in deinem Shell Startup Skript gemacht wurden, ist es nun wichtig\r
+das diese Umgebungsvariablen auch gesetzt sind in deiner aktuellen Umgebung. In Bourne\r
+Shells macht man dies z.B. mit C<. ~/.bashrc>, und in C Shell würde man es mit: \r
+C<source ~/.cshrc> mit.\r
+\r
+Wenn du eine sehr langsames System hast, oder du unter drakonischen Regulierungen des\r
+Plattenplatz leben musst, kann man die automatische Generierung der manpages vom POD\r
+bei der Installation des Moduls deaktivieren beim bootstrapping mit dem C<--no-manpages>\r
+Parameter:\r
+\r
+  perl Makefile.PL --bootstrap --no-manpages\r
+\r
+Wenn du mehrere lokale lib/ Installationen nutzen möchtest, z.B. für verschiedene\r
+Applikationen. Hierfür kannst du local::lib einfach einm\r
+\r
+Um zu vermeiden das man mehrere bootstraps macht um z.B. für verschiedene Applikationen\r
+eigene local::lib Installationen zu nutzen, kann man eine dieser Umgebungen benutzen\r
+um einfach in beliebigen anderen Verzeichnis Module zu installieren und somit weitere\r
+eigenständige lib/ Umgebungen zu bekommen:\r
+\r
+  cd ~/mydir1\r
+  perl -Mlocal::lib=./\r
+  eval $(perl -Mlocal::lib=./)  ### Um die Umgebungsvariablen für die\r
+                                ### aktuelle Shell zusetzen\r
+\r
+  printenv                      ### Hier kannst du sehen das ~/mydir1\r
+                                ### in der PERL5LIB Umgebungsvariable\r
+                                                               ### steht\r
+\r
+  perl -MCPAN -e install ...    ### welche Module auch immer ...\r
+  cd ../mydir2\r
+\r
+  ... WIEDERHOLEN ...\r
+\r
+Für mehrere Umgebungen in dieser Form brauch man eine Modifikation in der\r
+Benutzung von C<< use FindBin >> in dem "Im Code" Beispiel oben.\r
+Wenn du sowas machst, und du hast damit z.B. Perl Module nach C<<\r
+~/mydir1/lib >> installiert und du hast ein Script in C<< \r
+~/mydir1/scripts/myscript.pl >>, du musst dort angeben das die Module\r
+die es braucht im Verzeichnis C<< ~/mydir1/lib >> liegen.\r
+\r
+In C<< ~/mydir1/scripts/myscript.pl >> steht dann:\r
+\r
+  use strict;\r
+  use warnings;\r
+  use local::lib "$FindBin::Bin/..";  ### zeigt auf ~/mydir1 und local::lib \r
+                                      ### findet dort lib\r
+  use lib "$FindBin::Bin/../lib";     ### zeigt auf ~/mydir1/lib\r
+\r
+Setze das vor jeden BEGIN { ... } Block der die Module braucht die du\r
+installiert hast.\r
+\r
+=head2 Unterschiede bei Benutzung dieses Module mit Win32\r
+\r
+Um die nötigen Umgebungsvariablen für diese Variablen in der derzeitigen\r
+Sitzung mit C<CMD.EXE> zu setzen, kann man folgendes kommando nutzen:\r
+\r
+  C:\>perl -Mlocal::lib\r
+  set MODULEBUILDRC=C:\DOCUME~1\ADMINI~1\perl5\.modulebuildrc\r
+  set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5\r
+  set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5;C:\DOCUME~1\ADMINI~1\perl5\lib\perl5\MSWin32-x86-multi-thread\r
+  set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH%\r
+  \r
+  ### Um die Umgebungsvariablen für diese Shell alleine zu setzen\r
+  C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat\r
+  ### anstelle von $(perl -Mlocal::lib=./) in bash.\r
+\r
+Wenn du willst das die Umgebungsvariablen dauerhaft gesetzt sind, musst du diese\r
+in Systemsteuerung / System dauerhaft selber eintragen oder \r
+L<App::local::lib::Win32Helper> benutzen.\r
+\r
+Die "~" wird übersetzt zu dem Benutzer Profil Verzeichnis (das Verzeichnis was\r
+beim User als "Dokumente und Einstellungen" bekannt ist unter Windows XP und\r
+vorher oder das "Benutzer" Verzeichnis bei Windows Vista und später, solange\r
+$ENV{HOME} nicht gesetzt ist. Das Verzeichnis wird hierbei zu dem korrekten\r
+Kurznamen umgewandelt, und muss daher definitiv existieren, und wird um die\r
+nötigen Unterverzeichnise erweitert.\r
+\r
+=head1 EXISTENZGRUNDLAGE\r
+\r
+Die Version von den Perl Paketen die man benötigt für spezifische Aufgaben sind\r
+sehr häufig nicht die richtigen oder korrekten Versionen auf dem System\r
+vorinstalliert. Ein Updaten von diesen Modulen ist in vielen Fällen einfach\r
+nicht möglich weil die nötigen Rechte fehlen. Ausserdem ist es generell nicht\r
+gut eigenständig die Versionen der Module auf dem System auszutauschen, weil\r
+natürlich der Rest des Systems genau die Version erwartet die von der\r
+Systemverwaltung auch installiert wurde.\r
+\r
+local::lib löst dieses Problem, es erlaubt dir dein komplett eigenes Verzeichnis\r
+für deine CPAN Module zu haben und bist so nicht genötigt die Module vom\r
+System zu nutzen oder andersrum andere User nicht mit individuellen \r
+Modulwünschen zu Überarbeitung ihres Codes zu zwingen, weil bestimmte Module\r
+zentral für alle auf neuere Version upgedatet werden. Die Installation findet\r
+hierbei dann z.B. im Home Verzeichnis statt. Es werden nur Umgebungsvariablen\r
+gesetzt die das installierte Perl dazu bewegen die im Homeverzeichnis \r
+installierten Module zu benutzen, zusätzlich und vorgezogen zu denen auf dem\r
+System.\r
+\r
+Daher muss man sich wenn man ein Paket System benutzt, wie z.b. Debian, garnicht\r
+mehr Sorgen machen, irgendwas auf dem System zu verletzten nur durch die\r
+Installation von Perl Modulen.\r
+\r
+=head1 BESCHREIBUNG\r
+\r
+Dieses Modul bietet eine schnelle und legitime Art und Weise ein sogenanntes\r
+bootstrapping zu machen um in einem User Homeverzeichnis eine Sammlung von\r
+Modulen zu installieren. Es erstellt auch die nötigen Umgebungsvariablen\r
+die benötigt werden um diese Module zu nutzen, passend zu der Shell die der\r
+User in der Umgebungsvariable C<SHELL> angegeben hat, um dann direkt passend\r
+in die entsprechenden Konfigurationsdateien der Shell einfügt zu werden.\r
+\r
+Weitergehend ist local::lib in der Lage Module zu nutzen die nicht im\r
+standardmäßigen C<@INC> Pfad von Perl enthalten sind. Das macht es einfacher\r
+für bestimmte Applikationen ein bestimmtes Set von Modulen zu installieren\r
+ohne die anderen Module auf dem System in irgendeiner Art anzufassen.\r
+Damit es z.B. auch sicherer Module zu installieren die vom Maintainer noch\r
+nicht als Release verfügbar sind.\r
+\r
+Beim Import setzt local::lib die folgenden Umgebungsvariablen zu den\r
+nötigen Werten:\r
+\r
+=over 4\r
+\r
+=item MODULEBUILDRC\r
+\r
+=item PERL_MM_OPT\r
+\r
+=item PERL5LIB\r
+\r
+=item PATH\r
+\r
+Am PATH wird natürlich angehangen, und nicht ersetzt.\r
+\r
+=back\r
+\r
+Diese Werte sind dann verfügbar für jeden Code der danach importiert wurde.\r
+\r
+=head1 CREATING A SELF-CONTAINED SET OF MODULES\r
+\r
+C<Übersetzung fehlt...>\r
+\r
+=head1 METHODS\r
+\r
+C<Übersetzung fehlt...>\r
+\r
+=head1 A WARNING ABOUT UNINST=1\r
+\r
+Wenn man local::lib in Kombination mit "make install UNINST=1" benutzt, muss\r
+man vorsichtig sein über die Tatsache das der Prozess über die Neuinstallation\r
+eine nicht ausreichende Sicherheit hat bezüglich wo er nun installieren muss.\r
+Hierdurch mann es passieren das beim deinstallieren eines Modul u.U. das\r
+globale Modul deinstalliert wird (wenn die Rechte vorhanden sind) aber die\r
+neue Version nur in der lokalen Version installiert ist. Es ist hier also sehr\r
+wichtig das man "make install UNINST=1" und local::lib nur gleichzeitig\r
+benutzt wenn man sehr sicher darüber ist welche Konsequenzen einem\r
+entgegenkommen.\r
+\r
+=head1 EINSCHRÄNKUNGEN\r
+\r
+Die Shell Erkennung ist sehr primitiv. Derzeit ist es so das alles was "csh"\r
+im Namen hat auch als C Shell eingeordnet wird, und alles andere wird als\r
+Bourne Shell betrachet, ausser auf Win32 Systemen. Wenn die C<SHELL> Variable\r
+nicht gesetzt ist, eine Bourne Shell wird angenommen.\r
+\r
+Bootstrap ist leider ein Hack, und wird auf jedenfall CPAN.pm benutzen für\r
+ExtUtils::MakeMaker, auch wenn CPANPLUS installiert ist.\r
+\r
+Es setzt definitiv PERL5LIB, PERL_MM_OPT und MODULEBUILDRC neu und vernichtet\r
+jeden Wert der vorher gesetzt war.\r
+\r
+Es sollte vielleicht eine automatische Korrektur der CPAN Config machen, wenn\r
+das nicht schon gemacht wurde.\r
+\r
+"Patches Welcome" - Patches sind immer willkommen beim Autor oder den anderen\r
+Mitwirkenden.\r
+\r
+Auf Win32 Systemen werden die Umgebungsvariablen nicht direkt in die Registrierung\r
+geschrieben damit sie auch nach dem Neustarten erhalten bleiben.\r
+\r
+=head1 FEHLERANALYSE\r
+\r
+Wenn du local::lib konfiguriert hast CPAN Module in deinem Home Verzeichnis\r
+zu installieren, und du danach versuchst mit C<cpan -i Foo::Bar> ein Modul\r
+zu installieren, und dabei einen Fehler bekommst, wie: C<Warning: You do not \r
+have permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at\r
+/usr/lib64/perl5/5.8.8/Foo/Bar.pm> und in der installationsausgabe steht\r
+irgendwo ein Fehler der sagt C<'INSTALL_BASE' is not a known MakeMaker parameter \r
+name>, dann hast du aus irgendeinem Grund dein neue Version von ExtUtils::MakeMaker\r
+verloren.\r
+\r
+Um dies zu korrigieren, einfach nochmal die bootstrapping Methode laufen lassen,\r
+wie oben beschrieben.\r
+\r
+Dann starte C<rm -r ~/.cpan/build/Foo-Bar*>\r
+\r
+Abschliessend dann nochmal mit C<cpan -i Foo::Bar> installieren und die Probleme\r
+sollten verschwunden sein.\r
+\r
+=head1 UMGEBUNGSVARIABLEN\r
+\r
+=over 4\r
+\r
+=item SHELL\r
+\r
+=item COMSPEC\r
+\r
+local::lib schaut in die C<SHELL> Umgebungsvariable um die korrekten Kommandos\r
+zu der Shell Konfiguration hinzuzufügen.\r
+\r
+Auf Win32 Systemen, C<COMSPEC> wird auch analysiert.\r
+\r
+=back\r
+\r
+=head1 AUTOR DER ÜBERSETZUNG\r
+\r
+Torsten Raudssus <torsten@raudssus.de> http://www.raudssus.de/\r
+\r
+=head1 URHEBERRECHT\r
+\r
+Copyright (c) 2007 - 2010 von den local::lib L</AUTHOR> und L</CONTRIBUTORS>\r
+aufgelistet in L<local::lib|local::lib>.\r
+\r
+=head1 LIZENZ\r
+\r
+Diese Sammlung ist freie Software und kann unter der selben Lizenz verbreitet\r
+werden wie Perl selber.\r
+\r
+=cut\r
+\r
+1;\r