Miten asennetaan Perl'in laajennukset? Käyttöjärjestelmä on linux.
Tarkoitus olisi asentaa seuraava paketti:
Math/Cephes.pm
Jotta PERL osaisi laskea fresnelin integraaleja.
Ohjelman alussa on kyllä rivi
use Math::Cephes qw(:fresnl);
Mutta ei se riitä
Tarkoitus olisi asentaa seuraava paketti:
Math/Cephes.pm
Jotta PERL osaisi laskea fresnelin integraaleja.
Ohjelman alussa on kyllä rivi
use Math::Cephes qw(:fresnl);
Mutta ei se riitä
Vastaukset 17
Vanhimmat
Mikäs se käyttöjärjestelmä olikaan?
Syötä sinne päätteelle niitä sudo apt-get-juttuja vaikka maailman loppuun asti, ei tule valmista.
linux ei kerro mitään.
Mikä niistä:
- ubuntu
- mandriva
- mint
- debian
- gentoo
- jne... ????????????????
Käyttöjärjestelmäni on Linux - Fedora 12.
Käyttöjärjestelmäsi on siis Fedora 12, eikä Linux. Linuxilla ei ole mitään tekemistä Perlin eikä ongelmasi kanssa. Ja se Fedora 12 on vanhentunut käyttöjärjestelmä, tämä Fedora kun on kehittäjille suunnattu käyttöjärjestelmä jossa koeajetaan juttuja ja on hyvin lyhytikäinen. Sillä pystyy nippanappa hyppäämään yhden version ylitse ja tätä uusitaan pari kertaa vuodessa, eli ainakin noin kerta vuoteen pitäisi uusia se, ihan tietoturvasyistä.
Ohjeet näkyy olevan kyseisessä paketissa INSTALL -tiedostossa. Tarvitset C kääntäjän lisäämistä koneelle, ja sellainen löytyy kyllä Fedoran paketeista. Nyt ei ole Fedoraa koneella, että avaa sieltä paketinhallinta ja laita hakusanaksi "gcc" niin varmaan löytyy. Mahdollisesti tarvitset jotain libc:n -kehityspakettia (joku -dev tai -devel) jossa tämän otsikkotiedostot. Fedorassa varmaankin joku glibc, ja sitten toimit ohjeiden mukaan.
http://linux.softpedia.com/get/Programming/Libraries/Math-Cephes-28407.shtml
This module requires a C compiler to build. To install the
module, first edit libmd/mconf.h to suit your system (the
default settings are for Linux/Win32). Then execute the sequence
perl Makefile.PL
make
make test
make install
If you do not have permission to install modules in the
Perl site tree on your system, you can install this in
your own library by
perl Makefile.PL PREFIX=/home/me/perl \
INSTALLMAN1DIR=/home/me/man/man1 \
INSTALLMAN3DIR=/home/me/man/man3
make
make test
make install
To use modules in this location, either set the PERL5LIB
environment variable to include your private module
directory, or else put
use lib '/home/me/perl/path/to/lib';
Mitä tuolle tiedostolle "libmd/mconf.h" pitää tehdä ja missä se oikein on?
Annoin pääte-emulaattorista komennnon
[matti@localhost Math-Cephes-0.47] $ perl Makefile.PL
joka tulosti seuraavan virheilmoituksen:
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl .) at Makefile.PL line 5.
BEGIN failed--compilation aborted at Makefile.PL line 5.
Laajennusmoduuli on imuroitu ja purettuna paikassa /tmp/Math-Cephes-0.47
Linux on sulle liian vaikea ja sulla on vielä Fedora johon ei suomenkielistä tukeakaan saa kuin haulikolla uhkaamalla. Käänny linux.fi:n puoleen, siellä on linuxpeeloja auttamassa.
libmd/mconf.h -tiedostolle ei tarvitse tehdä mitään, ExtUtils/MakeMaker.pm puuttuu ja Perl valittaa siitä. Asenna perl-ExtUtils-MakeMaker.
Hohhohhoo, olisit trolli edes yrittänyt olla oma itsesi.
Asensin ohjelman Perl-ExtUtils-MakeMaker. Nyt perl Makefile.PL ja make onnistuivat mutta make test antoi virheilmoituksen:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/99pod.t ............ Can't locate Test/More.pm in @INC (@INC contains: /tmp/Math-Cephes-0.47/blib/lib /tmp/Math-Cephes-0.47/blib/arch /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl .) at t/99pod.t line 2.
BEGIN failed--compilation aborted at t/99pod.t line 2.
t/99pod.t ............ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/bessels.t .......... ok
t/betas.t ............ ok
t/cmplx.t ............ ok
t/dists.t ............ ok
t/elliptics.t ........ ok
t/explog.t ........... ok
t/fract.t ............ ok
t/gammas.t ........... ok
t/hypergeometrics.t .. ok
t/hypers.t ........... ok
t/mat.t .............. ok
t/misc.t ............. ok
t/poly.t ............. ok
t/trig.t ............. ok
t/utils.t ............ ok
Test Summary Report
-------------------
t/99pod.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
Files=16, Tests=472, 3 wallclock secs ( 0.32 usr 0.10 sys 0.84 cusr 0.15 csys = 1.41 CPU)
Result: FAIL
Failed 1/16 test programs. 0/472 subtests failed.
make: *** [test_dynamic] Virhe 255
Kaiketi valitti että Test/More.pm puuttuu yritin asentaa paketin:
perl-Test-Simple-0.92-82.fc12.i686.rpm
Mutta se ei onnistunut, paketinhallinta sanoo:"tapahtui tranaktiovirhe. perl-Test-Simple-0.92-82.fc12.i686 vaatii perl = 4:5.10.0-82.fc12"
Jos make meni läpi ilman valituksia, voit asentaa laajennoksen komennolla 'make install'. Testien ajo (make test) on useimmille käyttäjille täysin turha välivaihe.
Ei onnistunut myöskään 'make install' se antoi virheilmoituksen:
make[1]: Siirrytään hakemistoon "/tmp/Math-Cephes-0.47/libmd"
make[1]: Poistutaan hakemistosta "/tmp/Math-Cephes-0.47/libmd"
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/bin'
Do not have write permissions on '/usr/local/bin'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1
make: *** [pure_site_install] Virhe 2
Koneessani on perl v5.10.0
Make install pitää suorittaa root-käyttäjänä; esim. 'su -c "make install"'.
http://www.fedorafaq.org/basics/#root
Päivitin käyttöjärjestelmän fedora 12 -> fedora 14. Vanhat käyttöjärjestelmät kun oikuttelevat uusien liitännäisten kanssa.
Make test kyllä antoi virheilmoituksia (väitti että joitakin osia ei löydy) mutta make install ei antanut yhtään virheilmoitusta (kaikki löytyi). Loppurivi:
Appending installation info to /usr/lib/perl5/perllocal.pod
Kun ajaa seuraavan ohjelman:
#!/usr/local/bin/perl
use strict;
use Math::Cephes qw(:misc);
$x=0.5;
($flag, $S, $C) = fresnl( $x );
$y = acosh( $x );
Seuraa virheilmoitus:
Can't load '/usr/local/lib/perl5/auto/Math/Cephes/Cephes.so' for module Math::Cephes: /usr/local/lib/perl5/auto/Math/Cephes/Cephes.so: cannot enable executable stack as shared object requires: Lupa evätty at /usr/lib/perl5/DynaLoader.pm line 200.
at /usr/local/lib/perl5/Math/Cephes.pm line 11
Compilation failed in require at fresnl.pl line 4.
BEGIN failed--compilation aborted at fresnl.pl line 4.