초기 커밋: Proxmox VE 9.0 저장소 설정 수정 스크립트

 주요 기능:
- Proxmox VE 9.0에서 apt update 오류 해결
- No-subscription 저장소 자동 구성
- Enterprise 저장소 자동 비활성화
- Ceph 저장소 설정 (기본 비활성)

🛠️ 포함 파일:
- fix-pve9-repos.sh: 자동 설정 스크립트
- README.md: 한글 설치 가이드 및 사용법

📦 설치 방법:
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh | bash

🔧 해결하는 문제:
- PVE 8.0 post-install 스크립트가 9.0에서 작동하지 않는 문제
- Debian 13 Trixie 기반 저장소 설정 오류
- apt update 실행 시 발생하는 인증 오류

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
시골약사 2025-10-28 08:13:17 +00:00
commit 9cbb971b6d
2 changed files with 199 additions and 0 deletions

122
README.md Normal file
View File

@ -0,0 +1,122 @@
# Proxmox VE 9.0 Repository Fix
Proxmox VE 9.0 (Debian 13 Trixie 기반)에서 `apt update`가 제대로 작동하지 않는 문제를 해결하는 스크립트입니다.
## 문제 상황
- Proxmox VE 8.0의 post-install 스크립트가 9.0에서 제대로 작동하지 않음
- Enterprise repository 설정 문제로 `apt update` 실패
- No-subscription repository가 올바르게 구성되지 않음
## 해결 방법
이 스크립트는 자동으로 다음 작업을 수행합니다:
- ✅ No-subscription repository 활성화 (deb822 형식)
- ✅ Enterprise repository 비활성화
- ✅ Ceph no-subscription repository 설정 (기본 비활성)
- ✅ 중복되거나 잘못된 repository 항목 정리
- ✅ Package list 업데이트
## 빠른 설치
Proxmox VE 9.0 shell에서 다음 명령어를 실행하세요:
```bash
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh | bash
```
### 또는 다운로드 후 실행
```bash
wget https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh
chmod +x fix-pve9-repos.sh
./fix-pve9-repos.sh
```
## 수동 실행
스크립트를 검토한 후 실행하고 싶다면:
```bash
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh -o fix-pve9-repos.sh
cat fix-pve9-repos.sh # 스크립트 내용 확인
chmod +x fix-pve9-repos.sh
sudo ./fix-pve9-repos.sh
```
## 설정 내용
### 생성/수정되는 파일
- `/etc/apt/sources.list.d/proxmox.sources` - PVE no-subscription repository (활성화)
- `/etc/apt/sources.list.d/ceph.sources` - Ceph no-subscription repository (비활성화)
- Enterprise repository 항목들 자동 비활성화
### Repository 구성
**활성화됨:**
```
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
```
**비활성화됨:**
- Enterprise repositories (`enterprise.proxmox.com`)
- Ceph repository (필요시 수동으로 활성화 가능)
## 실행 후 확인
스크립트 실행 후 다음 명령어로 정상 작동을 확인하세요:
```bash
apt update
apt list --upgradable
```
## 주의사항
- 이 스크립트는 **Proxmox VE 9.0 (Debian 13 Trixie)** 전용입니다
- Enterprise subscription이 있다면 이 스크립트를 사용하지 마세요
- Root 권한이 필요합니다
## Ceph 활성화 (선택사항)
Ceph를 사용한다면 다음 명령어로 활성화하세요:
```bash
sed -i 's/Enabled: no/Enabled: yes/' /etc/apt/sources.list.d/ceph.sources
apt update
```
## 문제 해결
### apt update가 여전히 실패하는 경우
```bash
# Repository 설정 확인
cat /etc/apt/sources.list.d/proxmox.sources
# 키링 재설치
apt-get install --reinstall proxmox-archive-keyring
# 다시 업데이트
apt-get update
```
### Enterprise repository 경고가 계속 나오는 경우
```bash
# Enterprise repository 완전 비활성화 확인
grep -r "enterprise.proxmox.com" /etc/apt/sources.list.d/
```
## 라이선스
MIT License
## 기여
Issues 및 Pull Requests는 언제나 환영합니다!

77
fix-pve9-repos.sh Normal file
View File

@ -0,0 +1,77 @@
#!/usr/bin/env bash
set -euo pipefail
# Proxmox VE 9.0 Repository Fix Script
# Fixes apt update issues by properly configuring no-subscription repositories
echo "🔧 Fixing Proxmox VE 9.0 repositories..."
# 0) Install required keyrings (usually pre-installed)
install -d -m 0755 /usr/share/keyrings
if [ ! -f /usr/share/keyrings/proxmox-archive-keyring.gpg ]; then
echo "📦 Installing proxmox-archive-keyring..."
apt-get update
apt-get install -y proxmox-archive-keyring || true
fi
CODENAME="trixie" # PVE 9 = Debian 13 Trixie
# 1) Configure PVE no-subscription repository (deb822 format)
echo "📝 Configuring PVE no-subscription repository..."
cat >/etc/apt/sources.list.d/proxmox.sources <<EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: ${CODENAME}
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: yes
EOF
# 2) Configure Ceph no-subscription repository (disabled by default)
echo "📝 Configuring Ceph no-subscription repository..."
cat >/etc/apt/sources.list.d/ceph.sources <<EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: ${CODENAME}
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no
EOF
# 3) Disable enterprise repositories in .sources files
echo "🔒 Disabling enterprise repositories..."
for f in /etc/apt/sources.list.d/*.sources; do
[ -f "$f" ] || continue
if grep -q "enterprise\.proxmox\.com" "$f"; then
awk -v RS= -v ORS="\n\n" '{
if ($0 ~ /enterprise\.proxmox\.com/) {
if ($0 ~ /Enabled:/) sub(/Enabled:.*/, "Enabled: no");
else $0 = $0 "\nEnabled: no";
}
print
}' "$f" > "$f.new" && mv "$f.new" "$f"
echo " ✓ Disabled enterprise repo in $f"
fi
done
# 4) Comment out enterprise repos in old .list files & remove duplicate no-sub entries
echo "🔒 Cleaning up old repository files..."
for f in /etc/apt/sources.list /etc/apt/sources.list.d/*.list; do
[ -f "$f" ] || continue
if grep -q "enterprise\.proxmox\.com" "$f" 2>/dev/null; then
sed -i -E 's|^(deb .*enterprise\.proxmox\.com.*)$|# \1|' "$f"
echo " ✓ Commented enterprise repo in $f"
fi
done
rm -f /etc/apt/sources.list.d/pve-no-subscription.list 2>/dev/null || true
# 5) Update package lists
echo "🔄 Updating package lists..."
apt-get update
echo ""
echo "✅ Proxmox VE 9.0 repository configuration completed!"
echo " - No-subscription repository: ENABLED"
echo " - Enterprise repository: DISABLED"
echo " - apt update should now work correctly"
echo ""