New "Ruby for Windows" Installer


#1

Hello,

this is the first release of an alternative “One Click Ruby Installer”
for windows.

There are three reasons for me to provide this installer:

  1. I’m not really satisfied with the current “One click installer”. I
    don’t share
    their opinion what is a required in a ruby base environment. I also
    don’t
    think that huge packages that are extremely easy to install as a gem
    should
    be added to the installer. Instead more important packages like MySQL
    and SQLite
    extensions or the ones which are difficult to integrate should be
    included.

  2. My Arachno Ruby IDE needs a patched interpreter for the debugger
    and this is the easiest way to handle it. In the past i was always
    a few steps behind the one click installer. Having a separate project
    means much more flexibility for me, even if i have to update a few
    components of the installer regularly.

  3. Competition is good.

The included packages are:
Ruby 1.8.5-p12
GDBM 1.8.3-1
OpenSSL 0.9.8e
PDCurses 2.8
IConv 1.9.2-1
readline 4.3-2
rake 0.7.2
log4r 1.0.5
zlib 1.2.3
ruby-zlib 0.6.0
Expat 2.0.0
XMLParser 0.6.8
RubyGems 0.9.2
SWin 2006-02-05
VRuby 2006-11-02
HTMLParser 19990912p2
RubyDBI 0.1.1
DBD/ODBC 0.997
SQLite 2 3.3.13
SQLite 3 2.8.17
Ruby-SQLite 2.2.3
Ruby-SQLite3 1.2.1
MySQL/Ruby 2.7.3
OpenGL 0.32g
FreeGLUT 2.4.0
Ruby GTK2 0.16.0-1
GTK2 2.10.7
IConv 1.9.2-1
SciTE 1.67
win32-event 0.4.0
win32-ipc 0.4.1
win32-changenotify 0.4.2
win32-clipboard 0.4.2
win32-dir 0.3.1
win32-etc 0.2.5
win32-event 0.4.0
win32-eventlog 0.4.3
win32-file-stat 1.2.4
win32-mmap 0.2.0
win32-mutex 0.2.2
win32-open3 0.2.5
win32-pipe 0.1.2
win32-process 0.5.2
win32-sapi 0.1.3
win32-semaphore 0.2.2
win32-service 0.5.2
win32-shortcut 0.2.0
win32-sound 0.4.0
win32-taskscheduler 0.0.3
win32-thread 0.0.1
windows-pr 0.6.4

Everything is compiled with MSVC 6.0, so it is compatible with the one
click installer and all the “msvcrt” binary gems.

As you see the most important difference is that i integrated MySQL,
SQLite and
Ruby/GTK. For GTK, i had to add one more patch to the “main” function in
the
ruby executable. Ruby will set the environment variable GTK_BASE and add
the gtk
binary directory in front of the path, so that GTK applications are now
completely standalone. No environment variable setup is required anymore
if you
want to distribute one of your own GTK application.

I want to add the Postgresql DBI extension and the FLTK GUI toolkit in
one of
the next versions. Also next on the todo list is a setup of an automatic
test
system, currently i only checked most of the extensions by manually
running a few examples.

Download is here:
http://www.ruby-ide.com/downloads/ruby/installer/SetupRubyWin32-1.8.5-msvcrt-1.exe

MD5 Checksum: F54DB55FA90D9A371DA52B7A30876206

I would really like to here your opinions.


#2

On Mar 5, 9:06 pm, Lothar S. removed_email_address@domain.invalid
wrote:

Hello,

this is the first release of an alternative “One Click Ruby Installer” for windows.

Count me as super-intrigued. I will definitely try this out the next
time I set up Ruby on a Windows box. Hopefully, now, it’ll be soon.

Chris


#3

Lothar S. wrote:

  1. My Arachno Ruby IDE needs a patched interpreter for the debugger
    and this is the easiest way to handle it. In the past i was always
    a few steps behind the one click installer. Having a separate project
    means much more flexibility for me, even if i have to update a few
    components of the installer regularly.

Can you briefly describe the effects of these patches?

Thanks!


#4

Why the GTK stuff and not wxRuby? I have been out of the loop for a
bit but I though wxRuby was going to be “the” toolkit?

Shouldn’t these be reversed version wise:

SQLite 2       3.3.13
SQLite 3       2.8.17

#5

Hello Joel,

JV> Lothar S. wrote:
JV> …

  1. My Arachno Ruby IDE needs a patched interpreter for the debugger
    and this is the easiest way to handle it. In the past i was always
    a few steps behind the one click installer. Having a separate project
    means much more flexibility for me, even if i have to update a few
    components of the installer regularly.

JV> Can you briefly describe the effects of these patches?

There are calls to a function pointer (which can be
installed from a debugging extension) at some points. At the moment
they are used whenever a thread is created/deleted/switched and a ruby
object is allocated or freed. It also possible that the debugging
extension
can store a pointer in the thread structure (which is only used
privately in eval.c) and one in the ruby source file name structure,
which is just a pointer before the malloced memory block in
(“rb_source_filename” in file gc.c).

And well theres also one bugfix i planed to report to the Ruby core list
for quite some time. In windows -1 and (-2 in MSVC 8) are special FILE
pointers in console applications that don’t have a console (ms hack) so
“rb_io_isatty(io)” has a bug and needs to be fixed.

static VALUE
rb_io_isatty(io)
VALUE io;
{
OpenFile fptr;
GetOpenFile(io, fptr);
if (fileno(fptr->f) == -1) return Qfalse; /
THIS MUST BE ADDED */
if (isatty(fileno(fptr->f)) == 0) {
return Qfalse;
}
return Qtrue;
}


#6

Hello Robert,

RH> Why the GTK stuff and not wxRuby? I have been out of the loop for a
RH> bit but I though wxRuby was going to be “the” toolkit?

I haven’t seen a real wxruby application now and the website still
says “It’s not quite suitable for production use yet” while Ruby GTK
is used a lot and stable.

Also WxRuby is a simple installable gem (only one so/dll file) while
GTK is much harder to install and to get all the DLL’s. Also with GTK
you can have some trouble with the environment variables and the XML
parser if you install it just as described (xmlparse.dll + xmltok.dll
needs to be in the directory of ruby.exe and NOT in the gtk/bin
directory). It’s not a problem, but for beginner it take a little time
and
why shouldn’t this be solved by the installer writer?

As i said my opinion is that easy installable gems should not belong
to core installer while everything that is a little bit more complicated
to setup (and used a lot) should.

RH> Shouldn’t these be reversed version wise:

RH> SQLite 2 3.3.13
RH> SQLite 3 2.8.17

Yes, i will fix that.


#7

On Mar 5, 10:56 pm, Lothar S. removed_email_address@domain.invalid
wrote:

GetOpenFile(io, fptr);
if (fileno(fptr->f) == -1) return Qfalse; /* THIS MUST BE ADDED */
if (isatty(fileno(fptr->f)) == 0) {
    return Qfalse;
    }
return Qtrue;

}

I wonder if using GetFileType() and checking for FILE_TYPE_CHAR would
be a better long term solution.

Regards,

Dan


#8

Hello Dave,

DB> Lothar S. wrote:

                     SQLite 2       3.3.13
                     SQLite 3       2.8.17
                  Ruby-SQLite        2.2.3
                 Ruby-SQLite3        1.2.1

DB> Would you consider adding the SQLite DBMS itself (for one or both of
the
DB> versions)? It’s not a large addition, and it would provide an
DB> out-of-the-box SQL database within the package.

They are both included. The extensions (.so files) are statically linked
against the two latest SQLite releases. Thats why you see the 4
entries in the list.

So the extensions are useable out of the box.


#9

Lothar S. wrote:

                     SQLite 2       3.3.13
                     SQLite 3       2.8.17
                  Ruby-SQLite        2.2.3
                 Ruby-SQLite3        1.2.1

Would you consider adding the SQLite DBMS itself (for one or both of the
versions)? It’s not a large addition, and it would provide an
out-of-the-box SQL database within the package.

Why’s DBMS-including SQLite gem prompted the idea.

Cheers,
Dave


#10

Hi Lothar,

I’ve missed seeing your posts on Ruby-Talk for the last 6 months or
so. Welcome back!

I’m just now setting up a new development system running Vista, and
I’ll give your new installer a try.

Best regards,

Wayne


Wayne V.
No Bugs Software
Ruby, Erlang, and C# Agile Contract Programming in Silicon Valley
5+ years Ruby experience


#11

Hi Lothar,

LS> SQLite 2 3.3.13
LS> SQLite 3 2.8.17
LS> Ruby-SQLite 2.2.3
LS> Ruby-SQLite3 1.2.1

DB> Would you consider adding the SQLite DBMS itself (for one or both of
the
DB> versions)? It’s not a large addition, and it would provide an
DB> out-of-the-box SQL database within the package.

LS> They are both included. The extensions (.so files) are statically
linked
LS> against the two latest SQLite releases. Thats why you see the 4
LS> entries in the list.
LS>
LS> So the extensions are useable out of the box.

That’s a pretty quick implementation of my suggestion, Lothar; are you
utilising some kind of time-flow-altering technology there?

Cheers,
Dave


#12

On Mar 6, 4:06 am, Lothar S. removed_email_address@domain.invalid
wrote:

Hello,

this is the first release of an alternative “One Click RubyInstaller” forwindows.
[snip]

I would really like to here your opinions.

Hey,

This looks like an interesting development, but alas, at the moment,
it seems it doesn’t work…

C:\ruby>gem install xmpp4r-simple
ruby: No such file or directory – y:/work_generated/windows_ix86/
ruby_installer/huge/install/bin/gem (LoadError)

ok, fine…
C:\ruby>ruby
(dialog box)

ruby.exe - Unable To Locate Component

This application has failed to start because SSLEAY32.dll was not
found. Re-installing the application may fix this problem.

OK

Have I missed something?

Thanks

David


#13

Hello Lothar,
I am new to Ruby and I am interested in your installer (now I am using
the one click installer).

I see the scite version is 1.67, is it correct? The last version is
1.72, could you include it? Maybe we can simply copy the files in the
right dir.

And also I see the new ruby vers. 1.86. When do you think you can
include it?

ps: sorry for my bad english.

Godz.


#14

Please ignore my report of the hang when I ran ruby from the command
line. That’s the expected behaviour, as it’s reading from stdin!

I renamed the c:/ruby directory that was created by the Ruby for
Windows installer, and installed the One Click Installer version
of Ruby. This cleared up the problems I was seeing, except that
“Update remote gems list” still gets the same error:

ERROR: While executing gem … (NoMethodError)
undefined method ‘[]=’ for …

So that seems to be more of an ArachnoRuby issue rather than
a Ruby for Windows installer issue.

Thanks,

Wayne


#15

Hi Lothar,

On a clean Vista system, I installed ArachnoRuby 0.6.9 and your Ruby
for Windows installer. I’m seeing similar problems to what David Kemp
reported:

In the ArachnoRuby R. Gems Browser I click the “Update remote gems
list” icon, and I get the following error.

Retrieve remote gem list
ERROR: While executing gem … (NoMethodError)
undefined method ‘[]=’ for #Gem::ConfigFile:0x3a94734

Investigating this, I tried just executing “gem” from a command
prompt, and I get

C:>gem
ruby: No such file or directory –
y:/work_generated/windows_ix86/ruby_installer
/huge/install/bin/gem (LoadError)

I notice that the file c:\ruby\bin\gem.cmd contains:

@“ruby”
“y:/work_generated/windows_ix86/ruby_installer/huge/install/bin/gem”
%1 %2 %3 %4 %5 %6 %7 %8 %9

which is odd, as this system doesn’t have a y: drive

If I just do
C:>ruby

it seems to hang forever. If I enter control-C I get:

C:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb: Interrupt

Thanks,

Wayne


#16

Hi,

At Tue, 6 Mar 2007 14:56:36 +0900,
Lothar S. wrote in [ruby-talk:242068]

And well theres also one bugfix i planed to report to the Ruby core list
for quite some time. In windows -1 and (-2 in MSVC 8) are special FILE
pointers in console applications that don’t have a console (ms hack) so
“rb_io_isatty(io)” has a bug and needs to be fixed.

It should be replaced in init_stdhandle(). Doesn’t it work?