I am using cockpit to manage my local ubuntu server:
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble
And was trying to extened my control through cockpit’s extended applications developed by 45labs
But found out the repository https://repo.45drives.com/setup does not support the latest LTS version 24.
Line 172:
if [[ “$distro_codename” != “focal” ]] && [[ “$distro_codename” != “jammy” ]] && [[ “$distro_codename” != “bookworm” ]]; then
echo “You are on an unsupported version of Debian/Ubuntu. Current repo support is Ubuntu 22 (jammy), Ubuntu 20(focal), and Debian 12 (Bookworm)”
exit 1
fi
My question is there any upcoming support for 24.04.3 coming soon or any workaround suggested to be able to use new applications in cockpit.
Please let me know if I you want any further information on my side.
We are not working on Ubuntu24 support at this time. We generally like to stay 1 major version behind for any bug fixes and issues that come up with the bleeding edge of software.
I’m sure once Ubuntu26 is released we will then start the process of creating Ubuntu24 packages.
Back when 22.04 wasn’t supported, I spent an afternoon figuring out an unofficial setup script. Assuming there aren’t any major breaking changes between the versions, we should be able to do the same for 24.04. Just know it will be unofficial and, therefore, unsupported.
We should be able to get started by changing line 172 which you called out above to ignore distro_codename for noble .
@dead - I was able to get this modified version of the script to setup the jammy repo on a Ubuntu 24.04 LXC. I was able to install cockpit and the 45Drives benchmark module successfully. You’re welcome to check it out for your own use. Just remember the script and this configuration is unofficial and unsupported.
setup.sh
#!/bin/bash
# 2021 Dawson Della Valle <ddellavalle@45drives.com>
# 2025 Brett Kelly <bkelly@45drives.com>
# v2
# OS Supported
# Rocky 7,8,9
# Ubuntu 20,22
# Debian Bookworm
# THIS SCRIPT HAS BEEN MODIFIED TO PROVIDE UNOFFICIAL OS SUPPORT FOR UBUNTU 24
# THE OFFICIAL SCRIPT CAN BE FOUND AT https://repo.45drives.com/setup
# USE AT YOUR OWN RISK
function get_base_distro() {
local distro=$(cat /etc/os-release | grep '^ID_LIKE=' | head -1 | sed 's/ID_LIKE=//' | sed 's/"//g' | awk '{print $1}')
if [ -z "$distro" ]; then
distro=$(cat /etc/os-release | grep '^ID=' | head -1 | sed 's/ID=//' | sed 's/"//g' | awk '{print $1}')
fi
echo $distro
}
function get_distro() {
local distro=$(cat /etc/os-release | grep '^ID=' | head -1 | sed 's/ID=//' | sed 's/"//g' | awk '{print $1}')
echo $distro
}
function get_version_id() {
local version_id=$(cat /etc/os-release | grep '^VERSION_ID=' | head -1 | sed 's/VERSION_ID=//' | sed 's/"//g' | awk '{print $1}' | awk 'BEGIN {FS="."} {print $1}')
echo $version_id
}
function get_codename() {
local distro=$(cat /etc/os-release | grep '^VERSION_CODENAME' | cut -d = -f2)
echo $distro
}
euid=$(id -u)
if [ $euid -ne 0 ]; then
echo -e '\nYou must be root to run this utility.\n'
exit 1
fi
distro=$(get_base_distro)
custom_distro=$(get_distro)
distro_version=$(get_version_id)
distro_codename=$(get_codename)
if [ "$distro" == "rhel" ] || [ "$distro" == "fedora" ]; then
echo "Detected RHEL-based distribution. Continuing..."
items=$(find /etc/yum.repos.d -name '45drives.repo')
if [[ -z "$items" ]]; then
echo "There were no existing 45Drives repos found. Setting up the new repo..."
else
count=$(echo "$items" | wc -l)
echo "There were $count 45Drives repo(s) found. Archiving..."
mkdir -p /opt/45drives/archives/repos
mv /etc/yum.repos.d/45drives.repo /opt/45drives/archives/repos/45drives-$(date +%Y-%m-%d).repo
echo "The obsolete repos have been archived to '/opt/45drives/archives/repos'. Setting up the new repo..."
fi
curl -sSL https://repo.45drives.com/repofiles/rocky/45drives-enterprise.repo -o /etc/yum.repos.d/45drives-enterprise.repo
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to download the new repo file. Please review the above error and try again."
exit 1
fi
el_id="none"
if [[ "$distro_version" == "7" ]] || [[ "$distro_version" == "8" ]] || [[ "$distro_version" == "9" ]]; then
el_id=$distro_version
fi
if [[ "$el_id" == "none" ]]; then
echo "Failed to detect the repo that would best suit your system. Please contact repo@45drives.com to get this issue rectified!"
exit 1
fi
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to update the new repo file. Please review the above error and try again."
exit 1
fi
echo "The new repo file has been downloaded. Updating your package lists..."
pm_bin=dnf
command -v dnf > /dev/null 2>&1 || {
pm_bin=yum
}
echo "Using the '$pm_bin' package manager..."
$pm_bin clean all -y
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to run '$pm_bin clean all -y'. Please review the above error and try again."
exit 1
fi
echo "Success! Your repo has been updated to our new server!"
exit 0
fi
if [ "$distro" == "debian" ]; then
echo "Detected Debian-based distribution. Continuing..."
items=$(find /etc/apt/sources.list.d -name 45drives.list)
if [[ -z "$items" ]]; then
echo "There were no existing 45Drives repos found. Setting up the new repo..."
else
count=$(echo "$items" | wc -l)
echo "There were $count 45Drives repo(s) found. Archiving..."
mkdir -p /opt/45drives/archives/repos
mv /etc/apt/sources.list.d/45drives.list /opt/45drives/archives/repos/45drives-$(date +%Y-%m-%d).list
echo "The obsolete repos have been archived to '/opt/45drives/archives/repos'. Setting up the new repo..."
fi
if [[ -f "/etc/apt/sources.list.d/45drives.sources" ]]; then
rm -f /etc/apt/sources.list.d/45drives.sources
fi
echo "Updating ca-certificates to ensure certificate validity..."
apt update
apt install ca-certificates -y
echo "Installing gpg..."
apt install gpg -y
wget -qO - https://repo.45drives.com/key/gpg.asc | gpg --pinentry-mode loopback --batch --yes --dearmor -o /usr/share/keyrings/45drives-archive-keyring.gpg
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to add the gpg key to the apt keyring. Please review the above error and try again."
exit 1
fi
echo "Installing curl..."
apt install curl -y
if [ "$distro_codename" = "noble" ]; then\
curl -sSL https://repo.45drives.com/repofiles/$custom_distro/45drives-enterprise-jammy.list -o /etc/apt/sources.list.d/45drives-enterprise-jammy.list
else
curl -sSL https://repo.45drives.com/repofiles/$custom_distro/45drives-enterprise-$distro_codename.list -o /etc/apt/sources.list.d/45drives-enterprise-$distro_codename.list
fi
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to download the new repo file. Please review the above error and try again."
exit 1
fi
if [[ "$distro_codename" != "focal" ]] && [[ "$distro_codename" != "jammy" ]] && [[ "$distro_codename" != "bookworm" ]] && [[ "$distro_codename" != "noble" ]]; then
echo "You are on an unsupported version of Debian/Ubuntu. Current repo support is Ubuntu 22 (jammy), Ubuntu 20(focal), and Debian 12 (Bookworm)"
exit 1
fi
echo "The new repo file has been downloaded. Updating your package lists..."
pm_bin=apt
$pm_bin update -y
res=$?
if [ "$res" -ne "0" ]; then
echo "Failed to run '$pm_bin update -y'. Please review the above error and try again."
exit 1
fi
echo "Success! Your repo has been updated to our new server!"
exit 0
fi
echo -e "\nThis command has been run on a distribution that is not supported by the 45Drives Team.\n\nIf you believe this is a mistake, please contact our team at repo@45drives.com!\n"
exit 1