On Tue, 14 Feb 2006, Jim Weirich wrote: > unknown wrote: >> i have this >> >> jib:~/eg/ruby/rubyforge/rubyforge-0.1.1 > file bin//rubyforge >> bin//rubyforge: a ruby script text executable >> >> >> jib:~/eg/ruby/rubyforge/rubyforge-0.1.1 > cat ./gemspec.rb >> lib, version = >> File::basename(File::dirname(File::expand_path(__FILE__))).split %r/-/, >> 2 >> >> require 'rubygems' >> >> spec = Gem::Specification.new do |s| >> s.name = lib >> s.version = version >> s.platform = Gem::Platform::RUBY >> s.summary = lib >> >> s.files = Dir["lib/*"] + Dir["bin/*"] > + s.bindir = "bin" > + s.executables = ["rubyforge"] >> >> s.require_path = "lib" >> s.autorequire = lib >> >> s.has_rdoc = File::exist? "doc" >> s.test_suite_file = "test/#{ lib }.rb" if File::directory? "test" >> >> s.author = "Ara T. Howard" >> s.email = "ara.t.howard / noaa.gov" >> s.homepage = "http://codeforpeople.com/lib/ruby/#{ lib }/" >> end >> >> >> and this gem, apparently, does not install a 'rubyforge' script into the >> system >> bin dir. why not? > > Try adding ...' > > s.bindir = "bin" > s.executables = ["rubyforge"] thanks. any reason why s.executables would not a default value of Dir::glob(File::join("#{ bindir }", "*")) if File::exist?(bindir) ?? i actually did try that btw. the reason it didn't work is because the bindir installed to is not in my path. i have something like this setup /usr/local/bin/ruby -> /usr/local/ruby-1.8.4/bin/ruby /usr/local/ruby-1.8.4/* /usr/local/ruby-1.8.3/* /usr/local/ruby-1.8.2/* /usr/local/ruby-1.8.1/* etc. so here a gem install rubyforge-0.0.0.gem installs into /usr/local/bin/ruby-1.8.4/bin/rubyforge which is not in my path. a while back i posted this tiny patch the the top-level gem script # # munge rbconfig from any command line or environment kv pair # kvs = [] re = %r/^ \s* ([^=\s]+) \s* = \s* ([^\s]+) \s* $/x args.delete_if{|arg| (m = re.match(arg)) and (kvs << m.to_a.last(2))} ENV::each{|k,v| (k =~ %r/^GEM_/) and (kvs << [k.delete('GEM_'), v])} unless kvs.empty? require 'rbconfig' kvs.each{|k,v| Config::CONFIG[k] = v} end which allows setting of __any__ rbconfig value on the command line. this allows one to do this: gem install rubyforge-0.0.0.gem bindir=/usr/local/bin/ and other fine grained controls of any gem install. any objection to adding such a patch to gems? as it stands now i cannot use the gem command to manage anything but libs on my systems - commands simply disappear into non PATH directories. regards. -a -- judge your success by what you had to give up in order to get it. - h.h. the 14th dali lama