# Distributing libraries

**URL:** <https://www.ruby-forum.com/t/distributing-libraries/76227>\
**Category:** Ruby\
**Created:** [November 16, 2006, 9:45pm UTC](https://www.ruby-forum.com/t/distributing-libraries/76227 "2006-11-16T21:45:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![lynxinator](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/848f3c/32.png) [@lynxinator](https://www.ruby-forum.com/u/lynxinator)\
**Post date:** [November 16, 2006, 9:45pm UTC](https://www.ruby-forum.com/t/distributing-libraries/76227/1 "2006-11-16T21:45:44Z")

</div>

Hi all,

I’m in the process of starting to integrate a new library into my  
main project, Puppet[1]. I need to tightly control external  
dependencies in the Puppet client, because Puppet will normally be  
responsible for installing all software (it’s a configuration  
management tool, and does things like create users and install  
packages), so I’m trying to decide on the best way to distribute the  
library with Puppet.

I’ve verified the license of the library (GRATR[2]) and discussed it  
with its author, so there’s no problem there.

I’m currently distributing another library as part of Puppet, but  
it’s a small library with just a few files, so I changed the  
‘require’ lines to point to ‘puppet/’ instead of just  
‘’; GRATR has enough files that I think this would be a pain  
to maintain, especially since I expect to provide plenty of patches  
and feedback to its author.

Puppet is currently distributed in at least 5 packaging formats,  
excluding tarballs – sun, .deb, rpm, ebuild, and gem – and I can  
basically guarantee that none of these except gems have a package for  
GRATR, so I don’t think it would work very well to have just use  
package dependencies, keeping in mind that Puppet is the tool used to  
install packages for its users.

Is there a kind of standard way of distributing other Ruby libraries  
with a Ruby project?

1 - [http://reductivelabs.com/projects/puppet](http://reductivelabs.com/projects/puppet)  
2 - [http://rubyforge.org/projects/gratr/](http://rubyforge.org/projects/gratr/)
