Ruby 1.8.7 + Tk8.5 with Windows-RubyInstaller

A

Axel

Hi,

below you will find what I wrote down about how I got the "new"
Windows-RubyInstaller with Ruby 1.8.7 + TK8.5 working.

Please feel free to post any comments, corrections, suggestions, ....

A German version follows at the bottom.

Hope it helps somebody,
Axel

------------------------------------------------------------

= How I installed and compiled the new Windows-RubyInstaller with
Ruby 1.8.7 and TK8.5

== Requirements

* Important: Use only paths without spaces/blanks
* Internet connection (fast one preferred)
* 7-zip installed [7zi]
* Working Ruby installation, for example in path "c:\Ruby";
requirements: Ruby 1.8.5 at least (mswin32 or mingw32
implementation
will work) -- Not cygwin! [rdk]
* Rake 0.7.3 or greater [rdk]; I used 0.8.7.
* Zlib extension and DLL (zlib1.dll) available in the PATH (could be
in system32 or your Ruby bin directory) [rdk]
* I used Windows-XP (home)
* I had to switch of my anti-virus protection, while rake run

== Install TK8.5

* Install TK8.5 from ActiveState.com
http://www.activestate.com/activetcl/
(Registration was not necessary.)
Install to, e.g, "c:/TCL"

== Install RubyInstaller-Sourcen + DevelopperKit + TK8.5

=== Download

* http://wiki.github.com/oneclick/rubyinstaller
Downloads
download Development Kit, e.g.:
z.B. devkit-3.4.5r3-20091110.7z

* http://github.com/oneclick/rubyinstaller
on the top, click "download" save it anywhere, then
extract the package to, e.g. c:\RubyInstaller, in a way, that
directory structure of c:\RubyInstaller looks approximately like
this:
C:\RubyInstaller\
|-- config
|-- rake
|-- recipes
|-- resources
`-- <several files>

* Edit "C:\RubyInstaller\config\ruby_installer.rb"
in order to get Ruby 1.8.7:

Line: ~56
old:
:version => "1.8.6-p383",
new:
:version => "1.8.7-p174",

Line: ~69
old:
'ruby-1.8.6-p383.tar.bz2'
new:
'ruby-1.8.7-p174.tar.bz2'

* Extract:
devkit-3.4.5r3-20091110.7z
to c:\delete_later

* Copy from c:\delete_later:
"DevKit" and "bin"
to the directory of the existing ("old") Ruby-installation, e.g.
C:\Ruby . You will be asked "...really?...". Agree to all. When
finished, the structure of the "old" Ruby-Directory should look
like
this:

|-- bin
|-- devkit
|-- include
|-- lib
|-- share
`-- ...

* In file .../devkit/msys/1.0.11/etc/fstab replace "c:\Ruby" by the
path of the "old" working Ruby-installation
(In this example, it's c:\Ruby, too.)

(From:
http://wiki.github.com/oneclick/rubyinstaller/development-kit)

=== Compile Ruby 1.8.7

([Ros], [Pac])

* I had to switch of anti-virus protection, otherwise I got strange
errors from rake.

* Open a new shell and use always _this_ one, because of the
environment variables, which are going to be set. (If you start a
new shell, you must set the environment variables again.)

* Set environment variables as follows (they must fit exactly!)
(The new Ruby will be in C:\RubyInstaller\sandbox\ruby18_mingw\bin
\
TCL is in c:\tcl)

set INCLUDE=c:\tcl\include;%INCLUDE%
set LIB=C:\RubyInstaller\sandbox\ruby18_mingw\lib;c:\tcl\lib;%LIB
%
set LIBPATH=C:\RubyInstaller\sandbox\ruby18_mingw\lib;c:\tcl\bin;c:
\tcl\lib;%LIBPATH%
set PATH=C:\RubyInstaller\sandbox\ruby18_mingw\bin;c:\tcl\bin;%PATH
%
set RUBYPATH=C:\RubyInstaller\sandbox\ruby18_mingw

If you use a proxy for internet connection:
set HTTP_PROXY = http://<proxy>:<port>
z.B.: set HTTP_PROXY = http://proxy.xyz.com:83

Change the working directory:
c:
cd c:\RubyInstaller

rake # wait about 30 minutes :)

If rake aborts because of an error:

The following helped on my site:

* Disable Virus protection
* Restart computer, open shell only, no other apps
* reinstall rake
* One file, downloaded by rake, was corrupt; I had to delete it
manually and restart rake

If everything finished without errors, the new Ruby, including
extensions, should work (but not TK!). The new ruby.exe is in:

C:\RubyInstaller\sandbox\ruby18_mingw\bin\

To check it:
<path_to_the_new_ruby.exe> -v

=== Compile TK

Set environment variables

BEGIN_LONG_LINE
set PATH=c:\rubyinstaller\sandbox\mingw\bin;c:\rubyinstaller\sandbox
\msys\bin;c:\rubyinstaller\sandbox\msys\usr\local\bin;%PATH%
END_LONG_LINE

From [rif]:
In the shell, change working directory:
cd C:\RubyInstaller\sandbox\ruby_1_8\ext\tk

Then:
ruby extconf.rb --with-tcl-dir=C:/Tcl --with-tk-dir=C:/Tcl
make install
cd tkutil
ruby extconf.rb
make install

Now, on my site Ruby 1.8.7 + TK8.5 was working.

For checking, you can write and run the following script:

require 'tk'
p Tk::TK_PATCHLEVEL

this shall return "...8.5. ...".

If not: Did you run the script with the _new_ Ruby?

== Rake

The rake tasks available:
rake check # Run tests for the interpreter in the sandbox.
rake clean # Remove any temporary products.
rake clobber # Remove any generated file.
rake compile # Compile the interpreter.
rake configure # Run the configure process for the interpreter.
rake download # Download all components.
rake extract # Extract all downloaded components.
rake install # Install the interpreter in the sandbox.
rake prepare # Prepare the freshly extracted components.

clean will remove the sandbox and clobber will remove all the
downloaded files.

The step sequence is:

download, extract, prepare, configure, compile, install, check

you will find the installed ruby in sandbox/ruby_mingw

You need to install before check, so the check process use the
sandbox
interpreter instead of the one you're using to build it.

== Miscellaneous

* Working/not working gems:
http://wiki.github.com/oneclick/rubyinstaller/gem-list

* Forum RubyInstaller:
http://groups.google.com/group/rubyinstaller/topics

* Replacement for Windows-Shell:
http://sourceforge.net/projects/console/

* Kero's Tk tutorial:
http://members.chello.nl/k.vangelder/ruby/learntk/

== References:

* [Ros] Mark Roseman: "TkDocs",
http://www.tkdocs.com/tutorial/install.html
* [ryi] Luis Lavena et al.: "rubyinstaller":
http://wiki.github.com/oneclick/rubyinstaller
* [7zi] http://www.7-zip.org/
* [Pac] Roger Pack, 2009-05-27, in "Programming gone awry"
http://programming-gone-awry.blogspot.com/2009/05/how-to-setup-comple...
* [rdk] Readme des DevelopmentKits
* [rif] RubyInstaller Forum: http://groups.google.com/group/rubyinstaller,
2009-12-03: "TCL/TK 8.5 & Ruby 1.8.x with RubyInstaller?

------------------------------------------------------------

German version:

= Installation/Kompilieren von neuem Windows-RubyInstaller mit Ruby
1.8.7(!) + TK8.5

== Voraussetzungen

* Wichtig: Nur Pfade ohne Leerzeichen verwenden!
* (schnelle) Internetverbindung
* 7-zip installiert [7zi]
* Lauffähige Ruby-Installation, z.B. in c:\Ruby; Anforderungen: Ruby
1.8.5 at least (mswin32 or mingw32 implementation will work) -- Not
cygwin! [rdk]
* Rake 0.7.3 or greater [rdk]; I used 0.8.7.
* Zlib extension and DLL (zlib1.dll) available in the PATH (could be
in system32 or your Ruby bin directory) [rdk]
* Ich verwende Windows-XP
* Während rake lief, mußte ich den Virenscanner ausschalten.

== TK8.5 installieren

* TK8.5 von ActiveState.com installieren
http://www.activestate.com/activetcl/
(Registrierung _nicht_ nötig)
Installation nach z.B. c:/TCL

== RubyInstaller-Sourcen + DevelopperKit installieren

=== Download

* http://wiki.github.com/oneclick/rubyinstaller
Downloads
Development Kit downloaden:
z.B. devkit-3.4.5r3-20091110.7z

* http://github.com/oneclick/rubyinstaller
Oben Button "download" anklicken + irgendwo
speichern und dann nach z.B. c:\RubyInstaller entpacken, und zwar
so, daß der Inhalt von c:\RubyInstaller etwa so aussieht:
C:\RubyInstaller\
|-- config
|-- rake
|-- recipes
|-- resources
`-- <diverse Dateien>

* Editieren "C:\RubyInstaller\config\ruby_installer.rb"
(um Ruby 1.8.7 zu bekommen):

Zeile: ~56
alt:
:version => "1.8.6-p383",
neu:
:version => "1.8.7-p174",

Zeile: ~69
alt:
'ruby-1.8.6-p383.tar.bz2'
neu:
'ruby-1.8.7-p174.tar.bz2'

* Entpacken:
devkit-3.4.5r3-20091110.7z
nach c:\spaeter_loeschen

* Aus c:\spaeter_loeschen kopieren:
"DevKit" und "bin"
in das Verzeichnis der existierende Ruby-Installation, z.B. C:\Ruby
kopieren. Beim Kopieren von "bin" wird gefragt
"...wirklich?"; das mit "Ja, alle" bestätigen.
Anschließend sollte das Rubyverzeichnis so aussehen:

|-- bin
|-- devkit
|-- include
|-- lib
|-- share
`-- ...

* In der Datei .../devkit/msys/1.0.11/etc/fstab "c:\Ruby" durch
den Pfad zur alten, lauffähigen Ruby-Installation ersetzen.
(Ist hier auch c:\Ruby.)

(Quelle:
http://wiki.github.com/oneclick/rubyinstaller/development-kit)

=== Ruby 1.8.7 kompilieren

([Ros], [Pac])

* Ich mußte den Virenscanner abschalten, sonst brachte rake
"mysteriöse"
Fehlermeldungen.

* Shell öffnen und immer in dieser arbeiten, wegen den zu setzenden
Systemvariablen! (Wenn Shell neu gestartet wird, müssen die
Systemvariablen erneut gesetzt werden.)

* Systemvariablen setzen (müssen genau stimmen!):
(Das neue Ruby wird in C:\RubyInstaller\sandbox\ruby18_mingw\bin\
sein, TCL sei in c:\tcl)

set INCLUDE=c:\tcl\include;%INCLUDE%
set LIB=C:\RubyInstaller\sandbox\ruby18_mingw\lib;c:\tcl\lib;%LIB%
set LIBPATH=C:\RubyInstaller\sandbox\ruby18_mingw\lib;c:\tcl\bin;c:
\tcl\lib;%LIBPATH%
set PATH=C:\RubyInstaller\sandbox\ruby18_mingw\bin;c:\tcl\bin;%PATH
%
set RUBYPATH=C:\RubyInstaller\sandbox\ruby18_mingw

Falls Internet über Proxy:
set HTTP_PROXY = http://<proxy>:<port>
z.B.: set HTTP_PROXY = http://proxy.xyz.com:83

Arbeitsverzeichnis waehlen:
c:
cd c:\RubyInstaller

rake # wait about 30 minutes :)

Wenn rake mit Fehler abbricht:

Folgende Maßnahmen haben jeweils einzeln bei mir mal geholfen:

* Virenscanner ausschalten
* Rechner neu gestartet, nur Shell geöffnet
* rake neu installiert
* Ein von rake downgeloadetes File gelöscht; war wohl fehlerhaft

Wenn alles ohne Fehler durchgelaufen ist, ist jetzt Ruby +
Erweiterungen vom RubyInstaller fertig = lauffähig (nicht jedoch
TK!).
Die neue ruby.exe befindet sich in:
C:\RubyInstaller\sandbox\ruby18_mingw\bin\

Ausprobieren:
<Pfad_zur_neuen_ruby.exe> -v

=== TK kompilieren

Systemvariable setzen

BEGINN_LANGE_ZEILE
set PATH=c:\rubyinstaller\sandbox\mingw\bin;c:\rubyinstaller\sandbox
\msys\bin;c:\rubyinstaller\sandbox\msys\usr\local\bin;%PATH%
ENDE_LANGE_ZEILE

Aus [rif]:
In der Shell, Arbeitsverzeichnis wechseln:
cd C:\RubyInstaller\sandbox\ruby_1_8\ext\tk

Dann:
ruby extconf.rb --with-tcl-dir=C:/Tcl --with-tk-dir=C:/Tcl
make install
cd tkutil
ruby extconf.rb
make install

Nun lief bei mir Ruby 1.8.7 + TK8.5.

Ausprobieren:

Skript schreiben und starten:
require 'tk'
p Tk::TK_PATCHLEVEL

muß "...8.5. ..." liefern.

Wenn nicht: Ist das Skript mit dem _neuen_ Ruby gelaufen?

== Rake

The rake tasks available:
rake check # Run tests for the interpreter in the sandbox.
rake clean # Remove any temporary products.
rake clobber # Remove any generated file.
rake compile # Compile the interpreter.
rake configure # Run the configure process for the interpreter.
rake download # Download all components.
rake extract # Extract all downloaded components.
rake install # Install the interpreter in the sandbox.
rake prepare # Prepare the freshly extracted components.

clean will remove the sandbox and clobber will remove all the
downloaded files.

The step sequence is:

download, extract, prepare, configure, compile, install, check

you will find the installed ruby in sandbox/ruby_mingw

You need to install before check, so the check process use the
sandbox
interpreter instead of the one you're using to build it.

== Sonstiges

* Gems, die laufen / nicht laufen:
http://wiki.github.com/oneclick/rubyinstaller/gem-list

* Forum RubyInstaller:
http://groups.google.com/group/rubyinstaller/topics

* Ersatz für Windows-Shell:
http://sourceforge.net/projects/console/

* Kero's Tk tutorial:
http://members.chello.nl/k.vangelder/ruby/learntk/

== Referenzen:

* [Ros] Mark Roseman: "TkDocs",
http://www.tkdocs.com/tutorial/install.html
* [ryi] Luis Lavena et al.: "rubyinstaller":
http://wiki.github.com/oneclick/rubyinstaller
* [7zi] http://www.7-zip.org/
* [Pac] Roger Pack, 2009-05-27, in "Programming gone awry"
http://programming-gone-awry.blogspot.com/2009/05/how-to-setup-comple...
* [rdk] Readme des DevelopmentKits
* [rif] RubyInstaller Forum: http://groups.google.com/group/rubyinstaller
2009-12-03: "TCL/TK 8.5 & Ruby 1.8.x with RubyInstaller?
 
R

Roger Pack

Axel said:
Hi,

below you will find what I wrote down about how I got the "new"
Windows-RubyInstaller with Ruby 1.8.7 + TK8.5 working.

Please feel free to post any comments, corrections, suggestions, ....

Suggestion: add recipes for 8.5 to the rubyinstaller builds so they can
have it by default :)
-r
 
L

Luis Lavena

Suggestion: add recipes for 8.5 to the rubyinstaller builds so they can
have it by default :)

Right now there is no recipe for 1.8.7, TK 8.5 is only compatible with
1.8.7 (changes for it never backported to 1.8.6)

A recipe will be handy, but I doubt it will work.
 
H

Hidetoshi NAGAI

From: Luis Lavena <[email protected]>
Subject: Re: Ruby 1.8.7 + Tk8.5 with Windows-RubyInstaller
Date: Sat, 19 Dec 2009 08:35:06 +0900
Message-ID: said:
Right now there is no recipe for 1.8.7, TK 8.5 is only compatible with
1.8.7 (changes for it never backported to 1.8.6)

Tcl/Tk8.5.x and 8.6b1 will work with Ruby 1.8.6, when Ruby's tcltklib
is compiled with the version of Tcl/Tk libraries.
Of course, there are no methods for the new features of new Tcl/Tk.
But Tk.tk_call() method can call such new features.

You can try to use latest Ruby/Tk on your released version of Ruby.
Please replace all files under "ext/tk" directory on your Ruby source
to the files of the latest version on Ruby's SVN, and compile it.
I think it may work with 1.8.6 and later.

If you can read Japanese text, please see
http://www.dumbo.ai.kyutech.ac.jp/~nagai/RubyTk/
 
L

Luis Lavena

H

Hidetoshi NAGAI

From: Luis Lavena <[email protected]>
Subject: Re: Ruby 1.8.7 + Tk8.5 with Windows-RubyInstaller
Date: Sat, 19 Dec 2009 23:35:17 +0900
Message-ID: said:
but instead of checkout trunk, look for branches/ruby_1_8_6 or
branches/ruby_1_8

To get the latest Ruby/Tk, look for trunk (for 1.9) or
branches/ruby_1_8 (for 1.8).
 

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,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top