From: Torsten Raudssus Date: Wed, 9 Jun 2010 23:33:10 +0000 (+0200) Subject: Added german translation X-Git-Tag: 1.006009~29 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=commitdiff_plain;h=898f36cf124d4d8a3e17ce1f7db773f41ab84618 Added german translation Enhanced english documentation --- diff --git a/Changes b/Changes index 2a302a3..3d975d2 100644 --- 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 diff --git a/lib/local/lib.pm b/lib/local/lib.pm old mode 100644 new mode 100755 index d15ea5b..d1d2f66 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -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 + =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). +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. 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. 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. 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, 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 index 0000000..5444218 --- /dev/null +++ b/lib/podloc/de_DE/local/lib.pod @@ -0,0 +1,312 @@ +=encoding utf8 + +=head1 NAME + +local::lib - Erschaffen und benutzen von Perl Modulen in einem lokalen lib/ Verzeichnis mit PERL5LIB + +=head1 SYNOPSIS + +Im Code - + + use local::lib; # Benutzt das Verzeichnis ~/perl5 zum anlegen des lokalen lib/ Verzeichnisses + + use local::lib '~/foo'; # das selbe, aber mit ~/foo + + # Or... + use FindBin; + use local::lib "$FindBin::Bin/../support"; # app-local support library + +Von der Shell - + + # Installiert LWP und alle notwendigen Abhängigkeiten in das '~/perl5' Verzeichnis + perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)' + + # 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" + +=head2 Die Bootstrapping Methode + +Ein typischer Weg um local::lib zu benutzen ist die sogenannte "Bootstrapping" Methode. +Diese Methode wird benutzt wenn noch kein local::lib auf dem System installiert ist. +In diesem Fall kannst du einfach local::lib direkt in deinem Home-Verzeichnis installieren. + +Selbst wenn du administrative Rechte hast, ist es wichtig das die Umgebungsvariablen von +Schritt 4 in deinem Shell Startup Skript gesetzt werden. Ohne diesen Schritt werden die +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: +L. + +1. Lade das Tar-Archiv von CPAN runter (Suche nach "Download" auf der CPAN Seite von +local::lib) und entpacke es in einem beliebigem Verzeichnis. Um das obige Problem zu +vermeiden, sollte man dies als normaler User tun und nicht als root oder Administrator. + +2. Starte in dem entstandenen Verzeichnis folgenden Befehl: + + perl Makefile.PL --bootstrap + +Wenn das System dir vorschlägt gewisse Dinge eigenständig zu konfigurieren ist es in +fast allen Fällen vollkommen in Ordnung einfach "yes" zu antworten. + +Falls du local::lib nicht in das Standard Verzeichnis installieren willst, musst du +dieses Verzeichnis als Parameter angeben: + + perl Makefile.PL --bootstrap=~/foo + +3. Danach folgenden Befehl starten: (local::lib erwartet make auf dem System) + + 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 +du es über diesen Weg zu deinem Shell Startup Skript hinzufügen: + + echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc + +Wenn du C Shell benutzt, du kannst das gleiche hiermit erreichen: + + /bin/csh + echo $SHELL + /bin/csh + perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc + +Wenn du beim bootstrappen ein anderes Verzeichnis benutzt als das Standardverzeichnis, +dann musst du dieses Verzeichnis als Parameter beim Laden des Modules local::lib angeben: + + echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.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: +C mit. + +Wenn du eine sehr langsames System hast, oder du unter drakonischen Regulierungen des +Plattenplatz leben musst, kann man die automatische Generierung der manpages vom POD +bei der Installation des Moduls deaktivieren beim bootstrapping mit dem C<--no-manpages> +Parameter: + + perl Makefile.PL --bootstrap --no-manpages + +Wenn du mehrere lokale lib/ Installationen nutzen möchtest, z.B. für verschiedene +Applikationen. Hierfür kannst du local::lib einfach einm + +Um zu vermeiden das man mehrere bootstraps macht um z.B. für verschiedene Applikationen +eigene local::lib Installationen zu nutzen, kann man eine dieser Umgebungen benutzen +um einfach in beliebigen anderen Verzeichnis Module zu installieren und somit weitere +eigenständige lib/ Umgebungen zu bekommen: + + cd ~/mydir1 + perl -Mlocal::lib=./ + eval $(perl -Mlocal::lib=./) ### Um die Umgebungsvariablen für die + ### aktuelle Shell zusetzen + + printenv ### Hier kannst du sehen das ~/mydir1 + ### in der PERL5LIB Umgebungsvariable + ### steht + + perl -MCPAN -e install ... ### welche Module auch immer ... + cd ../mydir2 + + ... WIEDERHOLEN ... + +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/scripts/myscript.pl >>, du musst dort angeben das die Module +die es braucht im Verzeichnis C<< ~/mydir1/lib >> liegen. + +In C<< ~/mydir1/scripts/myscript.pl >> steht dann: + + use strict; + use warnings; + use local::lib "$FindBin::Bin/.."; ### zeigt auf ~/mydir1 und local::lib + ### findet dort lib + use lib "$FindBin::Bin/../lib"; ### zeigt auf ~/mydir1/lib + +Setze das vor jeden BEGIN { ... } Block der die Module braucht die du +installiert hast. + +=head2 Unterschiede bei Benutzung dieses Module mit Win32 + +Um die nötigen Umgebungsvariablen für diese Variablen in der derzeitigen +Sitzung mit C zu setzen, kann man folgendes kommando nutzen: + + C:\>perl -Mlocal::lib + set MODULEBUILDRC=C:\DOCUME~1\ADMINI~1\perl5\.modulebuildrc + 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 +L 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 +$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. + +=head1 EXISTENZGRUNDLAGE + +Die Version von den Perl Paketen die man benötigt für spezifische Aufgaben sind +sehr häufig nicht die richtigen oder korrekten Versionen auf dem System +vorinstalliert. Ein Updaten von diesen Modulen ist in vielen Fällen einfach +nicht möglich weil die nötigen Rechte fehlen. Ausserdem ist es generell nicht +gut eigenständig die Versionen der Module auf dem System auszutauschen, weil +natürlich der Rest des Systems genau die Version erwartet die von der +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 +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 +installierten Module zu benutzen, zusätzlich und vorgezogen zu denen auf dem +System. + +Daher muss man sich wenn man ein Paket System benutzt, wie z.b. Debian, garnicht +mehr Sorgen machen, irgendwas auf dem System zu verletzten nur durch die +Installation von Perl Modulen. + +=head1 BESCHREIBUNG + +Dieses Modul bietet eine schnelle und legitime Art und Weise ein sogenanntes +bootstrapping zu machen um in einem User Homeverzeichnis eine Sammlung von +Modulen zu installieren. Es erstellt auch die nötigen Umgebungsvariablen +die benötigt werden um diese Module zu nutzen, passend zu der Shell die der +User in der Umgebungsvariable C angegeben hat, um dann direkt passend +in die entsprechenden Konfigurationsdateien der Shell einfügt zu werden. + +Weitergehend ist local::lib in der Lage Module zu nutzen die nicht im +standardmäßigen C<@INC> Pfad von Perl enthalten sind. Das macht es einfacher +für bestimmte Applikationen ein bestimmtes Set von Modulen zu installieren +ohne die anderen Module auf dem System in irgendeiner Art anzufassen. +Damit es z.B. auch sicherer Module zu installieren die vom Maintainer noch +nicht als Release verfügbar sind. + +Beim Import setzt local::lib die folgenden Umgebungsvariablen zu den +nötigen Werten: + +=over 4 + +=item MODULEBUILDRC + +=item PERL_MM_OPT + +=item PERL5LIB + +=item PATH + +Am PATH wird natürlich angehangen, und nicht ersetzt. + +=back + +Diese Werte sind dann verfügbar für jeden Code der danach importiert wurde. + +=head1 CREATING A SELF-CONTAINED SET OF MODULES + +C<Übersetzung fehlt...> + +=head1 METHODS + +C<Übersetzung fehlt...> + +=head1 A WARNING ABOUT 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 +eine nicht ausreichende Sicherheit hat bezüglich wo er nun installieren muss. +Hierdurch mann es passieren das beim deinstallieren eines Modul u.U. das +globale Modul deinstalliert wird (wenn die Rechte vorhanden sind) aber die +neue Version nur in der lokalen Version installiert ist. Es ist hier also sehr +wichtig das man "make install UNINST=1" und local::lib nur gleichzeitig +benutzt wenn man sehr sicher darüber ist welche Konsequenzen einem +entgegenkommen. + +=head1 EINSCHRÄNKUNGEN + +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 Variable +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 +jeden Wert der vorher gesetzt war. + +Es sollte vielleicht eine automatische Korrektur der CPAN Config machen, wenn +das nicht schon gemacht wurde. + +"Patches Welcome" - Patches sind immer willkommen beim Autor oder den anderen +Mitwirkenden. + +Auf Win32 Systemen werden die Umgebungsvariablen nicht direkt in die Registrierung +geschrieben damit sie auch nach dem Neustarten erhalten bleiben. + +=head1 FEHLERANALYSE + +Wenn du local::lib konfiguriert hast CPAN Module in deinem Home Verzeichnis +zu installieren, und du danach versuchst mit C ein Modul +zu installieren, und dabei einen Fehler bekommst, wie: C und in der installationsausgabe steht +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. + +Um dies zu korrigieren, einfach nochmal die bootstrapping Methode laufen lassen, +wie oben beschrieben. + +Dann starte C + +Abschliessend dann nochmal mit C installieren und die Probleme +sollten verschwunden sein. + +=head1 UMGEBUNGSVARIABLEN + +=over 4 + +=item SHELL + +=item COMSPEC + +local::lib schaut in die C Umgebungsvariable um die korrekten Kommandos +zu der Shell Konfiguration hinzuzufügen. + +Auf Win32 Systemen, C wird auch analysiert. + +=back + +=head1 AUTOR DER ÜBERSETZUNG + +Torsten Raudssus http://www.raudssus.de/ + +=head1 URHEBERRECHT + +Copyright (c) 2007 - 2010 von den local::lib L und L +aufgelistet in L. + +=head1 LIZENZ + +Diese Sammlung ist freie Software und kann unter der selben Lizenz verbreitet +werden wie Perl selber. + +=cut + +1;