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?