mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-18 07:53:01 +01:00
Compare commits
10 Commits
pr-update-
...
MickLesk-p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9d17ca121 | ||
|
|
d01f5c7a6f | ||
|
|
4aa83fd98e | ||
|
|
6747f0c340 | ||
|
|
8ef2c445c8 | ||
|
|
e4a7ed6965 | ||
|
|
c69dae5326 | ||
|
|
fee4617802 | ||
|
|
339301947b | ||
|
|
5df3c2cd34 |
@@ -423,11 +423,14 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-03-17
|
||||||
|
|
||||||
## 2026-03-16
|
## 2026-03-16
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|
||||||
- Anytype-Server ([#12974](https://github.com/community-scripts/ProxmoxVE/pull/12974))
|
- Gluetun ([#12976](https://github.com/community-scripts/ProxmoxVE/pull/12976))
|
||||||
|
- Anytype-Server ([#12974](https://github.com/community-scripts/ProxmoxVE/pull/12974))
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
|||||||
6
ct/headers/gluetun
Normal file
6
ct/headers/gluetun
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
________ __
|
||||||
|
/ ____/ /_ _____ / /___ ______
|
||||||
|
/ / __/ / / / / _ \/ __/ / / / __ \
|
||||||
|
/ /_/ / / /_/ / __/ /_/ /_/ / / / /
|
||||||
|
\____/_/\__,_/\___/\__/\__,_/_/ /_/
|
||||||
|
|
||||||
19
ct/immich.sh
19
ct/immich.sh
@@ -76,7 +76,7 @@ EOF
|
|||||||
SOURCE_DIR=${STAGING_DIR}/image-source
|
SOURCE_DIR=${STAGING_DIR}/image-source
|
||||||
cd /tmp
|
cd /tmp
|
||||||
if [[ -f ~/.intel_version ]]; then
|
if [[ -f ~/.intel_version ]]; then
|
||||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
|
curl_with_retry "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile" "Dockerfile"
|
||||||
readarray -t INTEL_URLS < <(
|
readarray -t INTEL_URLS < <(
|
||||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
||||||
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
||||||
@@ -85,7 +85,7 @@ EOF
|
|||||||
if [[ "$INTEL_RELEASE" != "$(cat ~/.intel_version)" ]]; then
|
if [[ "$INTEL_RELEASE" != "$(cat ~/.intel_version)" ]]; then
|
||||||
msg_info "Updating Intel iGPU dependencies"
|
msg_info "Updating Intel iGPU dependencies"
|
||||||
for url in "${INTEL_URLS[@]}"; do
|
for url in "${INTEL_URLS[@]}"; do
|
||||||
curl -fsSLO "$url"
|
curl_with_retry "$url" "$(basename "$url")"
|
||||||
done
|
done
|
||||||
$STD apt-mark unhold libigdgmm12
|
$STD apt-mark unhold libigdgmm12
|
||||||
$STD apt install -y --allow-downgrades ./libigdgmm12*.deb
|
$STD apt install -y --allow-downgrades ./libigdgmm12*.deb
|
||||||
@@ -134,8 +134,6 @@ EOF
|
|||||||
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
|
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
|
||||||
fi
|
fi
|
||||||
ensure_dependencies ccache gcc-13 g++-13
|
ensure_dependencies ccache gcc-13 g++-13
|
||||||
export CC=gcc-13
|
|
||||||
export CXX=g++-13
|
|
||||||
|
|
||||||
INSTALL_DIR="/opt/${APP}"
|
INSTALL_DIR="/opt/${APP}"
|
||||||
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
|
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
|
||||||
@@ -168,7 +166,7 @@ EOF
|
|||||||
|
|
||||||
setup_uv
|
setup_uv
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR"
|
||||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)"
|
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1] | split("+")[0]' ${SRC_DIR}/package.json)"
|
||||||
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||||
|
|
||||||
msg_info "Updating Immich web and microservices"
|
msg_info "Updating Immich web and microservices"
|
||||||
@@ -219,6 +217,7 @@ EOF
|
|||||||
chown -R immich:immich "$INSTALL_DIR"
|
chown -R immich:immich "$INSTALL_DIR"
|
||||||
chown immich:immich ./uv.lock
|
chown immich:immich ./uv.lock
|
||||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||||
|
export UV_HTTP_TIMEOUT=300
|
||||||
if [[ -f ~/.openvino ]]; then
|
if [[ -f ~/.openvino ]]; then
|
||||||
ML_PYTHON="python3.13"
|
ML_PYTHON="python3.13"
|
||||||
msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning"
|
msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning"
|
||||||
@@ -229,7 +228,10 @@ EOF
|
|||||||
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
||||||
msg_info "Updating HW-accelerated machine-learning"
|
msg_info "Updating HW-accelerated machine-learning"
|
||||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p "${ML_PYTHON}" --managed-python
|
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p "${ML_PYTHON}" --managed-python
|
||||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python
|
for attempt in $(seq 1 3); do
|
||||||
|
$STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break
|
||||||
|
[[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10
|
||||||
|
done
|
||||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
||||||
msg_ok "Updated HW-accelerated machine-learning"
|
msg_ok "Updated HW-accelerated machine-learning"
|
||||||
else
|
else
|
||||||
@@ -241,7 +243,10 @@ EOF
|
|||||||
done
|
done
|
||||||
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
||||||
msg_info "Updating machine-learning"
|
msg_info "Updating machine-learning"
|
||||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python
|
for attempt in $(seq 1 3); do
|
||||||
|
$STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break
|
||||||
|
[[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10
|
||||||
|
done
|
||||||
msg_ok "Updated machine-learning"
|
msg_ok "Updated machine-learning"
|
||||||
fi
|
fi
|
||||||
cd "$SRC_DIR"
|
cd "$SRC_DIR"
|
||||||
|
|||||||
@@ -32,13 +32,13 @@ if [ -d /dev/dri ]; then
|
|||||||
$STD apt install -y --no-install-recommends patchelf
|
$STD apt install -y --no-install-recommends patchelf
|
||||||
tmp_dir=$(mktemp -d)
|
tmp_dir=$(mktemp -d)
|
||||||
$STD pushd "$tmp_dir"
|
$STD pushd "$tmp_dir"
|
||||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
|
curl_with_retry "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile" "Dockerfile"
|
||||||
readarray -t INTEL_URLS < <(
|
readarray -t INTEL_URLS < <(
|
||||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
||||||
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
||||||
)
|
)
|
||||||
for url in "${INTEL_URLS[@]}"; do
|
for url in "${INTEL_URLS[@]}"; do
|
||||||
curl -fsSLO "$url"
|
curl_with_retry "$url" "$(basename "$url")"
|
||||||
done
|
done
|
||||||
$STD apt install -y ./libigdgmm12*.deb
|
$STD apt install -y ./libigdgmm12*.deb
|
||||||
rm ./libigdgmm12*.deb
|
rm ./libigdgmm12*.deb
|
||||||
@@ -154,10 +154,8 @@ sed -i "s/^#shared_preload.*/shared_preload_libraries = 'vchord.so'/" /etc/postg
|
|||||||
systemctl restart postgresql.service
|
systemctl restart postgresql.service
|
||||||
PG_DB_NAME="immich" PG_DB_USER="immich" PG_DB_GRANT_SUPERUSER="true" PG_DB_SKIP_ALTER_ROLE="true" setup_postgresql_db
|
PG_DB_NAME="immich" PG_DB_USER="immich" PG_DB_GRANT_SUPERUSER="true" PG_DB_SKIP_ALTER_ROLE="true" setup_postgresql_db
|
||||||
|
|
||||||
msg_info "Installing GCC-13 (workaround for GCC-14 ICE on Trixie)"
|
msg_info "Installing GCC-13 (available as fallback compiler)"
|
||||||
$STD apt install -y gcc-13 g++-13
|
$STD apt install -y gcc-13 g++-13
|
||||||
export CC=gcc-13
|
|
||||||
export CXX=g++-13
|
|
||||||
msg_ok "Installed GCC-13"
|
msg_ok "Installed GCC-13"
|
||||||
|
|
||||||
msg_warn "Compiling Custom Photo-processing Libraries (can take anywhere from 15min to 2h)"
|
msg_warn "Compiling Custom Photo-processing Libraries (can take anywhere from 15min to 2h)"
|
||||||
@@ -296,7 +294,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
|||||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.5.6" "$SRC_DIR"
|
fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.5.6" "$SRC_DIR"
|
||||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)"
|
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1] | split("+")[0]' ${SRC_DIR}/package.json)"
|
||||||
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||||
|
|
||||||
msg_info "Installing Immich (patience)"
|
msg_info "Installing Immich (patience)"
|
||||||
@@ -346,6 +344,7 @@ cd "$SRC_DIR"/machine-learning
|
|||||||
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
|
$STD useradd -U -s /usr/sbin/nologin -r -M -d "$INSTALL_DIR" immich
|
||||||
mkdir -p "$ML_DIR" && chown -R immich:immich "$INSTALL_DIR"
|
mkdir -p "$ML_DIR" && chown -R immich:immich "$INSTALL_DIR"
|
||||||
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
||||||
|
export UV_HTTP_TIMEOUT=300
|
||||||
if [[ -f ~/.openvino ]]; then
|
if [[ -f ~/.openvino ]]; then
|
||||||
ML_PYTHON="python3.13"
|
ML_PYTHON="python3.13"
|
||||||
msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning"
|
msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning"
|
||||||
@@ -356,7 +355,10 @@ if [[ -f ~/.openvino ]]; then
|
|||||||
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
||||||
msg_info "Installing HW-accelerated machine-learning"
|
msg_info "Installing HW-accelerated machine-learning"
|
||||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p "${ML_PYTHON}" --managed-python
|
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p "${ML_PYTHON}" --managed-python
|
||||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python
|
for attempt in $(seq 1 3); do
|
||||||
|
$STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break
|
||||||
|
[[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10
|
||||||
|
done
|
||||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
||||||
msg_ok "Installed HW-accelerated machine-learning"
|
msg_ok "Installed HW-accelerated machine-learning"
|
||||||
else
|
else
|
||||||
@@ -368,7 +370,10 @@ else
|
|||||||
done
|
done
|
||||||
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
msg_ok "Pre-installed Python ${ML_PYTHON}"
|
||||||
msg_info "Installing machine-learning"
|
msg_info "Installing machine-learning"
|
||||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python
|
for attempt in $(seq 1 3); do
|
||||||
|
$STD sudo --preserve-env=VIRTUAL_ENV,UV_HTTP_TIMEOUT -nu immich uv sync --extra cpu --no-dev --active --link-mode copy -n -p "${ML_PYTHON}" --managed-python && break
|
||||||
|
[[ $attempt -lt 3 ]] && msg_warn "uv sync attempt $attempt failed, retrying..." && sleep 10
|
||||||
|
done
|
||||||
msg_ok "Installed machine-learning"
|
msg_ok "Installed machine-learning"
|
||||||
fi
|
fi
|
||||||
cd "$SRC_DIR"
|
cd "$SRC_DIR"
|
||||||
@@ -385,10 +390,10 @@ ln -s "$UPLOAD_DIR" "$ML_DIR"/upload
|
|||||||
|
|
||||||
msg_info "Installing GeoNames data"
|
msg_info "Installing GeoNames data"
|
||||||
cd "$GEO_DIR"
|
cd "$GEO_DIR"
|
||||||
curl -fsSLZ -O "https://download.geonames.org/export/dump/admin1CodesASCII.txt" \
|
curl_with_retry "https://download.geonames.org/export/dump/admin1CodesASCII.txt" "admin1CodesASCII.txt"
|
||||||
-O "https://download.geonames.org/export/dump/admin2Codes.txt" \
|
curl_with_retry "https://download.geonames.org/export/dump/admin2Codes.txt" "admin2Codes.txt"
|
||||||
-O "https://download.geonames.org/export/dump/cities500.zip" \
|
curl_with_retry "https://download.geonames.org/export/dump/cities500.zip" "cities500.zip"
|
||||||
-O "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/v5.1.2/geojson/ne_10m_admin_0_countries.geojson"
|
curl_with_retry "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/v5.1.2/geojson/ne_10m_admin_0_countries.geojson" "ne_10m_admin_0_countries.geojson"
|
||||||
unzip -q cities500.zip
|
unzip -q cities500.zip
|
||||||
date --iso-8601=seconds | tr -d "\n" >geodata-date.txt
|
date --iso-8601=seconds | tr -d "\n" >geodata-date.txt
|
||||||
rm cities500.zip
|
rm cities500.zip
|
||||||
|
|||||||
@@ -2174,6 +2174,49 @@ get_latest_gh_tag() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Checks for new GitHub tag (for repos without releases).
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# - Uses get_latest_gh_tag to fetch the latest tag
|
||||||
|
# - Compares it to a local cached version (~/.<app>)
|
||||||
|
# - If newer, sets global CHECK_UPDATE_RELEASE and returns 0
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# if check_for_gh_tag "guacd" "apache/guacamole-server"; then
|
||||||
|
# fetch_and_deploy_gh_tag "guacd" "apache/guacamole-server" "/opt/guacamole-server"
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - For repos that only publish tags, not GitHub Releases
|
||||||
|
# - Same interface as check_for_gh_release
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
check_for_gh_tag() {
|
||||||
|
local app="$1"
|
||||||
|
local repo="$2"
|
||||||
|
local prefix="${3:-}"
|
||||||
|
local app_lc=""
|
||||||
|
app_lc="$(echo "${app,,}" | tr -d ' ')"
|
||||||
|
local current_file="$HOME/.${app_lc}"
|
||||||
|
|
||||||
|
msg_info "Checking for update: ${app}"
|
||||||
|
|
||||||
|
local latest=""
|
||||||
|
latest=$(get_latest_gh_tag "$repo" "$prefix") || return 1
|
||||||
|
|
||||||
|
local current=""
|
||||||
|
[[ -f "$current_file" ]] && current="$(<"$current_file")"
|
||||||
|
|
||||||
|
if [[ -z "$current" || "$current" != "$latest" ]]; then
|
||||||
|
CHECK_UPDATE_RELEASE="$latest"
|
||||||
|
msg_ok "Update available: ${app} ${current:-not installed} → ${latest}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_ok "No update available: ${app} (${latest})"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# INSTALL FUNCTIONS
|
# INSTALL FUNCTIONS
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
@@ -4676,16 +4719,9 @@ _setup_rocm() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# AMDGPU driver repository (append to same keyring)
|
# Note: The amdgpu/latest/ubuntu repo (kernel driver packages) is intentionally
|
||||||
{
|
# omitted — kernel drivers are managed by the Proxmox host, not the LXC container.
|
||||||
echo ""
|
# Only the ROCm userspace compute stack is needed inside the container.
|
||||||
echo "Types: deb"
|
|
||||||
echo "URIs: https://repo.radeon.com/amdgpu/latest/ubuntu"
|
|
||||||
echo "Suites: ${ROCM_REPO_CODENAME}"
|
|
||||||
echo "Components: main"
|
|
||||||
echo "Architectures: amd64"
|
|
||||||
echo "Signed-By: /etc/apt/keyrings/rocm.gpg"
|
|
||||||
} >>/etc/apt/sources.list.d/rocm.sources
|
|
||||||
|
|
||||||
# Pin ROCm packages to prefer radeon repo
|
# Pin ROCm packages to prefer radeon repo
|
||||||
cat <<EOF >/etc/apt/preferences.d/rocm-pin-600
|
cat <<EOF >/etc/apt/preferences.d/rocm-pin-600
|
||||||
@@ -4694,7 +4730,26 @@ Pin: release o=repo.radeon.com
|
|||||||
Pin-Priority: 600
|
Pin-Priority: 600
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
$STD apt update || msg_warn "apt update failed (AMD repo may be temporarily unavailable) — continuing anyway"
|
# apt update with retry — repo.radeon.com CDN can be mid-sync (transient size mismatches).
|
||||||
|
# Run with ERR trap disabled so a transient failure does not abort the entire install.
|
||||||
|
local _apt_ok=0
|
||||||
|
for _attempt in 1 2 3; do
|
||||||
|
if (
|
||||||
|
set +e
|
||||||
|
apt-get update -qq 2>&1
|
||||||
|
exit $?
|
||||||
|
) 2>/dev/null; then
|
||||||
|
_apt_ok=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
msg_warn "apt update failed (attempt ${_attempt}/3) — AMD repo may be temporarily unavailable, retrying in 30s…"
|
||||||
|
sleep 30
|
||||||
|
done
|
||||||
|
if [[ $_apt_ok -eq 0 ]]; then
|
||||||
|
msg_warn "apt update still failing after 3 attempts — skipping ROCm install"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Install only runtime packages — full 'rocm' meta-package includes 15GB+ dev tools
|
# Install only runtime packages — full 'rocm' meta-package includes 15GB+ dev tools
|
||||||
$STD apt install -y rocm-opencl-runtime rocm-hip-runtime rocm-smi-lib 2>/dev/null || {
|
$STD apt install -y rocm-opencl-runtime rocm-hip-runtime rocm-smi-lib 2>/dev/null || {
|
||||||
msg_warn "ROCm runtime install failed — trying minimal set"
|
msg_warn "ROCm runtime install failed — trying minimal set"
|
||||||
|
|||||||
Reference in New Issue
Block a user