Perl Script mit dependencies machen (make)

Lofgard

Lofgard

Aktives Mitglied
Thread Starter
Dabei seit
17.04.2005
Beiträge
1.249
Reaktionspunkte
82
N'abend!

Ich würde mir gerne ein auf einem Perl Skript basierendes Programm installieren, aber ich stehe voll auf dem Schlauch und bekomme es nicht hin.

Das Programm heißt Music-Audioscrobbler-MPD-0.1. Hier ist ein Thread zum Programm, leider ohne Installationsanleitung, das Programm kann man hier herunterladen.

Die Anleitung im Readme ist eigentlich ganz einfach:
To install this module type the following:

perl Makefile.PL
make
make test
make install

In dem Read Me steht auch was von dependencies:
This module requires these other modules and libraries:

Music::Audioscrobbler::Submit
File::Spec
Digest::MD5
Encode
IO::Socket
IO::File
Config::Options

Bei "make test" kommen bei mir ellenlange Fehlermeldungen, auch habe ich nicht ganz begriffen, was die dependencies sind. Programme oder Bibliotheken oder andere Skripte?

Ich bin ratlos.
 
das sind andere perl module, die kannst du z.b. über cpan installieren lassen (so wie dein perl skript wohl auch, automatisch mit den dependencies ;))
 
Hm, ich habe es jetzt mit
perl -MCPAN -e 'install Music::Audioscrobbler::MPD'
probiert und das rattert auch ganz fröhlich vor sich hin und fragt nach zusätzlichen Modulen und ich lasse ihn das auch alles installieren aber zum Schluß macht er kein "make"

Die letzten Zeilen sind:
CPAN.pm: Going to build E/EH/EHOOD/Proc-Daemon-0.03.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Proc::Daemon
-- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
Running make for E/EA/EALLENIII/Music-Audioscrobbler-MPD-0.1.tar.gz
Is already unwrapped into directory /Users/jottzeh/.cpan/build/Music-Audioscrobbler-MPD-0.1

CPAN.pm: Going to build E/EA/EALLENIII/Music-Audioscrobbler-MPD-0.1.tar.gz

-- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible

Ich habe das auch als Computerverwalter mit sudo probiert, da passiert das gleiche.

Muss ich die dependencie encode irgendwie von Hand installieren? Die gibt es allerdings bei darwinports nicht. Oder wie kann ich sehen, woran es hängt? Zwischendurch will die Installation was testen und will sich mit Localhost verbinden und wundert sich, dass auf meinem Computer kein Webserver läuft.
CPAN.pm: Going to build G/GA/GAAS/libwww-perl-5.812.tar.gz

Can't connect: IO::Socket::INET: Bad hostname 'claudia:62422'
Test server timeout
The can-we-talk-to-ourself test failed.

Das vollständige Installationsprotokoll hätte ich jetzt angehängt, aber hier sind nur Bilddateien erlaubt.


// Was noch viel toller wäre: Wenn sich das mit microperl unter Linux installieren lassen würde, aber dazu müsste ich microperl erstmal beibringen, was cpan ist, oder? Da bekomme ich den Fehler:
Can't locate CPAN.pm in @INC (@INC contains: /usr/local/lib/perl5/5.9 .).

Da gibt es scheinbar den -Idirectory Switch, aber wie baue ich da CPAN ein?

microperl -Idirectory /search.cpan.org/src/EALLENIII/Music-Audioscrobbler-MPD-0.1/bin/ -e 'install Music::Audioscrobbler::MPD'
geht schonmal nicht.
 
Zuletzt bearbeitet:
der hat halt ein problem das make file für ein proc daemon zu erstellen...
versuch den doch mal so über cpan zu installieren und probier auch mal eine andere revision...
manchmal haben die halt build probleme...
 
Ich verschieb Dich mal ins Entwickler Forum.
Mit Mac OS X hat das ja im Grunde nichts zu tun.
 
Danke für die Hilfe, ich habe nur leider keinen Schimmer, wie man das Proc::Daemon Modul neu installiert. Wenn das auf der verlinkten Seite steht, habe ich es nicht geschnallt …

Ich hatte Microperl genommen, weil ich nicht wusste, das ich auch ein komplettes (?) Perl von der Paketdistribution bekommen kann. Jetzt habe ich es nochmal mit Perl versucht. Eigentlich soll das Perl Skript auch gar nicht auf dem Mac laufen, sondern auf dem Router. Das sieht dann so aus:

$ perl -MCPAN -e 'install Music::Audioscrobbler::MPD'
CPAN: Storable loaded ok
Going to read /opt/.cpan/sources/authors/01mailrc.txt.gz
/bin/gzip: illegal option -- -
BusyBox v1.1.3 (2007.01.01-14:37+0000) multi-call binary

Usage: gzip [OPTION]... [FILE]...

Going to read /opt/.cpan/sources/modules/02packages.details.txt.gz
/bin/gzip: illegal option -- -
BusyBox v1.1.3 (2007.01.01-14:37+0000) multi-call binary

Usage: gzip [OPTION]... [FILE]...

Warning: Your /opt/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Warning: Your /opt/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Going to read /opt/.cpan/sources/modules/03modlist.data.gz
/bin/gzip: illegal option -- -
BusyBox v1.1.3 (2007.01.01-14:37+0000) multi-call binary

Usage: gzip [OPTION]... [FILE]...

Can't locate object method "data" via package "CPAN::Modulelist" (perhaps you forgot to load "CPAN::Modulelist"?) at (eval 23) line 1.
at /opt/lib/perl5/5.8.8/CPAN.pm line 3405
CPAN::Index::rd_modlist('CPAN::Index', '/opt/.cpan/sources/modules/03modlist.data.gz') called at /opt/lib/perl5/5.8.8/CPAN.pm line 3128
CPAN::Index::reload('CPAN::Index') called at /opt/lib/perl5/5.8.8/CPAN.pm line 675
CPAN::exists('CPAN=HASH(0xdfd5a0)', 'CPAN::Module', 'Music::Audioscrobbler::MPD') called at /opt/lib/perl5/5.8.8/CPAN.pm line 1841
CPAN::Shell::expandany('CPAN::Shell', 'Music::Audioscrobbler::MPD') called at /opt/lib/perl5/5.8.8/CPAN.pm line 2077
CPAN::Shell::rematein('CPAN::Shell', 'install', 'Music::Audioscrobbler::MPD') called at /opt/lib/perl5/5.8.8/CPAN.pm line 2164
CPAN::Shell::install('CPAN::Shell', 'Music::Audioscrobbler::MPD') called at /opt/lib/perl5/5.8.8/CPAN.pm line 79
CPAN::AUTOLOAD('Music::Audioscrobbler::MPD') called at -e line 1

scheinbar bekomme ich die .gz Dateien nicht entpackt. Bei der Installation von Perl wurden ja die ganzen Programme abgefragt und die hatte ich auch alle vorrätig. Vielleicht sollte ich die Installation nochmal durchlaufen lassen und dort, wo gzip verlangt wird einen anderen Entpacker eintragen? Wie startet man die Installation erneut? Alles mit dem Paketmanager runtermachen und wieder rauf oder läßt sich der Entpacker auch anders umdefinieren? Oder liegt das vielleicht gar nicht am Entpacker?
 
Eigentlich soll das Perl Skript auch gar nicht auf dem Mac laufen, sondern auf dem Router.
Die busybox 1.1.3 ist ja schon zimlich alt.
Ich hab die 1.9.2 auf meiner Box.
Die kann anscheinend die Option '-', Deine anscheinend nicht.
Poste mal die Ausgabe von
Code:
gzip --help

Ich befürchte aber, dass Du noch mehr Fehler erhalten wirst, wenn Du das auf dem Router versuchst. Die busybox stellt in vielen Fällen Kommandos zur Verfügung, die auf das absolut Wesentliche reduziert sind. cpan wird aber eine Standardumgebung voraussetzen.

Was ist das eigentlich für ein Router?
Hast Du da überhaupt ein "normal" beschreibbares Dateisystem drauf?
 
Wie man die busybox aktualisiert habe ich noch gar nicht geschaut, das ist ein Asus-Router mit dieser Firmware: Asus Forum

So von der Stange gibt es da keine aktuellere busybox für, scheinbar wird die von den Entwicklern nicht aktualisiert, weil dann irgendwas nicht mehr läuft.

Die coreutils habe ich allerdings installiert, ich habe bloß nicht so einen Plan, was das eigentlich ist - ich nehme mal an eine ganze Reihe von Programmen, vielleicht habe ich ja irgendwo ein besseres Programm für .gz Dateien liegen, aber ich benutze es nicht?

$ gzip --help
gzip 1.2.4 (18 Aug 93)
usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
-c --stdout write on standard output, keep original files unchanged
-d --decompress decompress
-f --force force overwrite of output file and compress links
-h --help give this help
-l --list list compressed file contents
-L --license display software license
-n --no-name do not save or restore the original name and time stamp
-N --name save or restore the original name and time stamp
-q --quiet suppress all warnings
-r --recursive operate recursively on directories
-S .suf --suffix .suf use suffix .suf on compressed files
-t --test test compressed file integrity
-v --verbose verbose mode
-V --version display version number
-1 --fast compress faster
-9 --best compress better
file... files to (de)compress. If none given, use standard input.

Könnte davon was besser funktionieren?
ipkg list | grep zip
bzip2 - 1.0.5-1 - Very high-quality data compression program
gzip - 1.2.4a-3 - GNU Zip data compression program
p7zip - 4.57-1 - Command line version of 7-zip for POSIX systems.
perl-archive-zip - 1.16-3 - Archive-Zip - Provide an interface to ZIP archive files.
unzip - 5.52-3 - A (de)compression library for the ZIP format
zip - 2.32-1 - a compression and file packaging utility.
 
guck doch mal, ob es das modul nicht schon als paket gibt...
perl-archive-zip deutet ja drauf hin, dass es auch perl pakete gibt...
 
Die ist so bestechend einfach, dass ich das natürlich überhaupt nicht in Erwägung gezogen habe. Es gibt allerdings ein anderes Paket, was genau das gleiche macht, wie dieses Script, das ich nicht zum laufen bekomme. Ich installiere das gerade. :hamma:
 
Ich hatte Microperl genommen, weil ich nicht wusste, das ich auch ein komplettes (?) Perl von der Paketdistribution bekommen kann.
Perl ist doch bei OS X schon in der Standardinstallation :confused:

Alex
 
Zurück
Oben Unten