lancement de postgrey sur Mac OS X 10.5 (was Re: [Admin-ml] Spam)
Proniewski Patrick
patrick.proniewski at univ-lyon2.fr
Jeu 14 Mai 11:01:56 CEST 2009
Bonjour,
Je reviens plus d'un an après !
On 8 mars 08, at 16:54, Proniewski Patrick wrote:
> On 8 mars 08, at 10:06, Jean-Luc Bailloeul wrote:
>
>> J'ai suivi ta démarche, mais quand je lance :
>>
>>> /usr/bin/postgrey \
>>> --pidfile=/var/run/postgrey.pid \
>>> ...
>> J'ai l'erreur suivante :
>>
>> ERROR: Insecure $ENV{PATH} while running with -T switch at /System/
>> Library/Perl/Extras/5.8.6/Net/Server/Daemonize.pm line 70.
>>
>> Tu sais ce que cela veut dire ?
>
> Ça veut dire que PERL ne fait pas confiance à ton environnement.
> Cela ne s'est produit pour moi que quand j'installais postgrey dans /
> usr/local/bin, et l'erreur a disparu quand je l'ai déplacé dans /usr/
> bin/. Cétait le sens de ma remarque ici :
>
>>> Si on a copié postgrey dans /usr/bin plutôt que dans /usr/local/
>>> bin, PERL
>>> ne râle pas, et on peut se passer de "PATH=/usr/loc..." devant la
>>> commande.
>>>
>
> tente de lancer postgrey avec cette commande pour voir si c'est le
> même problème :
>
> PATH=/sbin:/bin:/usr/sbin:/usr/bin /usr/bin/postgrey \
> --pidfile=/var/run/postgrey.pid ...
Alors je viens de me colleter avec le même problème. Mon guide
d'install de postgrey fonctionnait très bien avec Mac OS X 10.4, mais
plus en 10.5, car un module Perl a changé.
Le module /System/Library/Perl/Extras/5.8.6/Net/Server/Daemonize.pm, à
la ligne 70 fait un test d'existence de /proc :
69 ### try a proc file system
70 if( -d '/proc' && opendir(_DH,'/proc') ){
71
72 while ( defined(my $pid = readdir(_DH)) ){
73 if( $pid eq $current_pid ){
74 $exists = 1;
75 last;
76 }
77 }
78
79 ### try ps
80 #}elsif( -x '/bin/ps' ){ # not as portable
81 # the ps command itself really isn't portable
82 # this follows BSD syntax ps (BSD's and linux)
83 # this will fail on Unix98 syntax ps (Solaris, etc)
84 }elsif( `ps h o pid p $$` =~ /^\s*$$\s*$/ ){ # can I play
ps on myself ?
85 $exists = `ps h o pid p $current_pid`;
86
87 }
Flairant l'arnaque : aucune des parties de ce if ne peuvent
fonctionner sur Mac, j'ai tout commenté entre les lignes 70 et 87 :
bilan, postgrey se lance nickel et fonctionne plein pot.
Mais ce n'est pas satisfaisant de modifier un .pm fourni par Apple et
susceptible d'être mis à jour ultérieurement sans qu'on le sache.
J'ai donc restauré le .pm fourni par Apple, et j'ai créé à la racine
du disque un dossier "proc".
J'ai relancé postgrey, et là, ça marche !
Patrick PRONIEWSKI
--
Administrateur Système - SENTIER - Université Lumière Lyon 2
Plus d'informations sur la liste de diffusion Admin-ml