Skip to content

Instantly share code, notes, and snippets.

@chaeya
Created February 2, 2026 07:52
Show Gist options
  • Select an option

  • Save chaeya/6883242dcfa43a2d5e99d2fef76cad44 to your computer and use it in GitHub Desktop.

Select an option

Save chaeya/6883242dcfa43a2d5e99d2fef76cad44 to your computer and use it in GitHub Desktop.
Install kakaotalk in Ubuntu 24.04
#!/bin/bash
################################################################################
# 카카오톡 자동 설치 스크립트
# WineHQ Wine을 사용하여 카카오톡 PC 버전을 자동 설치합니다.
################################################################################
set -e # 오류 발생 시 스크립트 중단
# 색상 출력 정의
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 로그 함수
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 관리자 권한 확인
if [ "$EUID" -eq 0 ]; then
log_error "루트 권한으로 실행하지 마세요. 일반 사용자로 실행해주세요."
exit 1
fi
################################################################################
# 1. 기존 설치 삭제
################################################################################
log_info "기존 카카오톡 설치 삭제 중..."
# Wine 프로세스 종료
pkill -9 -f "KakaoTalk.exe|wineserver|wine-preloader|winedevice.exe" 2>/dev/null || true
sleep 2
# 기존 Wine prefix 삭제
if [ -d "$HOME/.wine" ]; then
log_warning "기존 Wine prefix 삭제: ~/.wine"
rm -rf "$HOME/.wine"
fi
# Lutris 카카오톡 설치 삭제
if [ -d "$HOME/Games/kakaotalk" ]; then
log_warning "Lutris 카카오톡 설치 삭제: ~/Games/kakaotalk"
rm -rf "$HOME/Games/kakaotalk"
fi
# 기존 바탕화면 아이콘 삭제
if [ -f "$HOME/바탕화면/kakaotalk.desktop" ]; then
log_warning "기존 바탕화면 아이콘 삭제"
rm -f "$HOME/바탕화면/kakaotalk.desktop"
fi
if [ -f "$HOME/Desktop/kakaotalk.desktop" ]; then
rm -f "$HOME/Desktop/kakaotalk.desktop"
fi
log_success "기존 설치 삭제 완료"
################################################################################
# 2. 시스템 패키지 설치
################################################################################
log_info "시스템 패키지 설치 중..."
echo "exitem08" | sudo -S dpkg --add-architecture i386
echo "exitem08" | sudo -S mkdir -pm755 /etc/apt/keyrings
echo "exitem08" | sudo -S wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
echo "exitem08" | sudo -S wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources
echo "exitem08" | sudo -S apt update
echo "exitem08" | sudo -S apt install -y --install-recommends winehq-stable wine-binfmt winetricks 2>&1 | grep -E "설치|Setting|Complete" || true
log_success "시스템 패키지 설치 완료"
################################################################################
# 3. 한글 폰트 설치
################################################################################
log_info "한글 폰트 설치 중..."
echo "exitem08" | sudo -S apt install -y fonts-nanum fonts-nanum-coding fonts-nanum-extra fonts-noto-cjk 2>&1 | grep -E "설치|Setting" || true
log_success "한글 폰트 설치 완료"
################################################################################
# 4. Wine 버전 확인
################################################################################
WINE_VERSION=$(wine --version)
log_info "Wine 버전: $WINE_VERSION"
################################################################################
# 5. Wine prefix 생성 (win32)
################################################################################
log_info "Wine prefix 생성 중 (win32)..."
WINEARCH=win32 WINEPREFIX="$HOME/.wine" wineboot -i
wineserver -w
log_success "Wine prefix 생성 완료"
################################################################################
# 6. 한글 입력 설정
################################################################################
log_info "한글 입력 설정 중..."
WINEARCH=win32 WINEPREFIX="$HOME/.wine" winetricks inputstyle=root 2>&1 | grep -v "^$" || true
wineserver -w
log_success "한글 입력 설정 완료"
################################################################################
# 7. .NET Framework 4.8 설치
################################################################################
log_info ".NET Framework 4.8 설치 중..."
log_warning "이 작업은 시간이 소요될 수 있습니다 (최대 10분)..."
WINEARCH=win32 WINEPREFIX="$HOME/.wine" winetricks -q dotnet48 2>&1 | tail -20 || true
wineserver -w
log_success ".NET Framework 4.8 설치 완료"
################################################################################
# 8. 카카오톡 설치 파일 다운로드
################################################################################
log_info "카카오톡 다운로드 중..."
# 다운로드 디렉토리 확인
DOWNLOAD_DIR=""
if [ -d "$HOME/다운로드" ]; then
DOWNLOAD_DIR="$HOME/다운로드"
elif [ -d "$HOME/Downloads" ]; then
DOWNLOAD_DIR="$HOME/Downloads"
else
DOWNLOAD_DIR="$HOME"
fi
# 기존 설치 파일 삭제
KAKAO_INSTALLER="$DOWNLOAD_DIR/KakaoTalk_Setup.exe"
if [ -f "$KAKAO_INSTALLER" ]; then
log_warning "기존 카카오톡 설치 파일 삭제"
rm -f "$KAKAO_INSTALLER"
fi
# 카카오톡 다운로드
log_info "카카오톡 다운로드 위치: $KAKAO_INSTALLER"
wget -O "$KAKAO_INSTALLER" "https://www.kakaocorp.com/page/service/service/KakaoTalk" 2>&1 | tail -10 || true
# 파일 크기 확인 (최소 50MB 이상이어야 함)
FILE_SIZE=$(stat -f%z "$KAKAO_INSTALLER" 2>/dev/null || stat -c%s "$KAKAO_INSTALLER" 2>/dev/null || echo "0")
if [ "$FILE_SIZE" -lt 50000000 ]; then
log_error "카카오톡 다운로드 실패 (파일 크기: $FILE_SIZE bytes)"
log_error "브라우저에서 https://www.kakaocorp.com/page/service/service/KakaoTalk 에서 직접 다운로드해주세요."
exit 1
fi
log_success "카카오톡 다운로드 완료 ($(du -h "$KAKAO_INSTALLER" | cut -f1))"
################################################################################
# 9. 카카오톡 설치
################################################################################
log_info "카카오톡 설치 중..."
cd "$DOWNLOAD_DIR"
WINEARCH=win32 WINEPREFIX="$HOME/.wine" wine "$KAKAO_INSTALLER" /ALLUSERS /VERYSILENT 2>&1 &
INSTALL_PID=$!
# 설치 완료 대기 (최대 5분)
TIMEOUT=300
ELAPSED=0
while kill -0 $INSTALL_PID 2>/dev/null; do
if [ $ELAPSED -ge $TIMEOUT ]; then
log_warning "설치 시간 초과. 계속 진행합니다..."
kill -9 $INSTALL_PID 2>/dev/null || true
break
fi
sleep 5
ELAPSED=$((ELAPSED + 5))
echo -n "."
done
echo ""
wineserver -w
# 설치 확인
if [ ! -f "$HOME/.wine/drive_c/Program Files/Kakao/KakaoTalk/KakaoTalk.exe" ]; then
log_error "카카오톡 설치 실패"
exit 1
fi
log_success "카카오톡 설치 완료"
################################################################################
# 10. 바탕화면 아이콘 생성
################################################################################
log_info "바탕화면 아이콘 생성 중..."
# 바탕화면 디렉토리 확인
DESKTOP_DIR=""
if [ -d "$HOME/바탕화면" ]; then
DESKTOP_DIR="$HOME/바탕화면"
elif [ -d "$HOME/Desktop" ]; then
DESKTOP_DIR="$HOME/Desktop"
else
DESKTOP_DIR="$HOME"
fi
# .desktop 파일 생성
cat > "$DESKTOP_DIR/kakaotalk.desktop" << 'EOF'
[Desktop Entry]
Name=카카오톡
Name[en]=KakaoTalk
Comment=카카오톡 PC 버전 (Wine)
Comment[en]=KakaoTalk for PC (Wine)
Exec=env WINEARCH=win32 WINEPREFIX=/home/hamonikr/.wine wine /home/hamonikr/.wine/drive_c/Program\ Files/Kakao/KakaoTalk/KakaoTalk.exe
Icon=/home/hamonikr/.wine/drive_c/Program Files/Kakao/KakaoTalk/KakaoTalk.exe
Terminal=false
Type=Application
Categories=Network;InstantMessaging;
StartupNotify=true
StartupWMClass=KakaoTalk.exe
Keywords=KakaoTalk;카카오톡;Chat;Messenger;
EOF
chmod +x "$DESKTOP_DIR/kakaotalk.desktop"
# 신뢰할 수 있는 애플리케이션으로 설정 (필요한 경우)
if command -v gio &> /dev/null; then
gio set "$DESKTOP_DIR/kakaotalk.desktop" metadata::trusted true 2>/dev/null || true
fi
log_success "바탕화면 아이콘 생성 완료: $DESKTOP_DIR/kakaotalk.desktop"
################################################################################
# 11. 설치 완료
################################################################################
echo ""
log_success "========================================="
log_success " 카카오톡 설치 완료!"
log_success "========================================="
echo ""
log_info "실행 방법:"
log_info " 1. 바탕화면의 '카카오톡' 아이콘을 더블클릭"
log_info " 2. 또는 터미널에서 다음 명령어 실행:"
echo ""
echo -e " ${GREEN}WINEARCH=win32 WINEPREFIX=~/.wine wine ~/.wine/drive_c/Program\\ Files/Kakao/KakaoTalk/KakaoTalk.exe${NC}"
echo ""
log_info "설치 정보:"
log_info " Wine 버전: $WINE_VERSION"
log_info " Wine 아키텍처: win32"
log_info " Wine Prefix: ~/.wine"
log_info " 카카오톡 경로: ~/.wine/drive_c/Program Files/Kakao/KakaoTalk/"
log_info " 바탕화면 아이콘: $DESKTOP_DIR/kakaotalk.desktop"
echo ""
log_warning "첫 실행 시 로그인이 필요할 수 있습니다."
log_warning "카카오톡이 정상적으로 실행되지 않으면 터미널에서 다음 명령어로 로그를 확인하세요:"
echo ""
echo -e " ${YELLOW}WINEARCH=win32 WINEPREFIX=~/.wine wine ~/.wine/drive_c/Program\\ Files/Kakao/KakaoTalk/KakaoTalk.exe 2>&1 | tail -50${NC}"
echo ""
# 카카오톡 자동 실행 옵션
read -p "카카오톡을 지금 실행하시겠습니까? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
log_info "카카오톡 실행 중..."
WINEARCH=win32 WINEPREFIX="$HOME/.wine" wine "$HOME/.wine/drive_c/Program Files/Kakao/KakaoTalk/KakaoTalk.exe" &
log_success "카카오톡이 실행되었습니다!"
fi
log_success "설치 스크립트 완료!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment