From d78ce6dc393c295b46e39fcff1ce20e1825fb161 Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Wed, 10 Sep 2025 18:27:17 +0000 Subject: [PATCH] upgrade to nexus 3.84.0-03 --- README.md | 13 ++++++++++--- provision/provision-nexus.sh | 4 ++-- provision/provision-nexus/Makefile | 2 +- provision/provision-nexus/pom.xml | 2 +- provision/use-apt-repository.sh | 11 +++++++++-- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ea8b085..04acb79 100644 --- a/README.md +++ b/README.md @@ -152,14 +152,21 @@ The Web based H2 Database Console is available at https://nexus.example.com/h2-c You can also access the database cli shell as: ```bash -sudo su -l # switch to the root user. +sudo -i # switch to the root user. systemctl stop nexus # make sure nexus is not running while you use the database. su -s /bin/bash nexus # switch to the nexus user. -nexus_home=/opt/nexus/nexus-3.83.2-01 # make sure you have the correct version here. +nexus_home=/opt/nexus/nexus-3.84.0-03 # make sure you have the correct version here. nexus_data="$(realpath $nexus_home/../sonatype-work/nexus3)" +install -d $nexus_data/../tmp +rm -f $nexus_data/../tmp/h2-*.jar +unzip \ + -j \ + -d $nexus_data/../tmp \ + $nexus_home/bin/sonatype-nexus-repository-*.jar \ + 'BOOT-INF/lib/h2-*.jar' function h2-shell { java \ - -cp $nexus_home/system/com/h2database/h2/*/h2*.jar \ + -cp $nexus_data/../tmp/h2-*.jar \ org.h2.tools.Shell \ -url jdbc:h2:$nexus_data/db/nexus } diff --git a/provision/provision-nexus.sh b/provision/provision-nexus.sh index 24cb8d0..810cf40 100644 --- a/provision/provision-nexus.sh +++ b/provision/provision-nexus.sh @@ -35,12 +35,12 @@ pushd /opt/nexus # see https://help.sonatype.com/en/download-archives---repository-manager-3.html # see https://help.sonatype.com/en/release-notes.html # see https://help.sonatype.com/en/sonatype-nexus-repository.html -nexus_version=3.83.2-01 +nexus_version=3.84.0-03 nexus_home=/opt/nexus/nexus-$nexus_version nexus_tarball=nexus-$nexus_version-linux-x86_64.tar.gz nexus_download_url=https://download.sonatype.com/nexus/3/$nexus_tarball wget -q $nexus_download_url -tar xf $nexus_tarball # NB this creates the $nexus_home (e.g. nexus-3.83.2-01) and sonatype-work directories. +tar xf $nexus_tarball # NB this creates the $nexus_home (e.g. nexus-3.84.0-03) and sonatype-work directories. rm $nexus_tarball sed -i -E 's,#!.+,#!/usr/bin/bash,g' "$nexus_home/bin/nexus" install -d -o nexus -g nexus -m 700 .java # java preferences are saved here (the default java.util.prefs.userRoot preference). diff --git a/provision/provision-nexus/Makefile b/provision/provision-nexus/Makefile index eba06c2..b40c49c 100644 --- a/provision/provision-nexus/Makefile +++ b/provision/provision-nexus/Makefile @@ -17,7 +17,7 @@ binaries: binaries-download binaries-download: mkdir -p binaries - wget -qO- https://download.sonatype.com/nexus/3/nexus-3.83.2-01-unix.tar.gz \ + wget -qO- https://download.sonatype.com/nexus/3/nexus-3.84.0-03-unix.tar.gz \ | tar xzf - --strip-components 1 -C binaries clean: diff --git a/provision/provision-nexus/pom.xml b/provision/provision-nexus/pom.xml index 1315f88..4a0993c 100644 --- a/provision/provision-nexus/pom.xml +++ b/provision/provision-nexus/pom.xml @@ -8,7 +8,7 @@ 1.0-SNAPSHOT - 3.83.2-01 + 3.84.0-03 diff --git a/provision/use-apt-repository.sh b/provision/use-apt-repository.sh index b4551af..9de1bae 100644 --- a/provision/use-apt-repository.sh +++ b/provision/use-apt-repository.sh @@ -34,9 +34,16 @@ curl \ nexus_apt_hosted_keyring_path="/etc/apt/keyrings/$nexus_domain-apt-hosted.gpg" gpg --dearmor -o "$nexus_apt_hosted_keyring_path" "/etc/apt/sources.list.d/$nexus_domain-apt-hosted.list" -apt-get update +# NB for some odd reason, nexus 3.84.0-03, does not immediately sign the +# repository metadata after a package is uploaded, so to prevent the +# following error, we loop until apt-get update succeeds. +# E: The repository 'https://nexus.example.com/repository/apt-hosted jammy Release' is not signed. +# see https://github.com/sonatype/nexus-public/issues/725 +while ! apt-get update; do sleep 5; done + +# install the hello-world package. apt-get install -y hello-world apt-cache show hello-world apt-cache policy hello-world