summaryrefslogtreecommitdiff
path: root/v1.0/man/bundle-package.1.html
blob: b456fd6053fbd2131a7e7d43d983ed970317a08d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' value='text/html;charset=utf8'>
  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
  <title>bundle-package(1) - Package your needed &lt;code&gt;.gem&lt;/code&gt; files into your application</title>
  <style type='text/css' media='all'>
  /* style: man */
  body#manpage {margin:0}
  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
  .mp h2 {margin:10px 0 0 0}
  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
  .mp h3 {margin:0 0 0 4ex}
  .mp dt {margin:0;clear:left}
  .mp dt.flush {float:left;width:8ex}
  .mp dd {margin:0 0 0 9ex}
  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
  .mp pre {margin-bottom:20px}
  .mp pre+h2,.mp pre+h3 {margin-top:22px}
  .mp h2+pre,.mp h3+pre {margin-top:5px}
  .mp img {display:block;margin:auto}
  .mp h1.man-title {display:none}
  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
  .mp h2 {font-size:16px;line-height:1.25}
  .mp h1 {font-size:20px;line-height:2}
  .mp {text-align:justify;background:#fff}
  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
  .mp u {text-decoration:underline}
  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
  .mp b.man-ref {font-weight:normal;color:#434241}
  .mp pre {padding:0 4ex}
  .mp pre code {font-weight:normal;color:#434241}
  .mp h2+pre,h3+pre {padding-left:0}
  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
  ol.man-decor {width:100%}
  ol.man-decor li.tl {text-align:left}
  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
  ol.man-decor li.tr {text-align:right;float:right}
  </style>
</head>
<!--
  The following styles are deprecated and will be removed at some point:
  div#man, div#man ol.man, div#man ol.head, div#man ol.man.

  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
  .man-navigation should be used instead.
-->
<body id='manpage'>
  <div class='mp' id='man'>

  <div class='man-navigation' style='display:none'>
    <a href="#NAME">NAME</a>
    <a href="#SYNOPSIS">SYNOPSIS</a>
    <a href="#DESCRIPTION">DESCRIPTION</a>
    <a href="#GIT-AND-PATH-GEMS">GIT AND PATH GEMS</a>
    <a href="#REMOTE-FETCHING">REMOTE FETCHING</a>
  </div>

  <ol class='man-decor man-head man head'>
    <li class='tl'>bundle-package(1)</li>
    <li class='tc'></li>
    <li class='tr'>bundle-package(1)</li>
  </ol>

  <h2 id="NAME">NAME</h2>
<p class="man-name">
  <code>bundle-package</code> - <span class="man-whatis">Package your needed <code>.gem</code> files into your application</span>
</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<p><code>bundle package</code></p>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>Copy all of the <code>.gem</code> files needed to run the application into the
<code>vendor/cache</code> directory. In the future, when running <a href="bundle-install.1.html">bundle install(1)</a>,
use the gems in the cache in preference to the ones on <code>rubygems.org</code>.</p>

<h2 id="GIT-AND-PATH-GEMS">GIT AND PATH GEMS</h2>

<p>In Bundler 1.0, the <code>bundle package</code> command only packages <code>.gem</code> files,
not gems specified using the <code>:git</code> or <code>:path</code> options. This will likely
change in the future.</p>

<h2 id="REMOTE-FETCHING">REMOTE FETCHING</h2>

<p>By default, if you simply run <a href="bundle-install.1.html">bundle install(1)</a> after running
<a href="bundle-package.1.html">bundle package(1)</a>, bundler will still connect to <code>rubygems.org</code>
to check whether a platform-specific gem exists for any of the gems
in <code>vendor/cache</code>.</p>

<p>For instance, consider this <a class="man-ref" href="gemfile.5.html">Gemfile<span class="s">(5)</span></a>:</p>

<pre><code>source "http://rubygems.org"

gem "nokogiri"
</code></pre>

<p>If you run <code>bundle package</code> under C Ruby, bundler will retrieve
the version of <code>nokogiri</code> for the <code>"ruby"</code> platform. If you deploy
to JRuby and run <code>bundle install</code>, bundler is forced to check to
see whether a <code>"java"</code> platformed <code>nokogiri</code> exists.</p>

<p>Even though the <code>nokogiri</code> gem for the Ruby platform is
<em>technically</em> 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 <code>rubygems.org</code> to check whether it has a version
of one of your gems more specific to your platform.</p>

<p>This problem is also not just limited to the <code>"java"</code> platform.
A similar (common) problem can happen when developing on Windows
and deploying to Linux, or even when developing on OSX and
deploying to Linux.</p>

<p>If you know for sure that the gems packaged in <code>vendor/cache</code>
are appropriate for the platform you are on, you can run
<code>bundle install --local</code> to skip checking for more appropriate
gems, and just use the ones in <code>vendor/cache</code>.</p>

<p>One way to be sure that you have the right platformed versions
of all your gems is to run <code>bundle package</code> on an identical
machine and check in the gems. For instance, you can run
<code>bundle package</code> on an identical staging box during your
staging process, and check in the <code>vendor/cache</code> before
deploying to production.</p>


  <ol class='man-decor man-foot man foot'>
    <li class='tl'></li>
    <li class='tc'>June 2014</li>
    <li class='tr'>bundle-package(1)</li>
  </ol>

  </div>
</body>
</html>