"/bin env perl", oder doch "/usr/local/bin/perl" ?
Joerg
- programmiertechnik
Hi,
eine Praxisfrage ... wir entwickeln derzeit ein groesseres Software-Paket (hauptsaechlich in Perl, dazu einige bash-scripts).
Nun liegen "bash" und "perl" bekanntlich auf verschiedenen Rechnern (bzw. Distributionen) an verschiedenen Orten im Filesystem.
Was ist nun "besser", um die Software moeglichst vielen Plattformen installierbar und lauffaehig zu haben:
#!/bin/bash
#!/usr/local/bin/perl (ggfs. mit der Empfehlung im Handbuch, einen symlink zum "wirklichen" Ort zu setzen)
... oder doch ...
#!/bin/env bash
#!/bin/env perl
... gibt es "schwerwiegende" Argumente fuer oder gegen eine dieser Varianten?
Gruss aus Lausanne & Merci,
Hallo,
... gibt es "schwerwiegende" Argumente fuer oder gegen eine dieser Varianten?
Ja. Bei der ersten Variante wird das Skript nur ausgeführt wenn perl in /bin liegt (was es bei mir zB nicht tut) die zweite Variante sucht nach perl im PATH des Benutzers.
Siehe auch Shebang.
Gruß,
Severin
Moin!
Was ist nun "besser", um die Software moeglichst vielen Plattformen installierbar und lauffaehig zu haben:
Ein install script (ein Makefile) zu verwenden.
Für Perl ist ja ohnehin ein Standard:
perl Makefile.pl
make
make test
make install
Warum nicht ähnlich vorgehen?
-- Skeeve
Hi nochmal,
Was ist nun "besser", um die Software moeglichst vielen Plattformen installierbar und lauffaehig zu haben:
#!/bin/bash
#!/usr/local/bin/perl (ggfs. mit der Empfehlung im Handbuch, einen symlink zum "wirklichen" Ort zu setzen)... oder doch ...
#!/bin/env bash
#!/bin/env perl... gibt es "schwerwiegende" Argumente fuer oder gegen eine dieser Varianten?
Nach weiterem Suchen und Probieren antworte mir auch mal selbst ;-) ... /bin/env hat mehrere Nachteile: (1) es existiert nicht auf "allen" Systemen, (2) es - oder der symlink - liegt nicht immer in /bin/env, (3) es akzeptiert nur ein Argument.
Letzteres ist das Killer-Argument :-(
Danke fuers feedback!
Moin!
Letzteres ist das Killer-Argument :-(
Und? Was macht Ihr jetzt?
-- Skeeve