Rubygems debian package proof of concept
I've made a proof of concept package. It seems to work.
http://lesuisse.net/rubygems-poc/
It's UGLY from a DD point of view i use dpkg-buildpackage as if i was using
tar zcvf. But what matters is the patch below. of course the if Process.uid
should be remplaced by an option given to /usr/bin/gem:
--install-usr-local
--install-usr (DISCOURAGED)
--install-home (to ~/.rubygems default option)
The patch is here. Remember it's UGLY and it's only a proof of concept.
Feedback ?
--- rubygems-0.8.11/lib/rubygems.rb 2005-07-09 21:12:56.000000000 +0200
+++ rubygems-poc/rubygems-poc-0.1/usr/lib/ruby/1.8/rubygems.rb 2006-04-20
16:53:49.000000000 +0200
@@ -315,7 +315,13 @@
@gem_path << Gem.dir
else
@gem_path = [Gem.dir]
- end
+ end
+#-------------------------------------------------------------
+# Antony HACK HACK
+ @gem_path <<
File.join(Config::CONFIG["sitedir"],"gems",Config::CONFIG['ruby_version'])
+ @gem_path << File.join(File.expand_path('~'),".rubygems")
+ @gem_path << File.join(Config::CONFIG['libdir'], 'ruby', 'gems',
Config::CONFIG['ruby_version'])
+#-------------------------------------------------------------
@gem_path.uniq!
@gem_path.each do |gp| ensure_gem_subdirectories(gp) end
end
@@ -367,6 +373,16 @@
# fundamental RubyGems dependency, so it might as well be up the
# top. -- Gavin Sinclair, 2004-12-12
#
+
+ #----------------------------------------------------------------
+ # Antony HACK HACK
+ if Process.uid==0
+ return
File.join(Config::CONFIG["sitedir"],"gems",Config::CONFIG['ruby_version'])
+ else
+ return File.join(File.expand_path('~'),".rubygems")
+ end
+ #----------------------------------------------------------------
+
if defined? RUBY_FRAMEWORK_VERSION
return File.join(File.dirname(Config::CONFIG["sitedir"]), "Gems")
else
Reply to: