From c7b762d58d5fc9fe8231be823f5b30b2a89e40a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=ED=9B=88=20=EB=B3=80?= Date: Mon, 23 Jun 2025 05:31:54 +0000 Subject: [PATCH] =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k9s_install.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 k9s_install.sh diff --git a/k9s_install.sh b/k9s_install.sh new file mode 100644 index 0000000..58bfa4e --- /dev/null +++ b/k9s_install.sh @@ -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 \ No newline at end of file