#!/bin/bash # mirror.techlabs.co.kr APT 미러 설정 스크립트 # 이 스크립트는 APT 소스 목록을 techlabs 미러로 변경합니다 set -e # 색상 정의 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}=== mirror.techlabs.co.kr APT 미러 설정 스크립트 ===${NC}" echo -e "${YELLOW}이 스크립트는 APT 패키지 저장소를 techlabs 미러로 변경합니다${NC}" echo "" # 루트 권한 확인 if [ "$(id -u)" -ne 0 ]; then echo -e "${RED}오류: 이 스크립트는 루트 권한으로 실행해야 합니다${NC}" >&2 echo "sudo $0 명령으로 다시 실행해주세요" exit 1 fi # 백업 생성 TIMESTAMP=$(date +%Y%m%d%H%M%S) SOURCES_LIST="/etc/apt/sources.list" BACKUP_FILE="${SOURCES_LIST}.${TIMESTAMP}.bak" echo -e "${YELLOW}기존 sources.list 파일을 백업합니다: ${BACKUP_FILE}${NC}" cp $SOURCES_LIST $BACKUP_FILE # OS 배포판 확인 if [ -f /etc/os-release ]; then . /etc/os-release OS_ID=$ID OS_VERSION_CODENAME=$VERSION_CODENAME echo -e "${GREEN}배포판 확인: $OS_ID $OS_VERSION_CODENAME${NC}" else echo -e "${RED}OS 배포판을 확인할 수 없습니다${NC}" exit 1 fi # APT 소스 변경 if [ "$OS_ID" = "ubuntu" ] || [ "$OS_ID" = "debian" ] || [ "$OS_ID" = "kali" ]; then echo -e "${YELLOW}APT 소스를 mirror.techlabs.co.kr로 변경합니다...${NC}" # OS별 미러 주소 설정 if [ "$OS_ID" = "ubuntu" ]; then MIRROR_URL="mirror.techlabs.co.kr/ubuntu" MIRROR_PATH="ubuntu" elif [ "$OS_ID" = "kali" ]; then MIRROR_URL="mirror.techlabs.co.kr/kali" MIRROR_PATH="kali" elif [ "$OS_ID" = "debian" ]; then MIRROR_URL="mirror.techlabs.co.kr/debian" MIRROR_PATH="debian" fi # sources.list 수정 sed -i.bak "s|http://.*\/${MIRROR_PATH}|http://${MIRROR_URL}|g" $SOURCES_LIST sed -i "s|https://.*\/${MIRROR_PATH}|http://${MIRROR_URL}|g" $SOURCES_LIST echo -e "${GREEN}APT 소스를 성공적으로 변경했습니다${NC}" echo -e "${YELLOW}패키지 목록을 업데이트합니다...${NC}" # 패키지 목록 업데이트 apt-get update echo -e "${GREEN}완료되었습니다!${NC}" echo -e "${BLUE}이제 techlabs.co.kr 미러를 통해 패키지를 다운로드합니다${NC}" echo -e "${YELLOW}문제가 발생하면 ${BACKUP_FILE} 파일로 복원할 수 있습니다${NC}" else echo -e "${RED}지원하지 않는 배포판입니다: $OS_ID${NC}" echo -e "${YELLOW}현재 Ubuntu, Debian, Kali Linux만 지원합니다${NC}" exit 1 fi exit 0