title: Updating packages in Emacs
body: <p>I have the following setup for packages (not sure if there is a better recommended one):</p>
  
  <pre><code>(require 'package)
  (setq package-archives '(("ELPA" . "http://tromey.com/elpa/") 
                            ("gnu" . "http://elpa.gnu.org/packages/")
                            ("marmalade" . "http://marmalade-repo.org/packages/")))
  
  ; Apparently needed for the package auto-complete (why?)
  (add-to-list 'package-archives
               '("melpa" . "http://melpa.milkbox.net/packages/") t)
  
  (package-initialize)
  (setq url-http-attempt-keepalives nil)
  </code></pre>
  
  <p>I have three questions related to the installation and updating of packages.</p>
  
  <p><strong>Q1.</strong> Is there a way to update the list of  available packages (and most recent versions) and update a specific package?</p>
  
  <p><strong>Q.2</strong> What is the difference between the following package sources?:</p>
  
  <ul>
  <li>ELPA, </li>
  <li>GNU</li>
  <li>marmalade </li>
  <li>melpa</li>
  </ul>
  
  <p><strong>Q.3</strong> Does it matter the order in which they are added to <code>package-archives</code>?</p>