Archived
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# Remove the Proxmox/Ceph enterprise apt sources (which fail on apt update
|
||||
# without a paid subscription) and switch to the no-subscription repo.
|
||||
# Handles both the legacy one-line .list format and the deb822 .sources
|
||||
# format current PVE installers write.
|
||||
# Idempotent - safe to re-run. Run as root on the PVE host.
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=lib/common.sh
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
require_root
|
||||
|
||||
SOURCES_DIR="/etc/apt/sources.list.d"
|
||||
|
||||
# Any sources file pointing at the enterprise host gets moved out of apt's
|
||||
# way entirely (renamed .disabled) rather than commented out in place -
|
||||
# apt only reads *.sources/*.list, so this fully removes it from
|
||||
# consideration while keeping a copy on disk for reference.
|
||||
for f in "${SOURCES_DIR}"/*.sources "${SOURCES_DIR}"/*.list; do
|
||||
[ -f "$f" ] || continue
|
||||
grep -qi 'enterprise.proxmox.com' "$f" 2>/dev/null || continue
|
||||
mv "$f" "${f}.disabled"
|
||||
echo "Removed enterprise source (renamed to .disabled): $f"
|
||||
done
|
||||
|
||||
write_if_changed "${SOURCES_DIR}/pve-no-subscription.sources" "Types: deb
|
||||
URIs: http://download.proxmox.com/debian/pve
|
||||
Suites: $(pve_codename)
|
||||
Components: pve-no-subscription
|
||||
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg"
|
||||
|
||||
# Clean up a legacy-format no-subscription file from a previous run of an
|
||||
# older version of this script, to avoid two sources for the same repo.
|
||||
LEGACY_NOSUB="${SOURCES_DIR}/pve-no-subscription.list"
|
||||
if [ -f "$LEGACY_NOSUB" ]; then
|
||||
rm -f "$LEGACY_NOSUB"
|
||||
echo "Removed superseded $LEGACY_NOSUB"
|
||||
fi
|
||||
|
||||
apt-get update
|
||||
echo "Repo switched. Review 'apt list --upgradable' before upgrading."
|
||||
Reference in New Issue
Block a user