This procedure describes how to do a basic Horizon upgrade. You may need to complete additional steps to upgrade in a more complex setup (running more than one OpenNMS instance, database migration requirements, and/or age of current version).

 Make sure you complete the tasks in the before you begin section before starting. In addition, if system requirements in the new version require you to upgrade your PostgreSQL database, you must do this before the Horizon upgrade.

## Update and verify the Horizon repository

• CentOS/RHEL

• Debian/Ubuntu

Your Horizon repository is defined in a file in `/etc/yum.repos.d/`. It most likely will be named `opennms-repo-stable-<OSversion>.repo`, but is not guaranteed to be.

1. Become root.

``````yum -y install yum-utils
yum-config-manager --enable opennms-repo-stable-*``````
3. Purge any cached yum data:

``yum clean all``
4. Make a backup copy of your OpenNMS config:

``````rsync -Ppav ${OPENNMS_HOME}/etc /tmp/etc.orig rsync -Ppav${OPENNMS_HOME}/jetty-webapps/opennms/WEB-INF /tmp/opennms-web-inf``````
5. Upgrade the Horizon packages to the new version:

``yum -y upgrade opennms``

``yum-config-manager --disable opennms-repo-stable-*``
7. Upgrade Java 11 to the latest release:

``yum -y install java-11-openjdk java-11-openjdk-devel``
8. Execute `runjava` to update which JVM Horizon will use:

``${OPENNMS_HOME}/bin/runjava -s`` 9. Check for configuration file changes, and update accordingly, using the files you backed up in Idenfity Changed Configuration Files.  If you upgrade in place, OpenNMS renames any shipped config that conflicts with an existing user-modified config to `.rpmnew` or `.rpmsave`. Inspect these files manually and reconcile the differences. Use `diff -Bbw` and `diff -y` to look for changes. If any `.rpmnew` or `.rpmsave` files exist within the configuration directory, services will not start. 10. Run the Horizon installer: ``${OPENNMS_HOME}/bin/install -dis``

The upgrade may take some time. The message `Upgrade completed successfully!` will confirm the upgrade has completed. If you do not get this message, check the output of the install command for any error messages.

11. Clear the Karaf cache:

``yes | ${OPENNMS_HOME}/bin/fix-karaf-setup.sh`` 12. Start OpenNMS Horizon: ``systemctl start opennms.service``  `tail -F${OPENNMS_HOME}/logs/manager.log` can illustrate the current point in the startup process Horizon is.
13. Upgrade is complete and operation is resumed.

Your Horizon repository is defined in a file in `/etc/apt/sources.list`.

It may be named `opennms-repo-stable-<OSversion>.repo` but is not guaranteed to be.

1. Become root.

``````sudo apt-mark unhold libopennms-java \
libopennmsdeps-java \
opennms-common \
opennms-db``````
3. Purge any cached data:

``apt-get clean``
4. Make a backup copy of your OpenNMS config:

``````rsync -Ppav ${OPENNMS_HOME}/etc /tmp/etc.orig rsync -Ppav${OPENNMS_HOME}/jetty-webapps/opennms/WEB-INF /tmp/opennms-web-inf``````
5. Upgrade the Horizon packages to the new version:

``apt-get upgrade opennms``

``````sudo apt-mark hold libopennms-java \
libopennmsdeps-java \
opennms-common \
opennms-db``````
7. Upgrade Java 11 to the latest release:

``apt-get install java-11-openjdk java-11-openjdk-devel``
8. Execute `runjava` to update which JVM Horizon will use:

``${OPENNMS_HOME}/bin/runjava -s`` 9. Check for configuration file changes, and update accordingly, using the files you backed up in Idenfity Changed Configuration Files.  Debian prompts you to keep or overwrite your files during the `apt upgrade` process. Inspect these files manually and reconcile the differences. Use `diff -Bbw` and `diff -y` to look for changes. 10. Run the Horizon installer: ``${OPENNMS_HOME}/bin/install -dis``

The upgrade may take some time. The message `Upgrade completed successfully!` will confirm the upgrade has completed. If you do not get this message, check the output of the install command for any error messages.

11. Clear the Karaf cache:

``yes | ${OPENNMS_HOME}/bin/fix-karaf-setup.sh`` 12. Start OpenNMS Horizon: ``systemctl start opennms.service``  `tail -F${OPENNMS_HOME}/logs/manager.log` can illustrate the current point in the startup process Horizon is.
13. Upgrade is complete and operation is resumed.