OVH Cloud OVH Cloud

[unix] No such file or directory

7 réponses
Avatar
kurtz le pirate
bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory

- si je suis dans '/Users/admin/perl/scripts' et que je lance la même
commande, ça marche !



j'ai oublié quoi ?

7 réponses

Avatar
spam
kurtz le pirate wrote:

bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory

- si je suis dans '/Users/admin/perl/scripts' et que je lance la même
commande, ça marche !


T'as essayé de te délogger ? Sinon fais "rehash" (ça marche avec tsch,
chaispas si bash le reconnaît).

Sinon ..

$ echo $PATH

... le chemin s'y trouve ?

--
spam

Avatar
Saïd
kurtz le pirate :
bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory



ajouter la ligne
#!/usr/bin/perl

au debut du fichier, et taper

eps2pov.plx

pour executer le script.

Ton probleme vient du fait que perl ne va pas chercher dans le path.
(d'ailleurs comme tu utilises ton script les autorisations en execution sur
le fichier ne servent a rien, par contre si tu fais comme je le dis elles
servent)

--
Saïd.
C programmers never die - they're just cast into void.

Avatar
FiLH
kurtz le pirate writes:

bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory

- si je suis dans '/Users/admin/perl/scripts' et que je lance la même
commande, ça marche !



j'ai oublié quoi ?


Que perl n'utilise pas la variable PATH pour trouver ces arguments.
Quant tu tappes : perl xxx.plx
c'est le binaire perl qui cherche un fichier xxx.plx
le PATH est utilisé par le shell pour trouver ses binaires. Dans le
cas que tu décris, le binaire c'est perl et pas xxx.plx

Donc.

En première ligne de ton fichier xxx.plx tu mets
#!/le/chemin/vers/le/binaire/de/perl

et tu tappes direct xxx.plx et ça devrait le faire.

FiLH

P.S. Sinon l'extension usuelle c'est .pl pour le perl.




--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/

Avatar
kurtz le pirate
In article <1gts4lg.1706dd9uukfwzN%,
(spam) wrote:

kurtz le pirate wrote:

bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory

- si je suis dans '/Users/admin/perl/scripts' et que je lance la même
commande, ça marche !


T'as essayé de te délogger ? Sinon fais "rehash" (ça marche avec tsch,
chaispas si bash le reconnaît).

Sinon ..

$ echo $PATH

... le chemin s'y trouve ?



oui, le chemin s'y trouve.



Avatar
kurtz le pirate
In article ,
Saïd wrote:

kurtz le pirate :
bonjour,

un truc que je ne comprends pas :

* j'ai fais un script perl : 'eps2pov.plx'
* j'ai mis ce script dans : '/Users/admin/perl/scripts'
* j'ai donné les bons droits :
-rwxr-xr-x 1 admin staff 5444 21 Mar 14:25 eps2pov.plx
* dans mon .profile, j'ai ajouter ce chemin dans le PATH :
export PATH=$PATH:/Users/admin/perl/scripts

- si je ne suis pas dans '/Users/admin/perl/scripts' et que je lance le
script par 'perl eps2pov.plx', j'obtient un :
Can't open perl script eps2pov.plx : No such file or directory



ajouter la ligne
#!/usr/bin/perl

au debut du fichier, et taper

eps2pov.plx

pour executer le script.

Ton probleme vient du fait que perl ne va pas chercher dans le path.
(d'ailleurs comme tu utilises ton script les autorisations en execution sur
le fichier ne servent a rien, par contre si tu fais comme je le dis elles
servent)



il y a la ligne : #!/usr/local/bin/perl -w
le /local est important ?


eps2pov.plx direct ne fonctionne pas. même si je suis dans le bon
directory



Avatar
spam
kurtz le pirate wrote:

Ton probleme vient du fait que perl ne va pas chercher dans le path.
(d'ailleurs comme tu utilises ton script les autorisations en execution sur
le fichier ne servent a rien, par contre si tu fais comme je le dis elles
servent)



il y a la ligne : #!/usr/local/bin/perl -w
le /local est important ?


eps2pov.plx direct ne fonctionne pas. même si je suis dans le bon
directory


C'est une question de path alors.. et le '"local" ne serait important
que si ton binaire perl se trouvait à ..

usr/local/bin/perl

Fais ..

$ whereis perl

... et tu devrais voir /usr/bin/perl .. je serais TRES étonné qu'il soit
ailleurs. Si tu es dans /Users/admin/perl/scripts et tu veux que cela
s'exécute, il faut faire ..

./eps2pov.plx

... car si tu le lances en tant que root, il est normal que le
répertoire actuel ne fasse pas partie de ton $PATH.

--
spam



Avatar
Stephane Dupille
il y a la ligne : #!/usr/local/bin/perl -w
le /local est important ?


Ça dépend où se trouve perl. Cette ligne doit contenir ce que renvoi
# which perl

eps2pov.plx direct ne fonctionne pas. même si je suis dans le bon
directory


Ça peut être normal. eps2pos.plx doit se trouver dans un répertoire
inclue dans $PATH. Sinon, il est normal que ça ne marche pas. Dans un
premier temps, le lancer en se mettant dans le répertoire, et le
lancer comme ceci :
# ./eps2pov.plx

Si cela ne marche pas, c'est que la première ligne n'est pas bonne.

Si cela marche, alors le lancer sans le "./". Si cela ne marche pas,
alors il faut ajouter le chemin dans le path, par exemple comme ceci :
# export PATH=$PATH:`pwd`
si on est dans le bon répertoire.

Réessayer de le lancer. Si cela ne marche toujours pas, alors
essayer de rafraichir le cache des exécutables de votre shell avec la
commande :
# rehash

--
J'ai aussi eu un forfait AOL gold. Mais j'abandonne car après une 1re
destruction de Windows 98 à l'installation, je viens d'en avoir une 2de
hier. La hot-line d'AOL me recommande de m'adresser à ... Microsoft.
-+- AH in <www.le-gnu.net> : J'usqu'où iront-ils avec Neuneusoft ? -+-