ruby & activeTcl run solely from a usb flash drive

Discussion in 'Ruby' started by Sari Connard, Oct 23, 2006.

  1. Sari Connard

    Sari Connard Guest

    All,

    My goal is to run a ruby (gui/tk) from a usb flash drive.
    I have ruby (for windows) and Active Tcl installed on a usb flash drive.
    I would like to plug this into a windows os machine and not disrupt the
    windows os machine by making any changes to environment settings, and be
    able to run a ruby program using Active Tcl library for the gui. I have
    been able to run a ruby program (without gui) like this, but have not
    been able to make the Active Tcl library available for the gui.

    When I use this line from a bat file located on the usb flash drive:
    \ruby\bin\ruby.exe -I \tcl\bin -I \ruby\bin -I \tcl\lib -rlibrary
    \tcl\lib\tcl8.4 -rlibrary \tcl\lib\tk8.4 test.rb

    The error I get is:
    \ruby\bin\ruby.exe: Permission denied -- /tcl/lib/tcl8.4 (LoadError)

    Is there a way to get the Active Tcl libraries available to the usb ruby
    without making any os environment changes?

    Thanks, Sari
     
    Sari Connard, Oct 23, 2006
    #1
    1. Advertisements

  2. From: Sari Connard <>
    Subject: ruby & activeTcl run solely from a usb flash drive
    Date: Tue, 24 Oct 2006 03:37:54 +0900
    When I created a CD-R for running Ruby (One-Click Ruby) + ActiveTcl
    on the CD-R, I used the following batch file to initialize environment
    of a command-prompt.

    ------<rubytk-setup.bat>---------------------------------
    @echo off

    rem *** initialize ***
    set ENVROOT=%~dp0
    set RUBYVER=182
    set TCLVER=8.4

    :arg_check
    if "%1"=="" goto setup

    if not "%1"=="8.5" goto check_85
    set TCLVER=8.5
    shift
    goto arg_check

    :check_85
    if not "%1"=="85" goto check_8.4
    set TCLVER=8.5
    shift
    goto arg_check

    :check_8.4
    if not "%1"=="8.4" goto check_84
    set TCLVER=8.4
    shift
    goto arg_check

    :check_84
    if not "%1"=="84" goto check_root
    set TCLVER=8.4
    shift
    goto arg_check

    :check_root
    set ENVROOT=%~f1
    shift
    goto arg_check

    :setup
    echo env_root is %ENVROOT%
    echo add %ENVROOT%ruby%RUBYVER%\bin and %ENVROOT%ActiveTcl%TCLVER%\bin
    to PATH
    set
    PATH=%ENVROOT%ruby%RUBYVER%\bin;%ENVROOT%ActiveTcl%TCLVER%\bin;%PATH%
    set RUBYBINPATH=%ENVROOT%ruby%RUBYVER%\bin

    rem set RUBYOPT=rubygems

    set ENVROOT=
    set RUBYVER=
    set TCLVER=
    ---------------------------------------------------------

    On the CD-R, extracted Ruby and ActiveTcl files were placed like as
    the next.
    ---------------------------------------------------------
    /Windows/rubytk-setup.bat

    /Windows/ActiveTcl8.4:
    MANIFEST README.txt bin/ demos/ doc/ include/ lib/
    license.terms

    /Windows/ActiveTcl8.5:
    MANIFEST README.txt bin/ demos/ doc/ include/ lib/
    license.terms

    /Windows/ruby182:
    ProgrammingRuby.chm doc/ installer/ readme.txt share/
    ReleaseNotes.txt freeride/ lib/ samples/ uninst.exe
    bin/ include/ man/ scite/
     
    Hidetoshi NAGAI, Oct 24, 2006
    #2
    1. Advertisements

  3. I built tcl/tk manually (ActiveTCL has distribution restrictions), built
    ruby manually and stuck them all in the same directory (containing bin,
    lib, etc). I then used this batch script to start ruby:

    SET PATH=%CD%;%CD%\bin;%PATH%
    ruby main.rb

    This way, I'm insulated from other ruby/tk installs on the system and I
    don't affect any existing installs on the system (the path change is
    purely local). I haven't tested this from a USB drive, but it works for
    a zipfile unzipped to a random place on a windows machine and run as a
    restricted user.

    Andrew
     
    Andrew Thompson, Oct 24, 2006
    #3
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.