Om å sette opp Perl og CPAN uten 'root'-tilgang


Informasjon.gif Har du lyst til å gi oss en
Tilbakemelding
på denne siden?

Informasjon.gif Under utvikling! Denne siden er under utvikling og ble sist oppdatert 9.09.2011 av Nbofh . Artikkelen kan eksistere på engelsk. Se etter en språklenke i menyen til venstre.

Denne siden beskriver tips og triks for å sette opp CPAN for å installere Perl moduler på et system der du ikke har root-tilgang. For flere tips kan du søke på 'cpan non-root' i din favoritt-søkemotor.

Bakgrunn

Hva er Perl uten CPAN?

Perl er et programmeringsspråk. Mange vil si at det er et godt programmeringsspråk. Det er spesielt bra til å trikse og mikse med tekst strenger og -filer. Likevel vil du ikke arbeide mye med Perl før du har behov for å hente en eller annen modul fra CPAN, The Comprehensive Perl Archive Network. CPAN har en modul (eller gjerne flere) for utrolig mange ting, alt fra XML og HTML-parsing til interaksjon med LDAP og SQL-databaser, bare for å nevne noe.

Hva er CPAN?

CPAN er et sentralt arkiv på Internet der alle kan dele Perl-moduler med hverandre, og samarbeide om utviklingen av moduler. cpan er også navnet på en kommando som brukes i en terminal, i.e. x-term eller konsollet på et GNU/Linux system eller CMD på MS Windows. Programmet cpan må settes opp litt spesielt for å virke på et GNU/Linux-system der du ikke har root tilgang.

Denne artikkelen er skrevet for å gi noen tips til hvordan programmet cpan kan settes opp til å virke på Universitetet i Bergen sine GNU/Linux maskiner, i serdeleshet Login.uib.no, som gir ssh-tilgang, og NX.uib.no, som gir tilgang til grafisk login via NoMachine med Gnome eller KDE desktop.

Informasjonen i denne filen er skrapt sammen fra ulike steder på Internet, som for eksempel http://apthorpe.cynistar.net/code/configuring_cpan.html og http://openwall.info/wiki/internal/perl/cpan.

Administratorrettigheter

Hvis du ikke har administrator-rettigheter på systemet du arbeider på, vil cpan gi en feilmelding når du forsøker å installere moduler fra CPAN. Feilmeldingene går stort sett ut på at du ikke har skrive-rettigheter (write permissions) til systemkatalogene. Dette er selvsagt riktig, men det finnes en del triks som ordner det slik at du kan installere moduler fra CPAN i din egen hjemmekatalog. I dette eksempelet brukes katlogen ~/myperl/ som base for cpan og ditt private Perl-bibliotek.

Hvordan sette opp cpan

Start med å sette opp skallet ditt

cpan og Perl er avhengig av en del miljøvariable. Derfor er det en god idé å sette opp skallet ditt slik at disse blir satt riktig hver gang du logger på maskinen.

UiB tilbyr Bash eller tcsh som skall for GNU/Linux og UNIX arbeidsstasjoner. Dette kan du velge på SEBRA. Under følger instruksjoner som fungerer for Bash. Oppsett av tcsh vil være tilsvarende.

Sette opp Bash

Først må du sette opp Bash i grunnkonfigurasjon. Dette kan du lese om her.

Definere variable for non-root cpan

I dette eksempelet brukes som sagt ~/myperl som base for ditt private perl modularkiv og for cpan generelt. Vi må derfor lage denne katalogen først. Utfør følgende kommandoer i en terminal. Tegnet '$' indikerer Bash sin kommandoprompt, og skal ikke skrives inn.

$ cd
$ mkdir myperl

Så må du legge til noen linjer i filen ~/.bashrc, enten v.h.a. en editor, eller ved å lime følgende blokk inn i en terminal:

cat >> ~/.bashrc << EOF

# Library path for userland Perl modules
export PERL5OPT="-I${HOME}/myperl/lib -I${HOME}/myperl/lib64/perl5 -I${HOME}/myperl/share/perl5"
# Prepend manpath for userland cpan installed Perl modules to manpath
export MANPATH=${HOME}/myperl/man:${HOME}/myperl/share/man:$(manpath -g)

# Alias for user mode cpan
alias mcpan="perl -MCPAN -e shell"
EOF

Ved å legge til disse linjene i denne filen instruerer vi perl og man om hvor de kan finne ulike filer de trenger, samt at det lager et alias ved navn mcpan som du kan bruke istedenfor kommandoen perl -MCPAN -e shell.

Logg ut og inn igen, slik at endringene trer i kraft. Du kan for så vidt også skrive

. ~/.bashrc

så trer endringene i kraft umiddelbart, men kun for det skallet du skriver det i, og ikke for hele systemet.

Sette opp cpan

Programmet cpan styres av oppsettsfilen ~/.cpan/CPAN/MyConfig.pm. Første gang du kjører programmet tilbyr det å sette ting opp automatisk for deg. Det meste fungerer fint etter dette, men noen ting gjenstår. Verdiene for make_install_arg, makepl_arg, mbuild_arg og urllist må endres.

For å gjøre enkelt dette kan du lime følgende blokk inn i en terminal:

perl -MCPAN -e shell << EOF
o conf make_install_arg UNINST=0
o conf makepl_arg PREFIX=~/myperl
o conf mbuild_arg --prefix=~/myperl
o conf urllist ftp://ctan.uib.no/pub/CPAN/ ftp://mirrors4.kernel.org/pub/CPAN/ ftp://cpan.rinet.ru/pub/mirror/CPAN/ ftp://mirrors3.kernel.org/pub/CPAN/ ftp://ftp.rub.de/pub/CPAN/ ftp://ftp.spbu.ru/CPAN/
o conf commit
quit
EOF

Alternativt kan du skrive inn kommandoene over i cpan-skallet.

En liten test

Forhåpentlig skulle alt være i orden nå. For å teste dette kan vi installere en modul. En god ting å ha er readline support for å kunne redigere kommandolinjene i cpan-skallet. Dette gjør du slik:

$ mcpan
cpan > install Term::ReadLine::Gnu

Du kan selvsagt også installere andre moduler som gir readline støtte hvis du vil. Hvis alt er riktig satt opp, vil du se meldinger om at modulene blir lastet ned, pakket ut, bygget, testet og installert. programmet gir deg feilmeldinger dersom noe gikk galt.

Hvis alt gikk bra er du nå klar til å installere perl-moduler fra CPAN uten å ha root-tilgang til systemet.