[ANN] New "Ruby for Windows" Installer

L

Lothar Scholz

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.
 
C

Chris Shea

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
 
J

Joel VanderWerf

Lothar Scholz wrote:
...
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.

Can you briefly describe the effects of these patches?

Thanks!
 
L

Lothar Scholz

Hello Joel,

JV> Lothar Scholz wrote:
JV> ...
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;
}
 
D

Daniel Berger

On Mar 5, 10:56 pm, Lothar Scholz <[email protected]>
wrote:

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;

}

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

Regards,

Dan
 
L

Lothar Scholz

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.
 
D

Dave Burt

Lothar said:
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
 
L

Lothar Scholz

Hello Dave,


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.
 
D

Dave Burt

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
 
W

Wayne Vucenic

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
 
D

David Kemp

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
 
N

Nicola Sottani

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.
 
W

Wayne Vucenic

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 Ruby 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
 
W

Wayne Vucenic

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
 
N

Nobuyoshi Nakada

Hi,

At Tue, 6 Mar 2007 14:56:36 +0900,
Lothar Scholz 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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,699
Latest member
AnneRosen

Latest Threads

Top