
Your {page-component-title} repository is defined in the `/etc/yum.repos.d/` directory.
ifeval::["{page-component-title}" == "Horizon"]
The file may be named `opennms-repo-stable-<OSversion>.repo`, but it is not guaranteed to be.
endif::[]
ifeval::["{page-component-title}" == "Meridian"]
The file may be named `{page-component-title}.repo`, but it is not guaranteed to be.
endif::[]

. Log in as the root user or elevate your permissions to be the root user
ifeval::["{page-component-title}" == "Meridian"]
. Open your {page-component-title} repository config file with a text editor.
. Change the repository's `baseurl` from the old release family to the new release family.
The `baseurl` should resemble `/https://REPO_USER:REPO_PASS@meridian.opennms.com/packages/{latest-meridian-stable}/stable/rhel8`.
The `REPO_USER` and `REPO_PASS` values are your {page-component-title} subscription credentials.
endif::[]

. Enable auto updates:
+
[source, console]
----
yum -y install yum-utils
yum-config-manager --enable opennms-repo-stable-*
----

. Purge any cached yum data:
+
[source, console]
----
yum clean all
----

. Make a backup copy of your config:
+
[source, console]
----
rsync -Ppav ${OPENNMS_HOME}/etc /tmp/etc.orig
rsync -Ppav ${OPENNMS_HOME}/jetty-webapps/opennms/WEB-INF /tmp/opennms-web-inf
----

. Upgrade the {page-component-title} packages to the newest version:
+
[source, console]
----
yum -y upgrade opennms
----

. Disable auto updates:
+
[source, console]
----
yum-config-manager --disable opennms-repo-stable-*
----

. Upgrade Java 17 to the latest release:
+
[source, console]
----
yum -y install java-21-openjdk java-21-openjdk-devel
----

. Use the `runjava` command to set the JVM that {page-component-title} will use:
+
[source, console]
----
${OPENNMS_HOME}/bin/runjava -s
----

. Check for configuration file changes and update accordingly using the files you backed up in xref:deployment:upgrade/diff.adoc#run_diff[identify changed configuration files].
+
NOTE: If you upgrade in place, {page-component-title} renames any shipped config that conflicts with an existing user-modified config to `.rpmnew` or `.rpmsave`.
Inspect these files manually and reconcile any 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.

. Run the {page-component-title} installer:
+
[source, console]
----
${OPENNMS_HOME}/bin/install -dis
----
+
The upgrade may take some time.
An "Upgrade completed successfully!" message confirms that the upgrade has completed.
If you do not get this message, check the output of the install command for any errors.

. Clear the Karaf cache:
+
[source, console]
----
yes | ${OPENNMS_HOME}/bin/fix-karaf-setup.sh
----

. Start {page-component-title}:
+
[source, console]
----
systemctl start opennms.service
----
+
TIP: `tail -F $\{OPENNMS_HOME}/logs/manager.log` shows the {page-component-title} startup progress.

. The upgrade is completed and operation resumes.

IMPORTANT: Make sure that you clear your browser's cache before using the {page-component-title} web UI against the upgraded version.
This is especially important for pages that use JavaScript heavily (for example, the Requisitions UI).
