Newsgroup: it.comp.os.linux.sys
Titolo: Per chi mastica Perl.....

Ragazzi sto uscendo pazzo.....
Sto installando un qmail-scanner, e, nonostante la compilazione va a buon
fine se lancio  /var/qmail/bin/
qmail-scanner-queue.pl
 -g ottengo:
Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1
/us
r/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1
/us
r/share/perl/5.6.1 /usr/local/lib/site_perl) at
/var/qmail/bin/qmail-scanner-que
ue.pl
 line 73.
Ora voi direte... certo devi installare il modulo perl Sys-Syslog!!! Non ci
crederete ma l'ho fatto. Tant'e' che ho: /usr/lib/perl/5.6.1/Sys/Syslog.pm
Il modulo l'ho installato allo stesso modo dei moduli  Time-HiRes e DB_File,
cioe' ho scaricato i sorgenti e li ho compilati al solito modo:
perl Makefile.PL
make
make test
make install
Si puo' sapere che diavolo vuole da me? Aiutatemi perfavore!!!!
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.577 / Virus Database: 366 - Release Date: 03/02/2004

 Tant'e' che ho: /usr/lib/perl/5.6.1/Sys/Syslog.pm
In tal caso devi aggiungere /usr/lib/perl... etc. alla tua @INC path.
Davide
-- 
| PC's are designed by a committee of people who are in different
| companies in different countries and who never talk to each other. And
| nobody speaks the same language and they hate each other... -- Derick 
| Siddoway & Chris Adams 

 In tal caso devi aggiungere /usr/lib/perl... etc. alla tua @INC path.
Scusa ma credo che tu non abbia letto bene il post...
Allora, il modulo in questione ce l'ho qui:
/usr/lib/perl/5.6.1/Sys/Syslog.pm
E l'errore che ottengo e':
Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1
/usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl) at
/var/qmail/bin/
qmail-scanner-queue.pl
 line 73
Come puoi vedere @INC contempla gia' /usr/lib/perl/5.6.1 quindi non vedo
proprio perche' mi debba dire can't locate!!!!
Ciao


 cioe' ho scaricato i sorgenti e li ho compilati al solito modo:
Ma evidentemente li ha depositati in una delle dir previste dal tuo
path. Cosa che evidentemente non ha fatto il makefile o l'ambiente in
cui hai generato il makefile.
per saperne di piu` sull'array @INC, perldoc perlvar
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Each snowflake is different, collect the entire set.

 perl: /usr/lib/perl/5.6.1/Sys/Syslog.pm
infatti dpkg -S /usr/lib/perl/5.6.1/Sys/Syslog.pm mi restituisce proprio
/usr/lib/perl/5.6.1/Sys/Syslog.pm
Come puoi vedere sembra tutto a posto ma il perl si ostina a dire che quei
moduli non li trova... ti giuro che non so piu' che pensare, aiutoooooo :p
Ciao e grazie


 moduli non li trova... ti giuro che non so piu' che pensare, aiutoooooo :p
Visto che non credo ai miracoli <G>, fai questa verifica, per cortesia:
which perl
e
head -1 path/to/qmail-scanner (o come si chiama lo script).
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
And on the seventh day, He exited from append mode.

 writes:
DD> Come puoi vedere sembra tutto a posto ma il perl si ostina a dire
DD> che quei moduli non li trova... ti giuro che non so piu' che
DD> pensare, aiutoooooo :p
I permessi del file e delle directory come sono ? Ci sono altri file con
lo stesso nome negli altri percorsi ? 
Prova anche a ridefinire @INC con "use lib ....".
Saluti,
Luca Polo.
-- 
Luca...@gest.unipd.it
 --- 
http://www.gest.unipd.it/~jake
----------------------------------------------------------
One Ping to rule them all. One Ping to find them.
One Ping to bring down them all.
And in the darkness crash them.         [The Lord of the Pings]

 head -1 path/to/qmail-scanner (o come si chiama lo script).
debian:/samba/mailserver/qmailadmin-1.0.6# head -1
/var/qmail/bin/
qmail-scanner-queue.pl
#!/usr/bin/perl
Mistero?!?


 Mistero?!?
Esiste la possibilita` che a partire dalla dir /usr/bin/ (quella che
contiene Syslog.pm), sia negato un permesso in lettura, o di esecuzione
di una dir (a livello superiore, magari?).
Magari qualche installazione by source a fatto qualche pasticcio in
questo senso.
Altro test:
che output produce:
mizio@hal:~$ perl -we 'use Sys::Syslog'
mizio@hal:~$ /usr/bin/perl -we 'use Sys::Syslog'
(in teoria nessuno, in presenza di modulo).



Nessuno dei due produce output!!!
Ciao e grazie di nuovo


 Ciao e grazie di nuovo
In condizioni normali, i moduli installati non producono output, ergo,
la chiamata dentro lo script (o lo script) e` sbagliato.
Esempio:
mizio@gate:~$ perl -we 'use Sys::Syslog'
mizio@gate:~$ perl -we 'use Sys::Sarca'
Can't locate Sys/Sarca.pm in @INC (@INC contains:
/usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5
/usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1
/usr/local/lib/site_perl .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
mizio@gate:~$ 
Controlla quindi per bene il file incriminato (qmail-scanner) alla
ricerca di qualche errore di sintassi, e/o qualche carattere spurio (che
ne so, copia da windows a unix, visto quel samba di mezzo).
Vedrai che e` una roba cosi`.
Ciao.


Allora il problema e' il seguente:
lo script 
qmailscanner.pl
 ha il +s tra i permessi ed essendo di proprieta'
di qscand ovviamente non avevo durante l'esecuzione, il permesso per
"vedere" i moduli del perl che sono di proprieta' di root.
Ora pero' mi si pone un nuovo problema (oggi sono proprio sfigato).. il il
+s ce lo devo rimettere per ovvii motivi e come da how-to devo usare non per
ma suid perl cosi' come ho sempre fatto del resto, mi sapresti dire perche'
lanciando suidperl da root mi da permission denied?
-rwsr-xr-x    2 root     root        59584 Sep 12 01:38 /usr/bin/suidperl


 /usr/bin/suidperl
Stesso identico problema (dist debian) , ho risolto in maniera grezza
mettendo /usr/bin/perl al posto di suidperl :)
Ciao