BUNDLE-PACKAGE(1) BUNDLE-PACKAGE(1)

1mNAME0m

1mbundle-package 22m- Package your needed 1m.gem 22mfiles into your application

1mSYNOPSIS0m

1mbundle package0m

1mDESCRIPTION0m

Copy  all of the 1m.gem 22mfiles needed to run the application into the 1mven-0m
1mdor/cache 22mdirectory. In the future, when running bundle install(1) 4mbun-0m
4mdle-install.1.html24m, use the gems in the cache in preference to the ones
on 1mrubygems.org22m.

1mGIT AND PATH GEMS0m

Since Bundler 1.2, the 1mbundle package 22mcommand can also package 1m:git 22mand
1m:path  22mdependencies  besides  .gem  files.  This needs to be explicitly
enabled via the 1m--all 22moption. Once  used,  the  1m--all  22moption  will  be
remembered.

1mSUPPORT FOR MULTIPLE PLATFORMS0m

When  using  gems that have different packages for different platforms,
Bundler 1.8 and newer support caching of gems for  other  platforms  in
1mvendor/cache22m.  This needs to be enabled via the 1m--all-platforms 22moption.
This setting will be remembered in your local bundler configuration.

1mREMOTE FETCHING0m

By default, if you simply run bundle  install(1)  4mbundle-install.1.html0m
after  running  bundle  package(1)  4mbundle-package.1.html24m, bundler will
still connect to 1mrubygems.org 22mto check whether a platform-specific  gem
exists for any of the gems in 1mvendor/cache22m.

For instance, consider this Gemfile(5):

    source "https://rubygems.org"

    gem "nokogiri"

If  you run 1mbundle package 22munder C Ruby, bundler will retrieve the ver-
sion of 1mnokogiri 22mfor the 1m"ruby" 22mplatform. If you deploy  to  JRuby  and
run  1mbundle install22m, bundler is forced to check to see whether a 1m"java"0m
platformed 1mnokogiri 22mexists.

Even though the 1mnokogiri 22mgem  for  the  Ruby  platform  is  4mtechnically0m
acceptable on JRuby, it actually has a C extension that does not run on
JRuby. As  a  result,  bundler  will,  by  default,  still  connect  to
1mrubygems.org 22mto check whether it has a version of one of your gems more
specific to your platform.

This problem is also not just limited to the 1m"java" 22mplatform. A similar
(common) problem can happen when developing on Windows and deploying to
Linux, or even when developing on OSX and deploying to Linux.

If you know for sure that the gems packaged in 1mvendor/cache 22mare  appro-
priate  for the platform you are on, you can run 1mbundle install --local0m
to skip checking for more appropriate gems, and just use  the  ones  in
1mvendor/cache22m.

One  way  to be sure that you have the right platformed versions of all
your gems is to run 1mbundle package 22mon an identical machine and check in
the  gems.  For  instance,  you  can run 1mbundle package 22mon an identical
staging box during your staging process, and check in the  1mvendor/cache0m
before deploying to production.

                           April 2016                 BUNDLE-PACKAGE(1)