summaryrefslogtreecommitdiff
path: root/v1.5/bundler_workflow.html
diff options
context:
space:
mode:
Diffstat (limited to 'v1.5/bundler_workflow.html')
-rw-r--r--v1.5/bundler_workflow.html223
1 files changed, 0 insertions, 223 deletions
diff --git a/v1.5/bundler_workflow.html b/v1.5/bundler_workflow.html
deleted file mode 100644
index 5683b45d32..0000000000
--- a/v1.5/bundler_workflow.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<!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>Recommended Workflow with Version Control</h2>
- <div class='contents'>
- <div class='bullet' id='recommended_workflow'>
- <div class='description'>
- <p>
- In general, when working with an application managed with bundler, you
- should use the following workflow:
- </p>
- <p>
- After you create your <code>Gemfile</code> for the first time, run
- <pre class="highlight plaintext">$ bundle install</pre>
- </p>
- <p>
- Check the resulting <code>Gemfile.lock</code> into version control
- <pre class="highlight plaintext">$ git add Gemfile.lock</pre>
- </p>
- <p>
- When checking out this repository on another development machine, run
- <pre class="highlight plaintext">$ bundle install</pre>
- </p>
- <p>
- When checking out this repository on a deployment machine, run
- <pre class="highlight plaintext">$ bundle install --deployment</pre>
- </p>
- <p>
- After changing the <code>Gemfile</code> to reflect a new or update
- dependency, run
- <pre class="highlight plaintext">$ bundle install</pre>
- </p>
- <p>
- Make sure to check the updated <code>Gemfile.lock</code> into version
- control
- <pre class="highlight plaintext">$ git add Gemfile.lock</pre>
- </p>
- <p>
- If <code>bundle install</code> reports a conflict, manually update the
- specific gems that you changed in the <code>Gemfile</code>
- <pre class="highlight plaintext">$ bundle update rails thin</pre>
- </p>
- <p>
- If you want to update all the gems to the latest possible versions that
- still match the gems listed in the <code>Gemfile</code>, run
- <pre class="highlight plaintext">$ bundle update&#x000A;</pre>
- </p>
- </div>
- </div>
- </div>
- <h2>A Thorough Bundler Workflow</h2>
- <div class='contents'>
- <div class='bullet'>
- <div class='description'>
- Getting started with bundler is easy! Open a terminal window and run this command:
- </div>
- <pre class="highlight plaintext">$ gem install bundler</pre>
- <div class='notes'>
- <li>
- When you first create a Rails application, it already comes with a
- <code>Gemfile</code>. For another kind of application (such as Sinatra), run:
- <pre class="highlight plaintext">$ bundle init&#x000A;</pre>
- </li>
- <li>
- The <code>bundle init</code> command creates a simple <code>Gemfile</code> which you
- can edit.
- </li>
- </div>
- </div>
- <div class='bullet'>
- <div class='description'>
- Specify your dependencies in the root of your application, called the <code>Gemfile</code>.
- It looks something like this:
- </div>
- <pre class="highlight ruby"><span class="n">source</span> <span class="s1">'https://rubygems.org'</span>&#x000A;<span class="n">gem</span> <span class="s1">'nokogiri'</span>&#x000A;<span class="n">gem</span> <span class="s1">'rack'</span><span class="p">,</span> <span class="s1">'~&gt;1.1'</span>&#x000A;<span class="n">gem</span> <span class="s1">'rspec'</span><span class="p">,</span> <span class="ss">:require</span> <span class="o">=&gt;</span> <span class="s1">'spec'</span>&#x000A;</pre>
- <div class='notes'>
- This <code>Gemfile</code> says a few things. First, it says that bundler should
- look for gems declared in the <code>Gemfile</code> at <code>http://rubygems.org</code>.
- You can declare multiple Rubygems sources, and bundler will look for gems in the order
- you declared the sources.
- </div>
- <a href="/v1.5/gemfile.html">Learn More: Gemfiles</a>
- </div>
- <div class='bullet'>
- <div class='description'>
- <p>
- After declaring your first set of dependencies, you tell bundler to go get them:
- <pre class="highlight plaintext">$ bundle install # &lt;code&gt;bundle&lt;/code&gt; is a shortcut for &lt;code&gt;bundle install&lt;/code&gt;&#x000A;</pre>
- </p>
- <p>
- Bundler will connect to <code>rubygems.org</code> (and any other sources that you declared),
- and find a list of all of the required gems that meet the requirements you specified.
- Because all of the gems in your <code>Gemfile</code> have dependencies of their own
- (and some of those have their own dependencies), running <code>bundle install</code> on the
- <code>Gemfile</code> above will install quite a few gems.
- <pre class="highlight plaintext"> $ bundle install&#x000A; Fetching gem metadata from https://rubygems.org/&#x000A; Resolving dependencies...&#x000A; Using rake (0.8.7)&#x000A; Using abstract (1.0.0)&#x000A; Installing activesupport (3.0.0.rc)&#x000A; Using builder (2.1.2)&#x000A; Using i18n (0.4.1)&#x000A; Installing activemodel (3.0.0.rc)&#x000A; Using erubis (2.6.6)&#x000A; Using rack (1.2.1)&#x000A; Installing rack-mount (0.6.9)&#x000A; Using rack-test (0.5.4)&#x000A; Using tzinfo (0.3.22)&#x000A; Installing actionpack (3.0.0.rc)&#x000A; Using mime-types (1.16)&#x000A; Using polyglot (0.3.1)&#x000A; Using treetop (1.4.8)&#x000A; Using mail (2.2.5)&#x000A; Installing actionmailer (3.0.0.rc)&#x000A; Using arel (0.4.0)&#x000A; Installing activerecord (3.0.0.rc)&#x000A; Installing activeresource (3.0.0.rc)&#x000A; Using bundler (1.0.0.rc.3)&#x000A; Installing nokogiri (1.4.3.1) with native extensions&#x000A; Installing rack-cache (0.5.2)&#x000A; Installing thor (0.14.0)&#x000A; Installing railties (3.0.0.rc)&#x000A; Installing rails (3.0.0.rc)&#x000A; Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.&#x000A;</pre>
- </p>
- <p>
- If any of the needed gems are already installed, Bundler will use them. After installing
- any needed gems to your system, bundler writes a snapshot of all of the gems and
- versions that it installed to <code>Gemfile.lock</code>.
- <div class='notes'>
- <li>
- If <code>bundle install</code> reports a conflict between your <code>Gemfile</code> and
- <code>Gemfile.lock</code>, run:
- <pre class="highlight plaintext">$ bundle update sinatra&#x000A;</pre>
- </li>
- <li>
- This will update just the Sinatra gem, as well as any of its dependencies.
- </li>
- <p>
- <li>
- To update all of the gems in your <code>Gemfile</code> to the latest possible versions, run:
- <pre class="highlight plaintext">$ bundle update&#x000A;</pre>
- </li>
- </p>
- <li>
- Whenever your <code>Gemfile.lock</code> changes, always check it in to version control.
- It keeps a history of the exact versions of all third-party code that you used to successfully
- run your application.
- </li>
- <li>
- The <code>git add Gemfile*</code> command adds the Gemfile and Gemfile.lock to your repository. This ensures that
- other developers on your app, as well as your deployment environment, will all use the same
- third-party code that you are using now.
- </li>
- </div>
- </p>
- </div>
- </div>
- <div class='buttons'>
- <a href="/v1.5/bundle_install.html">Learn More: bundle install</a>
- <a href="/v1.5/bundle_update.html">Learn More: bundle update</a>
- </div>
- <div class='bullet'>
- <div class='description'>
- Inside your app, load up the bundled environment:
- </div>
- <pre class="highlight ruby"><span class="nb">require</span> <span class="s1">'rubygems'</span>&#x000A;<span class="nb">require</span> <span class="s1">'bundler/setup'</span>&#x000A;&#x000A;<span class="c1"># require your gems as usual</span>&#x000A;<span class="nb">require</span> <span class="s1">'nokogiri'</span></pre>
- <a href="/v1.5/bundler_setup.html">Learn More: Bundler.setup</a>
- </div>
- <div class='bullet'>
- <div class='description'>
- Run an executable that comes with a gem in your bundle:
- </div>
- <pre class="highlight plaintext">$ bundle exec rspec spec/models</pre>
- <div class='notes'>
- <p>
- In some cases, running executables without <code>bundle exec</code>
- may work, if the executable happens to be installed in your system
- and does not pull in any gems that conflict with your bundle.
- </p>
- <p>
- However, this is unreliable and is the source of considerable pain.
- Even if it looks like it works, it may not work in the future or
- on another machine.
- </p>
- </div>
- </div>
- <div class='bullet'>
- <div class='description'>
- Finally, if you want a way to get a shortcut to gems in your bundle:
- </div>
- <pre class="highlight plaintext">$ bundle install --binstubs&#x000A;$ bin/rspec spec/models</pre>
- <div class='notes'>
- The executables installed into <code>bin</code> are scoped to the
- bundle, and will always work.
- </div>
- <a href="/v1.5/man/bundle-exec.1.html">Learn More: Executables</a>
- </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 href="/v1.3/">v1.3</a>
- <a class="current" 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>