[HEADS UP] perl symlinks in /usr/bin will be gone

Holger Kipp hk at alogis.com
Sun Jan 30 03:10:27 PST 2005


On Sun, Jan 30, 2005 at 05:31:21AM -0500, Chuck Swiger wrote:
> Edwin Groothuis wrote:
> >On Sat, Jan 29, 2005 at 11:51:36PM -0500, Chuck Swiger wrote:
> >>Andrew McNaughton wrote:
> >>#!/usr/bin/env PERL5OPT='-w' perl
> >
> >"#!/usr/bin/perl -w" sounds much easier.
> 
> Sure, assuming there actually was a perl in /usr/bin.  I would not choose 
> to hardcode the path to perl when env is available to properly locate the 
> interpreter for #!-based scripts via the $PATH.

a) we had perl at /usr/bin/perl
   => many scripts are using "#!/usr/bin/perl"
b) we have a symlink now 
   => many new scripts are using "#!/usr/bin/perl"
c) many ISPs have even more users who assume "#!/usr/bin/perl" works.
   => removing a symlink to create lots_of_trouble(tm) is not the
      freebsd-ish way of live. this single symlink is needed.
d) calling env and then perl increases load unneccessarily
   => don't do that.
   => if you like _YOUR_ scripts to work like that, it is fine with
      me ;-)
e) comparing #!/usr/bin/env PERL5OPT='-w' perl with
             #!/usr/bin/perl -w
   => I'd vote for the simpler second one.

> I don't want to revisit a discussion of whether Perl should be part of base.

ok

> I don't want the Perl port to change in a way that breaks existing scripts.

fine, so we must keep the symlink in /usr/bin/

> I don't want perl scripts to assume that Perl is in /usr/bin, or 
> /usr/local/bin, or any other specific place.

Your problem. Write your scripts accordingly and be happy. Talk with several
thousand programmers who use perl and assume it is located at /usr/bin/perl
and convince them to write their programs differently. Otherwise, this
breaks POLA. See c)

> I don't want to have perl symlinked between /usr/bin and /usr/local/bin.

Fine, then _you_ can remove the symlink by hand on your systems every time.

> I do want scripts to use a portable mechanism to invoke Perl regardless of 
> where the binary happens to be found, but if people are determined to do 
> otherwise, well, that's up to them.  One solution for those people might be 
> to install the Perl port with a $PREFIX of /usr rather than /usr/local.

Huh? It was removed from the base system, so it belongs to /usr/local.

Get real. Removing the symlinks permanently is causing lots of trouble.
Not removing them is fine with me and at least most other users.

Regards,
Holger Kipp


More information about the freebsd-stable mailing list