I am a Ruby newbie... I am using the following version on Mac OS X
Tiger:
Raven:/Developer/DevResources/Ruby/Draw untz$ ruby --version
ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0]
Raven:/Developer/DevResources/Ruby/Draw untz$ which ruby
/usr/bin/ruby
I am experiencing several problems....
1. My irb doesn't support tab completion (the same version of Ruby
on WinXP does support tab completion)...
For example:
Raven:/Developer/DevResources/Ruby/Draw untz$ irb
irb(main):001:0> a = "Hello Ruby Group"
=> "Hello Ruby Group"
irb(main):002:0> a.rev
When I click on the tab key right after rev, it doesn't complete it by
printing out the remaining characters belonging to the word 'reverse'.
Is there a way to check and see if this functionality is turned on
for irb?
2. How do I use similar functionality in irb to clear the buffer, as
one would
do in Unix using "clear" and WinXP, using "cls"?
3. I copied a simple Draw coding sample and when I tried to run it,
I got an error...
The code for Draw.rb:
Raven:/Developer/DevResources/Ruby/Draw untz$ cat Draw.rb
#!/usr/bin/ruby -w
require 'tk'
class Draw
def initialize(parent)
@canvas = TkCanvas.new(parent)
@canvas.pack
@start_x = @start_y = 0
@canvas.bind("1", lambda {|e| do_press(e.x, e.y)})
@canvas.bind("B1-Motion", lambda {|x, y| do_motion
(x,y)}, "%x %y")
@canvas.bind("Button-Release-1", lambda {|x, y|
do_release(x,y)}, "%x %y")
end
def do_press(x,y)
@start_x = x
@start_y = y
@current_line = TkcLine.new(@canvas, x, y, x,y)
end
def do_motion(x,y)
if @current_line
@current_line.coords @start_x, @start_y, x, y
end
end
def do_release(x,y)
if @current_line
@current_line.coords @start_x, @start_y, x, y
@current_line.fill 'black'
@current_line = nil
end
end
end
root = TkRoot.new { title 'Canvas' }
Draw.new(root)
Tk.mainloop
The error message:
Raven:/Developer/DevResources/Ruby/Draw untz$ ./Draw.rb
/usr/lib/ruby/1.8/tk.rb:1496:in `_invoke_without_enc': bad event type
or keysym "Release" (RuntimeError)
from /usr/lib/ruby/1.8/tk.rb:1496:in `_ip_invoke_core'
from /usr/lib/ruby/1.8/tk.rb:1532:in `_tk_call_core'
from /usr/lib/ruby/1.8/tk.rb:1560:in `tk_call_without_enc'
from /usr/lib/ruby/1.8/tk.rb:831:in `_bind_core'
from /usr/lib/ruby/1.8/tk.rb:839:in `_bind'
from /usr/lib/ruby/1.8/tk.rb:921:in `bind'
from /usr/lib/ruby/1.8/tk.rb:2139:in `bind'
from ./Draw.rb:13:in `initialize'
from ./Draw.rb:39:in `new'
from ./Draw.rb:39
4. What is the *BEST* free Ruby IDE in the world?
Thank you for your time and I hope who ever can help me can try to
duplicate this problem using
OS X Tiger and the same version of Ruby as me.
Many, many thanks!
-Unnsse
> :-) Hello again,
Hello.
> I am a Ruby newbie... I am using the following version on Mac OS X
> Tiger:
>
> Raven:/Developer/DevResources/Ruby/Draw untz$ ruby --version
> ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0]
> Raven:/Developer/DevResources/Ruby/Draw untz$ which ruby
> /usr/bin/ruby
This is Apple's default install, it looks like. There are a few
issues with it, so I prefer to build my own version of Ruby.
> I am experiencing several problems....
>
> 1. My irb doesn't support tab completion (the same version of Ruby
> on WinXP does support tab completion)...
I believe this is one of the issues with Apple's install. If you
build the readline library, then build your own copy of Ruby, you
should be able to get this going.
> 2. How do I use similar functionality in irb to clear the buffer,
> as one would
> do in Unix using "clear" and WinXP, using "cls"?
Try pushing Control-L.
> 3. I copied a simple Draw coding sample and when I tried to run it,
> I got an error...
>
> The code for Draw.rb:
[snip code]
I assume this is a TK issue, but I'll let someone who knows more than
me address it...
> 4. What is the *BEST* free Ruby IDE in the world?
I'm a text editor fan, not an IDE guy, so I'll let someone else field
this question too...
James Edward Gray II
I would I "un-install" the Mac OS X Ruby and install the new one
(ruby 1.8.3)?
Could I use the RubyGem utility? Or do I login as root and just
download the tar.gz file and unzip
it and then do a configure and then make install? Would this
overwrite the ruby 1.8.2 that I have?
The same questions apply to tcl/tk...
Regards,
Unnsse
The Control L doesn't doesn't clear the buffer....
All it does is place a ^L on the corresponding line:
Raven:~ untz$ irb
irb(main):001:0> ^L
irb(main):002:0*
Does anyone know how to clear the irb's buffer?
Many, many, thanks!
-Unnsse
On Oct 13, 2005, at 6:35 AM, James Edward Gray II wrote:
>
>> 2. How do I use similar functionality in irb to clear the buffer,
>> as one would
>> do in Unix using "clear" and WinXP, using "cls"?
>>
>
> Try pushing Control-L.
>
> James Edward Gray II
> Thanks James,
>
> I would I "un-install" the Mac OS X Ruby and install the new one
> (ruby 1.8.3)?
No, it's best not to muck with Apple's install. Better to install
your own in /usr/local/, and then adjust your PATH to check there
first. This is the default install location when you build Ruby.
> Or do I login as root and just download the tar.gz file and unzip
> it and then do a configure and then make install?
That's the ticket.
> Would this overwrite the ruby 1.8.2 that I have?
No.
James Edward Gray II
> Hello James,
>
> The Control L doesn't doesn't clear the buffer....
I tested it and it does work for me. This might be another readline
issue...
James Edward Gray II
$ sudo curl -O rufy.com/fix-ruby-tiger.sh; sh fix-ruby-tiger.sh
Hope that helps-
-Ezra
-Ezra Zygmuntowicz
Yakima Herald-Republic
WebMaster
http://yakimaherald.com
509-577-7732
ez...@yakima-herald.com
I already have RubyGems installed....
Should I still do this?
Regards,
Unnsse
HTH-
-Ezra
Your suggestion not only did not help me with fixing the IRB tab
completion (its still broken), but it broke a bunch of other
things.... :'(
When I try to run rake:
Raven:~ untz$ rake
/usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:74:in
`load_specification': undefined method `cert_chain=' for
#<Gem::Specification:0x22ae2c> (NoMethodError)
from (eval):1:in `initialize'
from (eval):1:in `new'
from (eval):1:in `load_specification'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
45:in `eval'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
74:in `load_specification'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
45:in `from_installed_gems'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
44:in `each'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
44:in `from_installed_gems'
from /usr/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:
63:in `from_installed_gems'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:79:in
`source_index'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:135:in `activate'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:37:in
`require_gem_with_options'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:31:in
`require_gem'
from /usr/bin/rake:17
Raven:~ untz$
When I try to get rake or rails using RubyGems:
Raven:~ untz$ gem install --remote rake
Attempting remote installation of 'rake'
ERROR: While executing gem ... (NoMethodError)
undefined method `cert_chain=' for #<Gem::Specification:0x712524>
Raven:~ untz$ gem install --remote rails
Attempting remote installation of 'rails'
ERROR: While executing gem ... (NoMethodError)
undefined method `cert_chain=' for #<Gem::Specification:0x712524>
And, when I try to see what ruby is installed + the version:
Raven:~ untz$ ruby -v
ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0]
Raven:~ untz$ which ruby
/usr/bin/ruby
Thanks for your help, but I wish I never tried it....
Can anyone help me at all? :(
Many, many, thanks!
-Unnsse
Please try one more thing before you give up. Set up a sylink from /
usr/bin/ruby to /usr/local/bin/ruby and then put /use/local/bin and /
usr/local/sbin in your $PATH in front of /usr/bin and /usr/sbin.
Here is the blog entry where the shell script I had you run
initiated: http://tech.rufy.com/entry/46 . I know many people who
went this route to fix Tiger's ruby setup. If this does not work for
you then you can always install ruby from source. If that is what you
need to do then you can rename Tiger's ruby binary to ruby.tiger or
something and install from source. I am pasting installation
instructions for the whole ruby/rails/lighttpd/fcgi/gems/mysql
bindings stack.
I am really sorry that my instructions seemed to have messed
things up. I feel horrible. Please try these other suggestions and
let me know when you get it fixed. If you encounter more problems I
feel obligated and I would gladly install everything for you if you
create a temporary ssh account for me that you can erase when the
install is done.
I hope it works for you:
-Ezra
Here are instructions for a source install:
These instructions work on OSX, most linux distros and FreeBSD
You can skip ruby if you already have a good copy. But if you only
have the
stock ruby that comes with OSX I would compile it from source and
rename the
stock OSX ruby and irb to ruby.bak and irb.bak so you don't end up using
them on accident.
__________________________________________________ ______________
Get Ruby1.8.2
curl -O http://rubyforge.org/frs/download.php/2338/ruby-1.8.2.tar.gz
tar xvzf ruby-*
cd ruby-1.8.2
/configure
make
make test
sudo make install
__________________________________________________ ______________
Get Ruby gems
curl -O http://rubyforge.org/frs/download.php/3700/rubygems-0.8.10.tgz
tar xvzf rubygems*
cd rubygems*
sudo ruby setup.rb
__________________________________________________ ______________
Get Rails and a few other gems
sudo gem install rails RedCloth search_generator
salted_login_generator production_log_analyzer
answer yes to all dependencies
__________________________________________________ ______________
Get mysql-ruby C bindings (the pure ruby ones suck)
This command works great on osx as well using the mysql 4.1.x
installer from mysql.com
or the serverlogistics.com mysql as well.
curl -O http://www.tmtm.org/en/mysql/ruby/mysql-ruby-2.7.tar.gz
tar zxvf mysql-ruby-*
cd mysql-ruby-*
ruby extconf.rb --with-mysql-config
make
sudo make install
__________________________________________________ ______________
download fastcgi developers kit
curl -O http://fastcgi.com/dist/fcgi.tar.gz
tar xvzf fcgi-2.4.0.tar.gz
cd fcgi*
/configure
make
sudo make install
__________________________________________________ ______________
Get the new non memory leaking ruby-fastcgi bindings
curl -O http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
tar xzvf ruby-fcgi*
ruby install.rb config --without-ext
ruby install.rb setup
sudo ruby install.rb install
__________________________________________________ ______________
We need the correct pcre .so’s for lighttpd to work correctly
curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
pcre-5.0.tar.gz
tar xzvf pcre-5.0.tar.gz
cd pcre-*
/configure
make
sudo make install
__________________________________________________ ______________
Get lighttpd
You can install lighttpd 1.4.4 if you want. I'm still using 1.3.16 until
the 1.4 branch settles down.
curl -O http://www.lighttpd.net/download/lighttpd-1.3.16.tar.gz
tar xzvf lighttpd-1.3.13.tar.gz
cd lighttpd-*
/configure
make
sudo make install
__________________________________________________ ______________
Compile php as a fast-cgi binary The main thing here is the following
configure options. You can add whatever else you like to your php
binary but these are needed for fast-cgi support.
$ ./configure \
--enable-fastcgi \
--enable-discard-path \
--enable-force-cgi-redirect \
__________________________________________________ ______________
Lighttpd Launcher Script
Here is a link for a sweet enhancement. Put this script in your
RAILS_ROOT/script folder and put the lighttpd.conf file in RAILS_ROOT/
config. Now you can launch your rails app by cd’ing into your
RAILS_ROOT for your app and typing:
$ruby script/lighty -p 7500 -e development (or whatever port & env
you want to use)
Now you can hit http://localhost:7500/ and you will get your app
running on lighttpd no muss no fuss. Very sweet for development. Here
is the link: http://www.bigbold.com/snippets/posts/show/303 . Name
the first ruby script lighty and name the config file lighttpd.conf.
Now every time you start your app this way is creates a new
lighttpd.conf in /tmp and starts lighttpd up with that file. This way
you can give it command line options as to what port to bind to and
others. I’m using this for development and it is sweet!
Why can't I just re-install Ruby so its overwrites the one (which is
pre-installed with OS X Tiger) which is located in /usr/bin/ruby?
I don't want to put the new one in my /usr/local/bin/ directory....
Can you please send me step by step instructions that are denoted in
numeric sequence?
For example:
1. Grab ruby bundle from URL.
2. unzip and run the following commands..
I am too scared to follow your advice because your advice really
screwed a lot of things up...
I am disappointed that not that many other people on this mailing
list use OS X Tiger.... Only 2 - 3 people have responded to my inquiry.
Martin Fowler wrote how RubyPeople (http://www.martinfowler.com/bliki/
RubyPeople.html) are a great community, and from the e-mails, that
I've been getting from this newsgroup, it seems like the majority of
the community are hard core Linux users.....
Kindest regards,
Unnsse
On Oct 13, 2005, at 3:35 PM, Ezra Zygmuntowicz wrote:
>>>> Unnsse-
>>>>
>
> Please try one more thing before you give up. Set up a sylink from /
> usr/bin/ruby to /usr/local/bin/ruby and then put /use/local/bin
> and /usr/local/sbin in your $PATH in front of /usr/bin and /usr/sbin.
> ./configure
> ./configure
> make
> sudo make install
> __________________________________________________ ______________
>
> Get the new non memory leaking ruby-fastcgi bindings
>
> curl -O http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
> tar xzvf ruby-fcgi*
> ruby install.rb config --without-ext
> ruby install.rb setup
> sudo ruby install.rb install
> __________________________________________________ ______________
>
> We need the correct pcre .so’s for lighttpd to work correctly
>
> curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
> pcre-5.0.tar.gz
> tar xzvf pcre-5.0.tar.gz
> cd pcre-*
> ./configure
> make
> sudo make install
> __________________________________________________ ______________
>
> Get lighttpd
> You can install lighttpd 1.4.4 if you want. I'm still using 1.3.16
> until
> the 1.4 branch settles down.
> curl -O http://www.lighttpd.net/download/lighttpd-1.3.16.tar.gz
> tar xzvf lighttpd-1.3.13.tar.gz
> cd lighttpd-*
> ./configure
> make
> sudo make install
> __________________________________________________ ______________
>
> Compile php as a fast-cgi binary The main thing here is the
> following configure options. You can add whatever else you like to
> your php binary but these are needed for fast-cgi support.
>
> $ ./configure \
> --enable-fastcgi \
> --enable-discard-path \
> --enable-force-cgi-redirect \
> __________________________________________________ ______________
>
> Lighttpd Launcher Script
>
> Here is a link for a sweet enhancement. Put this script in your
> RAILS_ROOT/script folder and put the lighttpd.conf file in
> RAILS_ROOT/config. Now you can launch your rails app by cd’ing into
1. Get Ruby1.8.2
curl -O http://rubyforge.org/frs/download.php/2338/ruby-1.8.2.tar.gz
2 untar it and cd into the source directory
tar xvzf ruby-*
cd ruby-1.8.2
3. configure the makefiles. and tell it to install in /usr/bin
/configure --prefix=/usr
4. compile the source
make
5. test the compiled source for errors
make test
6. install the newly built binaries if no errors in the tests
sudo make install
Now lets install rubygems from source:
1. Get rubygems
curl -O http://rubyforge.org/frs/download.php/3700/rubygems-0.8.10.tgz
2. untar and cd into source directory
tar xvzf rubygems*
cd rubygems*
3. set up and install rubygems
sudo ruby setup.rb all --prefix=/usr
Now ruby and ruby gems should be installed. try to install a gem and
let me know when it worked.
Also I think you will find that a bunch of ruby folk use OSX. But the
yearly rubyconf is starting tomorrow so many of them are not lurking
on the list today. Also have you tried the rails list? There are a
ton of OSX users on that list. Also I think that most people on ruby-
talk have answered the rails questions so many times that you will
have much better response for rails questions on the rails list:
http://lists.rubyonrails.org/mailman/listinfo.
Let me know when this works for you and if you need any more help.
-Ezra
On Oct 13, 2005, at 3:58 PM, Unnsse Khan wrote:
> Ezra,
>
> Why can't I just re-install Ruby so its overwrites the one (which
> is pre-installed with OS X Tiger) which is located in /usr/bin/ruby?
>
> I don't want to put the new one in my /usr/local/bin/ directory....
>
> Can you please send me step by step instructions that are denoted
> in numeric sequence?
>
> For example:
>
> 1. Grab ruby bundle from URL.
>
> 2. unzip and run the following commands..
>
> I am too scared to follow your advice because your advice really
> screwed a lot of things up...
>
> I am disappointed that not that many other people on this mailing
> list use OS X Tiger.... Only 2 - 3 people have responded to my
> inquiry.
>
> Martin Fowler wrote how RubyPeople (http://www.martinfowler.com/
> bliki/RubyPeople.html) are a great community, and from the e-mails,
> that I've been getting from this newsgroup, it seems like the
> majority of the community are hard core Linux users.....
>
> Kindest regards,
>
> Unnsse
>
> On Oct 13, 2005, at 3:35 PM, Ezra Zygmuntowicz wrote:
>
>
>>>>> Unnsse-
>>>>>
>>>>>
>>
>> Please try one more thing before you give up. Set up a sylink
>> from /usr/bin/ruby to /usr/local/bin/ruby and then put /use/local/
I followed your instructions, word for word...
2 things:
1. The IRB tab completion still isn't working (maybe its not meant to
be on OS X)
2. When I tried invoking gem, this is what happened:
Last login: Thu Oct 13 16:33:54 on ttyp1
Welcome to Darwin!
Raven:~ untz$ gem
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require__': No such file to load -- syck (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require'
from /usr/lib/ruby/1.8/yaml/syck.rb:5
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require__'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require'
from /usr/lib/ruby/1.8/yaml.rb:9
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require__'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/package.rb:6
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require__'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/builder.rb:1
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require__'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:
21:in `require'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:61:in
`manage_gems'
from /usr/bin/gem:4
Raven:~ untz$
The IRB tab completion was a nice feature that I am missing out on,
but what's sad is that a crucial tool such as RubyGems is broken...
Thanks for your advice... Too bad, that I have this bad luck. I
really can't believe that no one else knows the solution to this
problem... Well, I guess I'll continue Java development, instead of
learning this language which supposedly has a "great community"...
Many, many thanks!
-Unnsse
On Oct 13, 2005, at 4:17 PM, Ezra Zygmuntowicz wrote:
> OK here is a numbered list of steps to reinstall ruby from source
> over your old ruby install at /usr/bin/ruby.
>
> 1. Get Ruby1.8.2
> curl -O http://rubyforge.org/frs/download.php/2338/ruby-1.8.2.tar.gz
>
> 2 untar it and cd into the source directory
> tar xvzf ruby-*
> cd ruby-1.8.2
>
> 3. configure the makefiles. and tell it to install in /usr/bin
> ./configure --prefix=/usr
>
> 4. compile the source
> make
>
> 5. test the compiled source for errors
> make test
>
> 6. install the newly built binaries if no errors in the tests
> sudo make install
>
> Now lets install rubygems from source:
>
> 1. Get rubygems
> curl -O http://rubyforge.org/frs/download.php/3700/rubygems-0.8.10.tgz
>
> 2. untar and cd into source directory
> tar xvzf rubygems*
> cd rubygems*
>
> 3. set up and install rubygems
> sudo ruby setup.rb all --prefix=/usr
>
> Now ruby and ruby gems should be installed. try to install a gem
> and let me know when it worked.
>
> Also I think you will find that a bunch of ruby folk use OSX. But
> the yearly rubyconf is starting tomorrow so many of them are not
> lurking on the list today. Also have you tried the rails list?
> There are a ton of OSX users on that list. Also I think that most
> people on ruby-talk have answered the rails questions so many times
>>>> source_index.rb:63:in `from_installed_gems'
Haven't followed this thread, but Apple has a broken Ruby.
Get the Ruby source, compile it yourself, install it into /usr/local,
and be happy with Ruby on OS X.
tar zxf ruby-1.8.2.tar.gz
cd ruby-1.8.2
/configure --prefix=/usr/local
make
sudo make install
And adjust your path so that /usr/local/bin is before /usr/bin.
I followed Ezra's instructions and grabbed the source, compiled it,
and placed
it in /usr/, not "/usr/local/" and therefore, I don't see what the
difference is?
The only difference is the location of directories....
These that I followed are (from Ezra) are:
1. Get Ruby1.8.2
curl -O http://rubyforge.org/frs/download.php/2338/ruby-1.8.2.tar.gz
2 untar it and cd into the source directory
tar xvzf ruby-*
cd ruby-1.8.2
3. configure the makefiles. and tell it to install in /usr/bin
/configure --prefix=/usr
4. compile the source
make
5. test the compiled source for errors
make test
6. install the newly built binaries if no errors in the tests
sudo make install
Ezra's instructions didn't fix my "tab completion" problem on IRB,
and did
break my RubyGems install...... I really thought that one could fix
their Ruby distribution
by using RubyGems... RubyGems are very important so please someone,
could anyone help me?
Kindest regards,
Unnsse
On Oct 13, 2005, at 7:03 PM, Joe Van Dyk wrote:
>
> Haven't followed this thread, but Apple has a broken Ruby.
>
> Get the Ruby source, compile it yourself, install it into /usr/local,
> and be happy with Ruby on OS X.
>
> tar zxf ruby-1.8.2.tar.gz
> cd ruby-1.8.2
> ./configure --prefix=/usr/local