Created
February 2, 2026 07:52
-
-
Save chaeya/6883242dcfa43a2d5e99d2fef76cad44 to your computer and use it in GitHub Desktop.
Install kakaotalk in Ubuntu 24.04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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