[chuck-users] 1.3.0.0 (chimera) unleashed!

Hans Aberg haberg-1 at telia.com
Sat Aug 25 14:25:54 EDT 2012


On 25 Aug 2012, at 19:15, Kassen wrote:

> On Sat, Aug 25, 2012 at 07:03:42PM +0200, Hans Aberg wrote:
>> Of course, one can set ones own PATH, especially since the system PATH has the wrong order: /usr/local/bin/ should normally be ahead of the system installation objects, so you get the latest version when installing duplicates.
>> 
> 
> Yes, I agree.

On Mac OS X, one can change the system PATH by putting stuff in some directory somewhere, but then it is read in its own order (alphabetical probably). This is how it gets the wrong order.

>> I haven't see that, but for the program Terminal, one should set in .profile, whereas for X11 and xterm in .bashrc. So my .bashrc contains
>>  source ~/.profile
> 
> I think Linux will typically respect both (I forgot the order), and
> not just in X11, the TTY's read it too, at login.
> 
> Anyway, where it goes wrong (IMHO) is if you have a directory like
> ~/scripts In that case you'd put that in your path, perhaps even at
> the beginning. From memory; if you put a custom version of ChucK there
> for testing then "which chuck" -on OSX- will return /usr/bin/chuck
> while executing "chuck" will ~/scripts/chuck
> 
> That, needless to say, can cause confusion, though admittedly it is
> a independent issue from the one you are addressing.

As far as I know, 'which' just uses PATH. I have a ~/bin/ directory; here is test:
  $ which chuck
  /usr/local/bin/chuck
  $ cp /usr/local/bin/chuck bin/
  $ which chuck
/Users/<user>/bin/chuck

And my PATH is (some stuff removed)
/Users/<user>/bin:/usr/local/bin:/usr/local/X11R6/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

>> I have users in mind that we on occasion have seen here who know very little about UNIX and POSIX. If they have pre-10.7, it is easiest for them to use /usr/bin/.
> 
> I agree, and I think that should be done by the makefile. What could
> be considered is the makefile reading the system path and if
> /usr/local/bin is in it (likely indicating ISX 10.7 or later) put it
> there, otherwise in /usr/bin like it used to be.
> 
> That'd be correct in all cases I can think of without breaking old
> stuff.

It would not work if the user has a custom version. The standard way, that ism what I have seen on most packages, is that 'make install' puts binaries in /usr/local/bin/, docs in /usr/local/share/doc/chuck/, and examples in /usr/local/share/chuck/examples/.

Then one uses a prefix variable that can be changed from the default /usr/local/.

There is a "Filesystem Hierarchy Standard" which BSD/GNU Linux system largely adheres to.

It might be simpler to forget about a custom install for before 10.7 Mac OS X.

Hans




More information about the chuck-users mailing list