Function: package-upgrade

package-upgrade is an autoloaded, interactive and byte-compiled function defined in package.el.gz.

Signature

(package-upgrade NAME)

Documentation

Upgrade package NAME if a newer version exists.

Currently, packages which are part of the Emacs distribution cannot be upgraded that way. To enable upgrades of such a package using this command, first upgrade the package to a newer version from ELPA by using \<package-menu-mode-map>M-x package-menu-mark-install (package-menu-mark-install) after M-x list-packages (list-packages).

View in manual

Probably introduced at or before Emacs version 29.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
;;;###autoload
(defun package-upgrade (name)
  "Upgrade package NAME if a newer version exists.

Currently, packages which are part of the Emacs distribution
cannot be upgraded that way.  To enable upgrades of such a
package using this command, first upgrade the package to a
newer version from ELPA by using `\\<package-menu-mode-map>\\[package-menu-mark-install]' after `\\[list-packages]'."
  (interactive
   (list (completing-read
          "Upgrade package: " (package--upgradeable-packages) nil t)))
  (let* ((package (if (symbolp name)
                      name
                    (intern name)))
         (pkg-desc (cadr (assq package package-alist))))
    (if (package-vc-p pkg-desc)
        (package-vc-upgrade pkg-desc)
      (package-delete pkg-desc 'force 'dont-unselect)
      (package-install package 'dont-select))))