Sponsored Content
Top Forums UNIX for Dummies Questions & Answers What Makes an App the System Default? Post 302770437 by bakunin on Friday 15th of February 2013 09:51:55 PM
Old 02-15-2013
I notice with satisfaction you still tenaciously learn UNIX despite my efforts to let the subject look boring and hard to grasp - good!
Quote:
Originally Posted by sudon't
Code:
$ sudo gem install scrabble-solver
ERROR:  Error installing scrabble-solver:
	scrabble-solver requires Ruby version >= 1.9.2

$ which ruby
/usr/bin/ruby

$ ls -l /opt/local/bin/ |grep ruby
-rwxr-xr-x   1 root  admin     9024 Feb  6 11:21 ruby1.9
$

Why didn't ruby 1.9 become the default? How does the system determine which app is the default? I used to think it simply accepted the first one it came across in my PATH, but clearly that is not the case.
Code:
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/MacGPG2/bin:/usr/X11/bin

To me it looks like the problem is the name: the new ruby in "/opt/local/bin" is not named "ruby", but "ruby1.9". If you issue which ruby1.9 you would probably see this one, but if you search for "ruby", you get the one in "/usr/bin" simply because it is the only "ruby" you have.

Now, why ruby decided to install as "ruby1.9" and not as "ruby" i don' know. I don't know Macs version of UNIX at all, so i can only tell you what is the possible reason for the problem, not how to solve it.

You can, of course, try to solve the problem brute-force:

Rename "/usr/bin/ruby" to something else, say, "/usr/bin/ruby1.8". Then create a softlink:

Code:
ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby

Whenever "ruby" is used, this link is followed and your new executable is used. If this works, i don't know. (There might be libraries or whatever necessary for ruby to work and it will probably not find them in any arbitrary place.) If this is not working, just delete the softlink and move the original ruby back into place:

Code:
rm /usr/bin/ruby
mv /usr/bin/ruby1.8 /usr/bin/ruby

I hope this helps.

bakunin
 

3 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Loading App as the System starts

Hi Folks! I am a Mac OS X user, and have written an Applescript application that I would like it to be run before the user logs in. I have tryed leaving the Mac on the "Login Screen", that screen just before you log in typing name and password, and logging using ssh from another Mac on the... (0 Replies)
Discussion started by: fundidor
0 Replies

2. UNIX for Dummies Questions & Answers

chmod ug-s /System/Library/CoreServices/RemoteManagement/ARDAgent.app/.... NOT PERMITTED

After much reflecting I decided that I don't want to have a remote managemente in my computer and I digited in Terminal from the Administrator Account: chmod ug-s /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent But the answer is: NOT PERMITTED Why? Is it not... (6 Replies)
Discussion started by: Vera
6 Replies

3. Programming

Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App

With a little bit of work, was able to build a nice "Wuhan Coronavirus Status" app using MQTT and the IoT-OnOff app. More on this technique here: ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages The result turned out nice, I think. I like the look and... (10 Replies)
Discussion started by: Neo
10 Replies
Moose::Autobox::Code(3pm)				User Contributed Perl Documentation				 Moose::Autobox::Code(3pm)

NAME
Moose::Autobox::Code - the Code role SYNOPOSIS
use Moose::Autobox; my $adder = sub { $_[0] + $_[1] }; my $add_2 = $adder->curry(2); $add_2->(2); # returns 4 # create a recursive subroutine # using the Y combinator *factorial = sub { my $f = shift; sub { my $n = shift; return 1 if $n < 2; return $n * $f->($n - 1); } }->y; factorial(10) # returns 3628800 DESCRIPTION
This is a role to describe operations on the Code type. METHODS
curry (@values) rcurry (@values) conjoin (&sub) disjoin (&sub) compose (@subs) This will take a list of @subs and compose them all into a single subroutine where the output of one sub will be the input of another. y This implements the Y combinator. u This implements the U combinator. meta SEE ALSO
<http://en.wikipedia.org/wiki/Fixed_point_combinator> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/20469 <http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/20469> BUGS
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT. AUTHOR
Stevan Little <stevan@iinteractive.com> COPYRIGHT AND LICENSE
Copyright 2006-2008 by Infinity Interactive, Inc. <http://www.iinteractive.com> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-03-20 Moose::Autobox::Code(3pm)
All times are GMT -4. The time now is 05:37 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy