This commit is contained in:
정훈 변
2025-06-23 05:31:54 +00:00
parent 1bfe9017d1
commit c7b762d58d

69
k9s_install.sh Normal file
View File

@@ -0,0 +1,69 @@
#!/bin/bash
# k9s 최신 버전을 GitHub에서 다운로드하고 설치하는 스크립트
# Rocky Linux 환경에 최적화됨
set -e
# 에러 메시지 출력 함수
error_exit() {
echo "에러: $1" >&2
exit 1
}
# 필요한 명령어 확인
command -v curl >/dev/null 2>&1 || error_exit "curl이 설치되어 있지 않습니다. 'sudo dnf install curl'로 설치해주세요."
command -v jq >/dev/null 2>&1 || error_exit "jq가 설치되어 있지 않습니다. 'sudo dnf install jq'로 설치해주세요."
command -v tar >/dev/null 2>&1 || error_exit "tar가 설치되어 있지 않습니다. 'sudo dnf install tar'로 설치해주세요."
# GitHub API를 통해 최신 릴리즈 태그 가져오기
LATEST_TAG=$(curl -s https://api.github.com/repos/derailed/k9s/releases/latest | jq -r .tag_name)
[ -z "$LATEST_TAG" ] && error_exit "최신 릴리즈 태그를 가져오지 못했습니다. 네트워크 연결을 확인해주세요."
echo "k9s 최신 버전: $LATEST_TAG"
# 아키텍처 확인
ARCH=$(uname -m)
case $ARCH in
x86_64)
ARCH="amd64"
;;
aarch64)
ARCH="arm64"
;;
*)
error_exit "지원하지 않는 아키텍처: $ARCH"
;;
esac
# 다운로드 URL 생성
DOWNLOAD_URL="https://github.com/derailed/k9s/releases/download/${LATEST_TAG}/k9s_Linux_${ARCH}.tar.gz"
TEMP_DIR=$(mktemp -d)
TAR_FILE="$TEMP_DIR/k9s.tar.gz"
# 파일 다운로드
echo "다운로드 중: $DOWNLOAD_URL"
curl -s -L "$DOWNLOAD_URL" -o "$TAR_FILE" || error_exit "파일 다운로드에 실패했습니다."
# 압축 해제
echo "압축 해제 중..."
tar -xzf "$TAR_FILE" -C "$TEMP_DIR" || error_exit "압축 해제에 실패했습니다."
# k9s 바이너리 이동
if [ -f "$TEMP_DIR/k9s" ]; then
sudo mv "$TEMP_DIR/k9s" /usr/local/bin/k9s || error_exit "바이너리 이동에 실패했습니다."
sudo chmod 755 /usr/local/bin/k9s || error_exit "권한 설정에 실패했습니다."
else
error_exit "k9s 바이너리를 찾을 수 없습니다."
fi
# 정리
rm -rf "$TEMP_DIR"
echo "k9s가 성공적으로 설치되었습니다. 버전 확인: $(k9s version --short)"
# 설치 확인
if command -v k9s >/dev/null 2>&1; then
echo "k9s가 정상적으로 설치되었습니다. 'k9s' 명령어로 실행할 수 있습니다."
else
error_exit "k9s 설치 확인에 실패했습니다."
fi