🐛 fix: Proxmox 버전 감지 및 패키지 설치 검증 오류 수정
- Proxmox 버전 감지 시 안전한 파싱 로직 추가 - openbox 등 패키지 설치 검증 시 명령어 존재 여부도 확인 - 오류 처리 강화 및 사용자 친화적 메시지 개선 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
3ab509492f
commit
8748a8bf9a
@ -49,17 +49,36 @@ print_header() {
|
||||
check_proxmox_version() {
|
||||
msg_info "Proxmox VE 버전 확인 중..."
|
||||
|
||||
if [ ! -f /etc/pve/.version ]; then
|
||||
# Proxmox VE 설치 확인
|
||||
if [ ! -f /etc/pve/.version ] && ! command -v pveversion > /dev/null 2>&1; then
|
||||
msg_error "Proxmox VE가 설치되어 있지 않습니다."
|
||||
fi
|
||||
|
||||
local pve_version=$(pveversion | head -n1 | awk '{print $2}' | cut -d'.' -f1)
|
||||
|
||||
if [ "$pve_version" -lt 8 ]; then
|
||||
msg_error "지원되지 않는 Proxmox VE 버전입니다. 8.x 이상이 필요합니다."
|
||||
# 버전 정보 추출 (더 안전한 방식)
|
||||
local version_info
|
||||
if command -v pveversion > /dev/null 2>&1; then
|
||||
version_info=$(pveversion 2>/dev/null | head -n1 | awk '{print $2}' 2>/dev/null || echo "unknown")
|
||||
else
|
||||
version_info="unknown"
|
||||
fi
|
||||
|
||||
msg_ok "Proxmox VE $pve_version.x 버전 확인됨"
|
||||
# 버전이 숫자인지 확인
|
||||
if [[ "$version_info" =~ ^[0-9]+\.[0-9]+ ]]; then
|
||||
local pve_version=$(echo "$version_info" | cut -d'.' -f1)
|
||||
|
||||
if [ "$pve_version" -lt 8 ]; then
|
||||
msg_error "지원되지 않는 Proxmox VE 버전입니다. 8.x 이상이 필요합니다."
|
||||
fi
|
||||
|
||||
msg_ok "Proxmox VE $pve_version.x 버전 확인됨"
|
||||
else
|
||||
msg_warn "Proxmox VE 버전을 확인할 수 없습니다. 계속 진행합니다..."
|
||||
read -p "계속 진행하시겠습니까? [y/N]: " continue_anyway
|
||||
case $continue_anyway in
|
||||
[yY]|[yY][eE][sS]) ;;
|
||||
*) msg_error "설정이 취소되었습니다." ;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
# 루트 권한 확인
|
||||
@ -294,11 +313,49 @@ install_packages() {
|
||||
done
|
||||
done
|
||||
|
||||
# 설치 확인
|
||||
# 설치 확인 (더 유연한 방식)
|
||||
msg_info "설치된 패키지 확인 중..."
|
||||
for package in $packages; do
|
||||
if ! dpkg -l | grep -q "^ii $package "; then
|
||||
local installed=false
|
||||
|
||||
# 직접 패키지명 확인
|
||||
if dpkg -l | grep -q "^ii $package "; then
|
||||
installed=true
|
||||
else
|
||||
# 패키지명이 다를 수 있으므로 부분 매치 확인
|
||||
case $package in
|
||||
"openbox")
|
||||
if dpkg -l | grep -q "^ii openbox" || command -v openbox > /dev/null 2>&1; then
|
||||
installed=true
|
||||
fi
|
||||
;;
|
||||
"xorg")
|
||||
if dpkg -l | grep -q "^ii.*xorg" || command -v startx > /dev/null 2>&1; then
|
||||
installed=true
|
||||
fi
|
||||
;;
|
||||
"freerdp3-x11")
|
||||
if dpkg -l | grep -q "^ii.*freerdp" || command -v xfreerdp3 > /dev/null 2>&1; then
|
||||
installed=true
|
||||
fi
|
||||
;;
|
||||
"unclutter")
|
||||
if dpkg -l | grep -q "^ii unclutter" || command -v unclutter > /dev/null 2>&1; then
|
||||
installed=true
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if dpkg -l | grep -q "^ii $package " || command -v "$package" > /dev/null 2>&1; then
|
||||
installed=true
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "$installed" = false ]; then
|
||||
msg_error "$package가 정상적으로 설치되지 않았습니다."
|
||||
else
|
||||
msg_info " ✓ $package 설치 확인됨"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user