Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Fetching packages with ezupdate

List the packages a package server offers on /update/packages/<server>, compare them with the local copies, fetch one (or fetch it again) into the local package repository from the page or with the fetch command, and…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/admin-gui/fetching-packages-with-ezupdate.md

On this page

Fetching packages with ezupdate

This page is for administrators who want a package from a package server on an installed site without downloading and uploading it by hand. ezupdate reads the server's index.xml, shows what it offers next to what you have, and fetches the archive straight into the local package repository. Installing it is then done on the kernel's package pages.

Updates and packages, Package servers
Updates and packages, Package servers

Contents

  1. Open a server's packages
  2. The list
  3. Fetch a package
  4. Then install it
  5. From the command line
  6. Limits and errors

Open a server's packages

On Setup > Updates and packages > Package servers, press Packages on a server's row: /update/packages/<server>. Without a server name the first one, the built-in server of package.ini, is shown. Viewing needs update/ezupdate; fetching needs update/manage (checked when you press the button, not only by hiding it).

The list

The page "Packages on %server" shows every <package> of the server's index.xml, sorted by name:

ColumnFrom
Packagethe name attribute (and summary)
Typethe type attribute: site, contentclass, contentobject, sitestyle, extension
Local copythe version of the package of that name in the local repository (eZPackage::getVersion()), or none
ActionsFetch, or Fetch again and Open (the local package's page, /package/view/full/<name>) when there is a local copy

A Filter narrows the list as you type. "This server lists no packages, or its index.xml could not be read." means the index was empty, unreachable or not a <packages> document.

Fetch a package

  1. Press Fetch on its row ("Fetching..." while it runs).
  2. ezupdate downloads the archive from the url of the index entry and imports it with eZPackage::import(), the same import as the upload page, with the same archive checks.
  3. The page says "The package %package %version is in the local package repository now."

Fetch again asks "Replace the local copy with the one from the server?" and then removes the local package before it fetches. Removing the local copy does not uninstall what it installed.

The archive is written to a temporary file in the cache directory (ezupdate/<name>.ezpkg) and deleted after the import. The package lands in the repository its <vendor> names, for the 7x packages var/storage/packages/7x/.

Then install it

Fetching only imports. Open Setup > Packages, find the package (it is "Not installed" if it has install items), open its page and press Install (Installing and uninstalling). A site package fetched this way is "Imported only": it is used by the setup wizard, the kickstarter or exp:install, for example for an offline install, not installed from the package pages.

From the command line

php extension/ezupdate/bin/php/ezupdate.php packages                    # the first server's packages
php extension/ezupdate/bin/php/ezupdate.php packages acme
php extension/ezupdate/bin/php/ezupdate.php fetch acme acme_site_democontent
php extension/ezupdate/bin/php/ezupdate.php fetch acme acme_site_democontent --replace

fetch <server> <package> [--replace] "download[s] a .ezpkg into the local package repository"; --replace replaces a package already there. Then install with php ezpm.php install <name> or on the package's page.

Limits and errors

From extension/ezupdate/classes/ezupdatepackageservers.php:

CheckLimit
Transportthe PHP curl extension, HTTPS only, also for redirects (at most 5)
index.xmlat most 1 MiB, root element <packages>
archiveat most 256 MiB; its url must be https://
time15 seconds to connect, 300 seconds in all
proxysite.ini [ProxySettings] ProxyServer when set
MessageMeans
"The package is already in the local repository."use Fetch again or --replace
"The server does not offer this package."the name is not in the server's index
"The package address must be an https:// URL."the index entry's url is not HTTPS
"Could not fetch %url: %reason"the download failed; the reason is curl's
"The server did not answer with a package index."index.xml is not a <packages> document
"The file is not a valid package."the import refused the archive
"The PHP curl extension is needed to reach a server."install or enable curl for PHP

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x