# Hardcoded rubygems.org

**URL:** <https://discourse.chef.io/t/hardcoded-rubygems-org/5191>\
**Category:** Chef Infra (archive)\
**Created:** [March 6, 2014, 3:23pm UTC](https://discourse.chef.io/t/hardcoded-rubygems-org/5191 "2014-03-06T15:23:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Durfee\_Bernie\_GE\_Glo](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/durfee_bernie_ge_glo/32/97_2.png) [@Durfee\_Bernie\_GE\_Glo](https://discourse.chef.io/u/Durfee_Bernie_GE_Glo)\
**Post date:** [March 6, 2014, 3:23pm UTC](https://discourse.chef.io/t/hardcoded-rubygems-org/5191/1 "2014-03-06T15:23:11Z")

</div>

So the gem\_package provider hardcodes '[rubygems.org](http://rubygems.org)' as a gem source. That's great, if you can or want to always get gems from there, but if you're behind a corporate firewall, this is not a good thing because it breaks even if you have the gem in a local repo...

> gem list stickler -r --source=[http://mylocalrepo.com/gemrepo/](http://mylocalrepo.com/gemrepo/)  
> \*\*\* REMOTE GEMS \*\*\*  
> stickler (2.4.0)

> gem list stickler -r --source=[http://mylocalrepo.com/gemrepo/](http://mylocalrepo.com/gemrepo/) --source=[http://rubygems.org](http://rubygems.org)  
> \*\*\* REMOTE GEMS \*\*\*  
> ERROR: [http://rubygems.org/](http://rubygems.org/) does not appear to be a repository  
> ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)  
> SocketError: getaddrinfo: No address associated with hostname ([http://rubygems.org/yaml](http://rubygems.org/yaml))

There were several issues opened regarding this, which now seem to have been rolled up into an enhancement (CHEF-4539). That's fine, except for me, it's still a bug.

Does anyone know of any workarounds for the hardcoded '[rubygems.org](http://rubygems.org)'?

Bernie

---

<div class="post-metadata">

**Author:** ![Durfee\_Bernie\_GE\_Glo](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/durfee_bernie_ge_glo/32/97_2.png) [@Durfee\_Bernie\_GE\_Glo](https://discourse.chef.io/u/Durfee_Bernie_GE_Glo)\
**Post date:** [March 6, 2014, 4:09pm UTC](https://discourse.chef.io/t/hardcoded-rubygems-org/5191/2 "2014-03-06T16:09:46Z")

</div>

I sort of answered my own question, here's a monkey patch to remove the hardcoded gem source:

# Monkey patch to fix hardcoded gem source

require 'chef/provider/package/rubygems'  
Chef::Provider:📦:Rubygems.class\_eval do  
def install\_via\_gem\_command(name, version)  
if @new\_resource.source =~ /.gem$/i  
name = @new\_resource.source  
else  
src = @new\_resource.source && " --source=#{@new\_resource.source}"  
end  
if version  
shell\_out!("#{gem\_binary\_path} install #{name} -q --no-rdoc --no-ri -v "#{version}"#{src}#{opts}", :env=\>nil)  
else  
shell\_out!("#{gem\_binary\_path} install "#{name}" -q --no-rdoc --no-ri #{src}#{opts}", :env=\>nil)  
end  
end  
end

Bernie

From: Durfee, Bernie (GE Corporate)  
Sent: Thursday, March 06, 2014 10:23 AM  
To: [chef@lists.opscode.com](mailto:chef@lists.opscode.com)  
Subject: [chef] Hardcoded [rubygems.org](http://rubygems.org)

So the gem\_package provider hardcodes '[rubygems.org](http://rubygems.org)' as a gem source. That's great, if you can or want to always get gems from there, but if you're behind a corporate firewall, this is not a good thing because it breaks even if you have the gem in a local repo...

> gem list stickler -r --source=[http://mylocalrepo.com/gemrepo/](http://mylocalrepo.com/gemrepo/)  
> \*\*\* REMOTE GEMS \*\*\*  
> stickler (2.4.0)

> gem list stickler -r --source=[http://mylocalrepo.com/gemrepo/](http://mylocalrepo.com/gemrepo/) --source=[http://rubygems.org](http://rubygems.org)  
> \*\*\* REMOTE GEMS \*\*\*  
> ERROR: [http://rubygems.org/](http://rubygems.org/) does not appear to be a repository  
> ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)  
> SocketError: getaddrinfo: No address associated with hostname ([http://rubygems.org/yaml](http://rubygems.org/yaml))

There were several issues opened regarding this, which now seem to have been rolled up into an enhancement (CHEF-4539). That's fine, except for me, it's still a bug.

Does anyone know of any workarounds for the hardcoded '[rubygems.org](http://rubygems.org)'?

Bernie
