Tags

employment
llc
xrp
redhat
ripple
interfaces
ncurses
ruby
refs
filesystems
retro gaming
raspberry pi
sinatra
3d printing
nethack
gcc
compiler
fedora
virtfs
project
gaming
vim
grep
sed
aikido
philosophy
splix
android
lvm
storage
bitcoin
projects
sig315
miq
db
polisher
meditation
hopex
conferences
omega
simulator
bundler_ext
rubygems
book review
google code in
isitfedoraruby
svn
gsoc
design patters
jsonrpc
rjr
aeolus
ohiolinuxfest
rome
europe
travel
brno
gtk
python
puppet
conference
fudcon
html5
snap
tips
ssh
linux
hardware
libvirt
virtualization
engineering expo
cloud
redmine
plugins
rpm
yum
rake
screencasting
jruby
fosscon
pidgin
gnome-shell
distros
notacon
presentation
rails
deltacloud
apache
qmf
passenger
syrlug
hackerspace
music
massive attack
backups
crypto
vnc
xsd
rxsd
x3d
mercurial
webdev
ovirt
qpid
haikus
poetry
legaleese
jquery
selenium
testing
xpath
git
sshfs
svg
ldap
autotools
pygtk
xmlrpc
slackware

Nov 20 2013 bundler_ext rubygems ruby

Using Gem and System Installed Ruby Dependencies Side By Side

Gembundler

Be sure to checkout the latest updates to the bundler_ext project which now permits the activation of Gemfile dependencies that have been installed system wide (eg via yum, apt-get, or other).

bundler_ext is a simple library allowing Ruby developers to bypass the local vendored gem install process, rather relying on gems already installed by the end user or system administrator. By default after installing and importing bundler_ext into your project (see the README), the modules that are auto-required by the gems described in the project's Gemfile are pulled in and then nothing else will be done, vendored deps are not installed. Other dependencies that are required will be loaded on the fly from the latest versions installed system wide, as 'require' statements are encountered.

The end user is responsible for ensuring only the required versions of gems are installed and accessible, else incompatible dependencies may be pulled in at runtime. The latest patch to bundler_ext permits multiple versions to be available, as the user can now specify the BEXT_ACTIVATE_VERSIONS environment variable to instruct bundler_ext to lookup the versions of dependencies that have been install via the native package management system (yum, apt-get, or other), and activate those ahead of time. Therefore any Ruby application can now easily switch between the system-wide/distro-supported stack, the latest stack of dependencies available, or the traditional bundler-installed vendored dependencies by toggling a few flags.

On the backend, bundler_ext uses linux_admin to query the native package system to lookup the versions of dependencies (linux_admin is pulled in as a soft-dependency, and isn't required unless BEXT_ACTIVATE_VERSIONS is set true). The patches adding the necessary functionality have been merged into the bundler_ext and linux_admin upstream repos with a couple of small style and metadata changes in flight before new releases are pushed to rubygems.org.

Hope this helps Ruby developers looking for a supported stack while still maintaining the flexibility that rubygems and bundler provides.