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