'env ruby -v' returns nothing


#1

Hi everyone,

I’'m trying to figure out why rubygems won’t install correctly on this
particular RHEL4 box, but it does on others. Obviously, it’s an
environment issue, but I can’t track down where. here are some
details:

Compiling ruby 1.8.4 on 6 RHEL4 machines. 5 were ok. The one I do
the most dev on is not. Ruby works fine, but rubygems does not:

gem -v

/usr/local/bin/gem: line 3: require: command not found
/usr/local/bin/gem: line 4: Gem.manage_gems: command not found
/usr/local/bin/gem: line 6: syntax error near unexpected token (' /usr/local/bin/gem: line 6:required_version =
Gem::Version::Requirement.new(">= 1.8.0")’

gem installs with ‘/usr/bin/env ruby’ as the default startup line, but
running this myself returns zilch:

/usr/bin/env ruby

/usr/bin/env ruby -v

which gem

/usr/local/bin/gem

which ruby

/usr/local/bin/ruby

Changing the shebang line in /usr/local/bin/gem to use
/usr/local/bin/ruby works as far as gem -v goes, but I’m afraid to use
it if I don’t know what env vars it might use otherwise.

I have no ruby-based rpms installed anymore (I did once, but they
haven’t been updated since 1.8.1, so I scrapped them). I’ve rm -rf’ed
the entire ruby distribution and started from scratch, so I’m thinking
it must be environment. Does anybody have a suggestion as to what
could cause this? I see no obvious discrepancies between this machine
and any of the other 5. Where should I look next?

Thank you!

Sean


#2

On 1/16/06, Sean H. removed_email_address@domain.invalid wrote:

/usr/bin/env ruby

/usr/bin/env ruby -v

which gem

/usr/local/bin/gem

which ruby

/usr/local/bin/ruby

Changing the shebang line in /usr/local/bin/gem to use
/usr/local/bin/ruby works as far as gem -v goes, but I’m afraid to use
it if I don’t know what env vars it might use otherwise.

It certainly does sound like an environment issue. My guess is the
PATH doesn’t include /usr/local/bin, but if you can run ‘gem’ that
couldn’t be it. Try running ‘/usr/bin/env’ (without the ‘ruby -v’) on
each machine. This prints out the current environment and you can
compare to find the environment differences.

Jacob F.


#3

Whoa. Check this out. On one of the “good” machines (some info
snipped):

/usr/bin/env

HOSTNAME=blah
TERM=xterm-color
SHELL=/bin/bash
HISTSIZE=100
SSH_CLIENT=::ffff:10.4.74.75 49771 22
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:.cmd=01;32:.exe=01;32:.com=01;32:.btm=01;32:.bat=01;32:.sh=01;32:.csh=01;32:.tar=01;31:.tgz=01;31:.arj=01;31:.taz=01;31:.lzh=01;31:.zip=01;31:.z=01;31:.Z=01;31:.gz=01;31:.bz2=01;31:.bz=01;31:.tz=01;31:.rpm=01;31:.cpio=01;31:.jpg=01;35:.gif=01;35:.bmp=01;35:.xbm=01;35:.xpm=01;35:.png=01;35:.tif=01;35:
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/libexec:/root/bin
INPUTRC=/etc/inputrc
PWD=/root
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/usr/bin/env

Now, on the “bad” machine:

/usr/bin/env

Huh?!