Date: Sun, 30 Jan 2005 07:26:30 -0500 From: Chuck Swiger <cswiger@mac.com> To: Holger Kipp <hk@alogis.com> Cc: freebsd-ports@freebsd.org Subject: Re: [HEADS UP] perl symlinks in /usr/bin will be gone Message-ID: <41FCD276.2000002@mac.com> In-Reply-To: <20050130111025.GB30800@intserv.int1.b.intern> References: <20050129202425.GA56998@heechee.tobez.org> <20050129220905.46ab86ae.lehmann@ans-netz.de> <41FBFDD9.7070605@mac.com> <20050130162753.D9021@a2.scoop.co.nz> <41FC67D8.2020609@mac.com> <20050130050110.GC1209@k7.mavetju> <41FCB779.7030902@mac.com> <20050130111025.GB30800@intserv.int1.b.intern>
next in thread | previous in thread | raw e-mail | index | archive | help
Holger Kipp wrote: > On Sun, Jan 30, 2005 at 05:31:21AM -0500, Chuck Swiger wrote: >>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" If "we" means FreeBSD-4, OK. Otherwise, I remember using a /usr/local/bin/perl-4.036 several years before vendors started shipping Perl with the system in /usr/bin. >> 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/ That is one solution, but it is not the only available choice. >> 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) As I said to Kris, I'm perfectly willing to change existing software or write my own to suit my preferences. If other people want to do something else which pleases them better, fine, that's up to them. >>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. Or I could not bother and simply let env deal with finding the right version of perl. Works for me. >> 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. There is a conflict between installing perl to /usr/local/bin and expecting to invoke perl from /usr/bin. Perhaps you've decided to live with it and are happy with symlinks so that both paths work. > Get real. Oh, I am. Mostly. :-) > Removing the symlinks permanently is causing lots of trouble. For some people, agreed. It doesn't matter one bit to other people... > Not removing them is fine with me and at least most other users. Leaving the symlinks as they are now is probably the least intrusive way of dealing with the current mess that Perl script invocation has become. Fortunately, people doing Python seemed to have learned from these problems, as a quick check via GoogleFight suggests that the majority of Python scripts use env rather than hardcoding a path. -- -Chuck
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41FCD276.2000002>