Upgrading the server

Note
  • This chapter describes how to upgrade an existing installation for connected clients. For information on how to install a server that supports clients who want to work disconnected, see the "Installation" chapter of Using Helix Core Server for Distributed Versioning.
  • The examples in this chapter apply to both Windows and Linux/MacOS installations.

Older Helix Core applications continue to work with newer versions of Helix Core server. However, to enable your users to benefit from the features introduced in subsequent versions of the server, you must upgrade the server.

Tip
  • To check on the status of upgrade steps on a single server, use p4 upgrades
  • To check on the status of the specified upgrade step on a server and its upstream servers, use p4 upgrades -g
  • The Helix Core server log file might contain information about upgrade status. To see the location, use the p4 configure show P4LOG command. By default, the location is P4ROOT/log for Windows and /opt/perforce/servers/<server-instance>/logs/log for a Linux package installation.

Windows

Use the installer to install the new version.

Important

When planning the upgrade:

  • To upgrade Helix Server to a newer version, your Helix Server license file must be current.
  • You must back up your Helix Server installation (see Backup procedure) as part of any upgrade process.
  • Before you upgrade the Helix Server, read the release notes associated with your upgraded installation.

  • If running the Helix Versioning Engine as a service (p4s.exe) and upgrading manually rather than using the Windows installer, make sure that binary is also updated by copying p4d.exe to p4s.exe.

Linux

Note

It is possible for more than one server to run on the same host machine. On a Linux host, if you want to make sure all such servers use a specific version and do not upgrade to higher versions, consider this approach.

APT policy with Pin more /etc/apt/preferences.d/p4d
Package: helix-p4d
Pin: version 2019.2.*
Pin-Priority: 1000
Yum

See https://www.cyberciti.biz/faq/centos-redhat-fedora-yum-lock-package-version-command/

The --exclude directive allows for wildcards, whereas the yum versionlock command will not allow patch upgrades.

Alternatively, you can install a specific base package in a way that allows the package manager to automatically install the latest patch. For example,

apt-get install helix-p4d-base-r19.2
sudo update-alternatives --config helix-p4d

If you want to allow for version differences between the p4d services running on the same Linux host, you can use Helix Core Server Control (p4dctl) and set the version for each specific server. For example,

  • on server1, you might update the execute parameter in the p4dctl config to point to /opt/perforce/sbin/p4d.20.2
  • on server2, you might update the execute parameter in the p4dctl config to point to /opt/perforce/sbin/p4d.19.2
Tip

If the server was created by configure-helix-p4d.sh, and hence is managed by Helix Core Server Control (p4dctl), upgrade the database with this command:

p4dctl exec -t p4d <service name> -- -xu

This ensures the -xu is run with the correct user and environment. For more information, see exec in p4dctl commands.

Important

When planning the upgrade:

  • To upgrade Helix Server to a newer version, your Helix Server license file must be current.
  • You must back up your Helix Server installation (see Backup procedure) as part of any upgrade process.
  • If you have an installation of Git Connector, upgrade your Git Connector installation before upgrading your Helix Core servers. See Upgrading Git Connector.
  • Before you upgrade the Helix Server, read the release notes associated with your upgraded installation.

  • If you have a large number of ktext files (+k and +ko text files with RCS keyword expansion), contact Perforce Support for guidance on making the upgrade process faster.