summaryrefslogtreecommitdiff
path: root/v1.3/bundle_package.html
blob: 05ee1ffac129ae077dc8f5f5ad2a6dfa3d09e932 (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
<!DOCTYPE html>
<html>
  <head>
    <title>Bundler: The best way to manage a Ruby application's gems</title>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
    <meta content='276VSYOko8B8vIu1i8i5qbj7_ql5PXo0dU69XQy-SL' name='globalsign-domain-verification'>
    <link href='/images/favicon.png' rel='shortcut icon' type='image/png'>
    <link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id='body'>
      <div id='header'>
        <a class="image" href="/"><img width="725" alt="The best way to manage your application's dependencies" src="/images/gembundler.png" /></a>
      </div>
      <div id='container'>
        <div id='contents'>
          <h2>bundle package</h2>
          <div class='contents'>
            <div class='bullet'>
              <div class='description'>
                Locks and then caches the gems into <code>./vendor/cache</code>.
              </div>
              <pre class="highlight plaintext">$ bundle package [--no-prune] [--all]</pre>
              <div class='notes'>
                <p>
                  Options:
                </p>
                <p>
                  <code>--no-prune</code>: Don't remove stale gems from the cache.
                </p>
                <p>
                  <code>--all</code>: package <code>:git</code>, <code>:path</code>, and <code>.gem</code> dependencies. Once used, the <code>--all</code> option will be remembered.
                </p>
              </div>
              <div class='description'>
                <p>
                  The package command will copy the <code>.gem</code> files for your gems in the
                  bundle into <code>./vendor/cache</code>. Afterward, when you run <code>bundle install</code>,
                  Bundler will use the gems in the cache in preference to the ones on rubygems.org.
                </p>
                <p>
                  Additionally, if you then check that directory into your source control repository,
                  others who check out your source will be able to install the bundle without having
                  to download any additional gems.
                </p>
              </div>
            </div>
            <div class='bullet'>
              <div class='description'>
                Lock and cache gems from RubyGems into <code>./vendor/cache</code>.
              </div>
              <div class='how'>
                <pre class="highlight plaintext">$ bundle package&#x000A;</pre>
              </div>
              <div class='notes'>
                <p>
                  By default, if you simply run <code>bundle install</code> after running
                  <code>bundle package</code>, Bundler will still connect to rubygems.org to check
                  whether a platform-specific gem exists for any of the gems in <code>vendor/cache</code>.
                </p>
                <p>
                  This behavior can be avoided by instead running <code>bundle install --local</code>.
                  Note that this requires you to have the correctly platformed version for all of your gems
                  already cached. The easiest way to achieve this is to run <code>bundle package</code>
                  on an identical machine and then check in those vendored gems.
                </p>
              </div>
            </div>
            <div class='bullet' id='no-prune'>
              <div class='description'>
                Lock and cache gems from RubyGems into <code>./vendor/cache</code>, and don't remove any stale gems from the existing cache.
              </div>
              <div class='how'>
                <pre class="highlight plaintext">$ bundle package --no-prune&#x000A;</pre>
              </div>
            </div>
            <div class='bullet' id='all'>
              <div class='description'>
                Lock and cache all gems into <code>./vendor/cache</code>, including <code>:git</code>, <code>:path</code>, and <code>.gem</code> dependencies.
              </div>
              <div class='how'>
                <pre class="highlight plaintext">$ bundle package --all</pre>
              </div>
              <div class='notes'>
                <p>
                  Once used, the <code>--all</code> option will be remembered.
                </p>
                <p>
                  This will be the default on Bundler 2.0.
                </p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id='footer'>
      <img src="/images/emocow.png" />
      <img src="/images/panda.jpg" />
      <div class='spacer'></div>
      <div id='credits'>
        <p>
          Many thanks to Bundler's <a href="/contributors.html">contributors</a>
          and <a href="/sponsors.html">sponsors</a>
        </p>
      </div>
      <div class='spacer'></div>
      <img src="/images/bundler-small.png" />
    </div>
    <a href='http://github.com/bundler/bundler/' id='github'>
      <img alt='Fork me on GitHub' src='http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png'>
    </a>
    <div id='prod-versions'>
      Docs:
      <a href="/v0.9/">v0.9</a>
      <a href="/v1.0/">v1.0</a>
      <a href="/v1.1/">v1.1</a>
      <a href="/v1.2/">v1.2</a>
      <a class="current" href="/v1.3/">v1.3</a>
      <a href="/v1.5/index.html">v1.5</a>
      <a href="/">v1.6</a>
    </div>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
      ga('create', 'UA-39559982-1', 'bundler.io');
      ga('send', 'pageview');
    </script>
  </body>
</html>