[{"data":1,"prerenderedAt":1579},["ShallowReactive",2],{"page-ko-\u002Fbuild-linux":3},{"id":4,"title":5,"body":6,"description":16,"draft":1571,"extension":1572,"hero":1573,"meta":1574,"navigation":601,"path":1575,"seo":1576,"stem":1577,"tags":1573,"updatedAt":1573,"__hash__":1578},"content_ko\u002Fbuild-linux.md","Linux용 Drop Compress Image 빌드",{"type":7,"value":8,"toc":1527},"minimark",[9,13,17,22,25,38,42,45,85,89,92,196,201,246,250,263,266,270,273,277,309,312,316,333,336,361,365,384,392,396,399,403,450,454,473,476,480,483,487,504,508,520,524,527,531,569,573,657,661,664,681,684,847,850,898,901,923,927,930,934,955,959,976,980,1002,1006,1009,1026,1029,1046,1053,1057,1060,1064,1067,1078,1084,1088,1091,1101,1107,1110,1134,1138,1141,1165,1171,1175,1179,1373,1377,1380,1444,1448,1451,1476,1480,1483,1520,1523],[10,11,5],"h1",{"id":12},"linux용-drop-compress-image-빌드",[14,15,16],"p",{},"이 가이드는 Ubuntu 24.04 LTS(및 유사한 Debian 기반 배포판)에서 개발 환경을 설정하고 Drop Compress Image를 빌드하는 과정을 안내합니다。",[18,19,21],"h2",{"id":20},"사전-요구사항","사전 요구사항",[14,23,24],{},"시작하기 전에 다음이 필요합니다:",[26,27,28,32,35],"ul",{},[29,30,31],"li",{},"Ubuntu 24.04 LTS 또는 유사한 Debian 기반 배포판",[29,33,34],{},"소프트웨어 설치를 위한 sudo 권한",[29,36,37],{},"터미널 명령어에 대한 기본적인 지식",[18,39,41],{"id":40},"단계-1-시스템-패키지-업데이트","단계 1: 시스템 패키지 업데이트",[14,43,44],{},"먼저 최신 버전이 있는지 확인하기 위해 시스템 패키지를 업데이트합니다:",[46,47,52],"pre",{"className":48,"code":49,"language":50,"meta":51,"style":51},"language-bash shiki shiki-themes github-light github-dark","sudo apt update\nsudo apt upgrade -y\n","bash","",[53,54,55,71],"code",{"__ignoreMap":51},[56,57,60,64,68],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sScJk","sudo",[56,65,67],{"class":66},"sZZnC"," apt",[56,69,70],{"class":66}," update\n",[56,72,74,76,78,81],{"class":58,"line":73},2,[56,75,63],{"class":62},[56,77,67],{"class":66},[56,79,80],{"class":66}," upgrade",[56,82,84],{"class":83},"sj4cs"," -y\n",[18,86,88],{"id":87},"단계-2-빌드-종속성-설치","단계 2: 빌드 종속성 설치",[14,90,91],{},"Tauri 개발에 필요한 필수 빌드 도구 및 라이브러리를 설치합니다:",[46,93,95],{"className":48,"code":94,"language":50,"meta":51,"style":51},"# 빌드 필수 요소 및 개발 라이브러리 설치\nsudo apt install -y \\\n  build-essential \\\n  curl \\\n  wget \\\n  file \\\n  libssl-dev \\\n  libgtk-3-dev \\\n  libayatana-appindicator3-dev \\\n  librsvg2-dev \\\n  libwebkit2gtk-4.1-dev \\\n  patchelf\n",[53,96,97,103,118,126,134,142,150,158,166,174,182,190],{"__ignoreMap":51},[56,98,99],{"class":58,"line":59},[56,100,102],{"class":101},"sJ8bj","# 빌드 필수 요소 및 개발 라이브러리 설치\n",[56,104,105,107,109,112,115],{"class":58,"line":73},[56,106,63],{"class":62},[56,108,67],{"class":66},[56,110,111],{"class":66}," install",[56,113,114],{"class":83}," -y",[56,116,117],{"class":83}," \\\n",[56,119,121,124],{"class":58,"line":120},3,[56,122,123],{"class":66},"  build-essential",[56,125,117],{"class":83},[56,127,129,132],{"class":58,"line":128},4,[56,130,131],{"class":66},"  curl",[56,133,117],{"class":83},[56,135,137,140],{"class":58,"line":136},5,[56,138,139],{"class":66},"  wget",[56,141,117],{"class":83},[56,143,145,148],{"class":58,"line":144},6,[56,146,147],{"class":66},"  file",[56,149,117],{"class":83},[56,151,153,156],{"class":58,"line":152},7,[56,154,155],{"class":66},"  libssl-dev",[56,157,117],{"class":83},[56,159,161,164],{"class":58,"line":160},8,[56,162,163],{"class":66},"  libgtk-3-dev",[56,165,117],{"class":83},[56,167,169,172],{"class":58,"line":168},9,[56,170,171],{"class":66},"  libayatana-appindicator3-dev",[56,173,117],{"class":83},[56,175,177,180],{"class":58,"line":176},10,[56,178,179],{"class":66},"  librsvg2-dev",[56,181,117],{"class":83},[56,183,185,188],{"class":58,"line":184},11,[56,186,187],{"class":66},"  libwebkit2gtk-4.1-dev",[56,189,117],{"class":83},[56,191,193],{"class":58,"line":192},12,[56,194,195],{"class":66},"  patchelf\n",[197,198,200],"h3",{"id":199},"패키지-설명","패키지 설명",[26,202,203,210,216,222,228,234,240],{},[29,204,205,209],{},[206,207,208],"strong",{},"build-essential",": GCC, G++, make 제공",[29,211,212,215],{},[206,213,214],{},"libssl-dev",": OpenSSL 개발 라이브러리",[29,217,218,221],{},[206,219,220],{},"libgtk-3-dev",": UI용 GTK3 개발 라이브러리",[29,223,224,227],{},[206,225,226],{},"libayatana-appindicator3-dev",": 시스템 트레이 지원",[29,229,230,233],{},[206,231,232],{},"librsvg2-dev",": SVG 렌더링 지원",[29,235,236,239],{},[206,237,238],{},"libwebkit2gtk-4.1-dev",": Tauri의 webview용 WebKit",[29,241,242,245],{},[206,243,244],{},"patchelf",": AppImage용 ELF 바이너리 패처",[197,247,249],{"id":248},"설치-확인","설치 확인",[46,251,253],{"className":48,"code":252,"language":50,"meta":51,"style":51},"gcc --version\n",[53,254,255],{"__ignoreMap":51},[56,256,257,260],{"class":58,"line":59},[56,258,259],{"class":62},"gcc",[56,261,262],{"class":83}," --version\n",[14,264,265],{},"GCC 버전 13.x 이상이 표시되어야 합니다.",[18,267,269],{"id":268},"단계-3-rust-설치","단계 3: Rust 설치",[14,271,272],{},"Drop Compress Image는 Rust로 빌드되므로 Rust 툴체인을 설치해야 합니다.",[197,274,276],{"id":275},"rustup을-통한-rust-설치","rustup을 통한 Rust 설치",[46,278,280],{"className":48,"code":279,"language":50,"meta":51,"style":51},"curl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n",[53,281,282],{"__ignoreMap":51},[56,283,284,287,290,293,296,299,302,306],{"class":58,"line":59},[56,285,286],{"class":62},"curl",[56,288,289],{"class":83}," --proto",[56,291,292],{"class":66}," '=https'",[56,294,295],{"class":83}," --tlsv1.2",[56,297,298],{"class":83}," -sSf",[56,300,301],{"class":66}," https:\u002F\u002Fsh.rustup.rs",[56,303,305],{"class":304},"szBVR"," |",[56,307,308],{"class":62}," sh\n",[14,310,311],{},"프롬프트가 표시되면 옵션 1(기본 설치)을 선택하세요.",[197,313,315],{"id":314},"셸-구성","셸 구성",[46,317,319],{"className":48,"code":318,"language":50,"meta":51,"style":51},"source $HOME\u002F.cargo\u002Fenv\n",[53,320,321],{"__ignoreMap":51},[56,322,323,326,330],{"class":58,"line":59},[56,324,325],{"class":83},"source",[56,327,329],{"class":328},"sVt8B"," $HOME",[56,331,332],{"class":66},"\u002F.cargo\u002Fenv\n",[14,334,335],{},"영구적으로 만들려면 셸 프로파일에 추가하세요:",[46,337,339],{"className":48,"code":338,"language":50,"meta":51,"style":51},"echo 'source $HOME\u002F.cargo\u002Fenv' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n",[53,340,341,355],{"__ignoreMap":51},[56,342,343,346,349,352],{"class":58,"line":59},[56,344,345],{"class":83},"echo",[56,347,348],{"class":66}," 'source $HOME\u002F.cargo\u002Fenv'",[56,350,351],{"class":304}," >>",[56,353,354],{"class":66}," ~\u002F.bashrc\n",[56,356,357,359],{"class":58,"line":73},[56,358,325],{"class":83},[56,360,354],{"class":66},[197,362,364],{"id":363},"rust-설치-확인","Rust 설치 확인",[46,366,368],{"className":48,"code":367,"language":50,"meta":51,"style":51},"rustc --version\ncargo --version\n",[53,369,370,377],{"__ignoreMap":51},[56,371,372,375],{"class":58,"line":59},[56,373,374],{"class":62},"rustc",[56,376,262],{"class":83},[56,378,379,382],{"class":58,"line":73},[56,380,381],{"class":62},"cargo",[56,383,262],{"class":83},[14,385,386,388,389,391],{},[53,387,374],{},"와 ",[53,390,381],{}," 모두에 대한 버전 정보가 표시되어야 합니다.",[18,393,395],{"id":394},"단계-4-nodejs-설치","단계 4: Node.js 설치",[14,397,398],{},"Drop Compress Image의 프론트엔드는 Vue.js로 빌드되어 Node.js가 필요합니다.",[197,400,402],{"id":401},"nodesource-저장소를-통한-nodejs-설치","NodeSource 저장소를 통한 Node.js 설치",[46,404,406],{"className":48,"code":405,"language":50,"meta":51,"style":51},"# Node.js 22.x (LTS) 설치\ncurl -fsSL https:\u002F\u002Fdeb.nodesource.com\u002Fsetup_22.x | sudo -E bash -\nsudo apt install -y nodejs\n",[53,407,408,413,437],{"__ignoreMap":51},[56,409,410],{"class":58,"line":59},[56,411,412],{"class":101},"# Node.js 22.x (LTS) 설치\n",[56,414,415,417,420,423,425,428,431,434],{"class":58,"line":73},[56,416,286],{"class":62},[56,418,419],{"class":83}," -fsSL",[56,421,422],{"class":66}," https:\u002F\u002Fdeb.nodesource.com\u002Fsetup_22.x",[56,424,305],{"class":304},[56,426,427],{"class":62}," sudo",[56,429,430],{"class":83}," -E",[56,432,433],{"class":66}," bash",[56,435,436],{"class":66}," -\n",[56,438,439,441,443,445,447],{"class":58,"line":120},[56,440,63],{"class":62},[56,442,67],{"class":66},[56,444,111],{"class":66},[56,446,114],{"class":83},[56,448,449],{"class":66}," nodejs\n",[197,451,453],{"id":452},"nodejs-설치-확인","Node.js 설치 확인",[46,455,457],{"className":48,"code":456,"language":50,"meta":51,"style":51},"node --version\nnpm --version\n",[53,458,459,466],{"__ignoreMap":51},[56,460,461,464],{"class":58,"line":59},[56,462,463],{"class":62},"node",[56,465,262],{"class":83},[56,467,468,471],{"class":58,"line":73},[56,469,470],{"class":62},"npm",[56,472,262],{"class":83},[14,474,475],{},"Node.js 버전 22.x 이상이 표시되어야 합니다.",[18,477,479],{"id":478},"단계-5-pnpm-설치","단계 5: pnpm 설치",[14,481,482],{},"Drop Compress Image는 성능과 디스크 효율성을 위해 pnpm을 패키지 관리자로 사용합니다.",[197,484,486],{"id":485},"pnpm-설치","pnpm 설치",[46,488,490],{"className":48,"code":489,"language":50,"meta":51,"style":51},"npm install -g pnpm\n",[53,491,492],{"__ignoreMap":51},[56,493,494,496,498,501],{"class":58,"line":59},[56,495,470],{"class":62},[56,497,111],{"class":66},[56,499,500],{"class":83}," -g",[56,502,503],{"class":66}," pnpm\n",[197,505,507],{"id":506},"pnpm-설치-확인","pnpm 설치 확인",[46,509,511],{"className":48,"code":510,"language":50,"meta":51,"style":51},"pnpm --version\n",[53,512,513],{"__ignoreMap":51},[56,514,515,518],{"class":58,"line":59},[56,516,517],{"class":62},"pnpm",[56,519,262],{"class":83},[18,521,523],{"id":522},"단계-6-vcpkg-설정-및-종속성-설치","단계 6: vcpkg 설정 및 종속성 설치",[14,525,526],{},"이 프로젝트는 vcpkg를 사용하여 C\u002FC++ 이미지 처리 라이브러리(libaom, libavif, libjxl 등)를 관리합니다.",[197,528,530],{"id":529},"vcpkg-선행-조건-설치","vcpkg 선행 조건 설치",[46,532,534],{"className":48,"code":533,"language":50,"meta":51,"style":51},"# vcpkg에 필요한 도구 설치\nsudo apt install -y curl zip unzip tar cmake pkg-config\n",[53,535,536,541],{"__ignoreMap":51},[56,537,538],{"class":58,"line":59},[56,539,540],{"class":101},"# vcpkg에 필요한 도구 설치\n",[56,542,543,545,547,549,551,554,557,560,563,566],{"class":58,"line":73},[56,544,63],{"class":62},[56,546,67],{"class":66},[56,548,111],{"class":66},[56,550,114],{"class":83},[56,552,553],{"class":66}," curl",[56,555,556],{"class":66}," zip",[56,558,559],{"class":66}," unzip",[56,561,562],{"class":66}," tar",[56,564,565],{"class":66}," cmake",[56,567,568],{"class":66}," pkg-config\n",[197,570,572],{"id":571},"vcpkg-설치","vcpkg 설치",[46,574,576],{"className":48,"code":575,"language":50,"meta":51,"style":51},"# vcpkg 복제\ngit clone https:\u002F\u002Fgithub.com\u002FMicrosoft\u002Fvcpkg.git ~\u002Fvcpkg\n\n# vcpkg 부트스트랩\ncd ~\u002Fvcpkg\n.\u002Fbootstrap-vcpkg.sh\n\n# 환경 변수 설정(~\u002F.bashrc에 추가)\necho 'export VCPKG_ROOT=\"$HOME\u002Fvcpkg\"' >> ~\u002F.bashrc\necho 'export PATH=\"$VCPKG_ROOT:$PATH\"' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n",[53,577,578,583,597,603,608,615,620,624,629,640,651],{"__ignoreMap":51},[56,579,580],{"class":58,"line":59},[56,581,582],{"class":101},"# vcpkg 복제\n",[56,584,585,588,591,594],{"class":58,"line":73},[56,586,587],{"class":62},"git",[56,589,590],{"class":66}," clone",[56,592,593],{"class":66}," https:\u002F\u002Fgithub.com\u002FMicrosoft\u002Fvcpkg.git",[56,595,596],{"class":66}," ~\u002Fvcpkg\n",[56,598,599],{"class":58,"line":120},[56,600,602],{"emptyLinePlaceholder":601},true,"\n",[56,604,605],{"class":58,"line":128},[56,606,607],{"class":101},"# vcpkg 부트스트랩\n",[56,609,610,613],{"class":58,"line":136},[56,611,612],{"class":83},"cd",[56,614,596],{"class":66},[56,616,617],{"class":58,"line":144},[56,618,619],{"class":62},".\u002Fbootstrap-vcpkg.sh\n",[56,621,622],{"class":58,"line":152},[56,623,602],{"emptyLinePlaceholder":601},[56,625,626],{"class":58,"line":160},[56,627,628],{"class":101},"# 환경 변수 설정(~\u002F.bashrc에 추가)\n",[56,630,631,633,636,638],{"class":58,"line":168},[56,632,345],{"class":83},[56,634,635],{"class":66}," 'export VCPKG_ROOT=\"$HOME\u002Fvcpkg\"'",[56,637,351],{"class":304},[56,639,354],{"class":66},[56,641,642,644,647,649],{"class":58,"line":176},[56,643,345],{"class":83},[56,645,646],{"class":66}," 'export PATH=\"$VCPKG_ROOT:$PATH\"'",[56,648,351],{"class":304},[56,650,354],{"class":66},[56,652,653,655],{"class":58,"line":184},[56,654,325],{"class":83},[56,656,354],{"class":66},[197,658,660],{"id":659},"종속성-설치","종속성 설치",[14,662,663],{},"자동 설치 스크립트 사용(권장):",[46,665,667],{"className":48,"code":666,"language":50,"meta":51,"style":51},"cd ~\u002Fpath\u002Fto\u002FDropWebP\u002Fapp\u002Fsrc-tauri\n.\u002Fsetup-vcpkg.sh\n",[53,668,669,676],{"__ignoreMap":51},[56,670,671,673],{"class":58,"line":59},[56,672,612],{"class":83},[56,674,675],{"class":66}," ~\u002Fpath\u002Fto\u002FDropWebP\u002Fapp\u002Fsrc-tauri\n",[56,677,678],{"class":58,"line":73},[56,679,680],{"class":62},".\u002Fsetup-vcpkg.sh\n",[14,682,683],{},"또는 수동으로 설치:",[46,685,687],{"className":48,"code":686,"language":50,"meta":51,"style":51},"cd ~\u002Fvcpkg\n\n# x64 Linux의 경우\n.\u002Fvcpkg install aom:x64-linux\n.\u002Fvcpkg install libavif[aom]:x64-linux\n.\u002Fvcpkg install libjxl:x64-linux\n.\u002Fvcpkg install libwebp:x64-linux\n.\u002Fvcpkg install openjpeg:x64-linux\n.\u002Fvcpkg install libjpeg-turbo:x64-linux\n.\u002Fvcpkg install lcms:x64-linux\n\n# ARM64 Linux의 경우\n.\u002Fvcpkg install aom:arm64-linux\n.\u002Fvcpkg install libavif[aom]:arm64-linux\n.\u002Fvcpkg install libjxl:arm64-linux\n.\u002Fvcpkg install libwebp:arm64-linux\n.\u002Fvcpkg install openjpeg:arm64-linux\n.\u002Fvcpkg install libjpeg-turbo:arm64-linux\n.\u002Fvcpkg install lcms:arm64-linux\n",[53,688,689,695,699,704,714,723,732,741,750,759,768,772,777,787,797,807,817,827,837],{"__ignoreMap":51},[56,690,691,693],{"class":58,"line":59},[56,692,612],{"class":83},[56,694,596],{"class":66},[56,696,697],{"class":58,"line":73},[56,698,602],{"emptyLinePlaceholder":601},[56,700,701],{"class":58,"line":120},[56,702,703],{"class":101},"# x64 Linux의 경우\n",[56,705,706,709,711],{"class":58,"line":128},[56,707,708],{"class":62},".\u002Fvcpkg",[56,710,111],{"class":66},[56,712,713],{"class":66}," aom:x64-linux\n",[56,715,716,718,720],{"class":58,"line":136},[56,717,708],{"class":62},[56,719,111],{"class":66},[56,721,722],{"class":66}," libavif[aom]:x64-linux\n",[56,724,725,727,729],{"class":58,"line":144},[56,726,708],{"class":62},[56,728,111],{"class":66},[56,730,731],{"class":66}," libjxl:x64-linux\n",[56,733,734,736,738],{"class":58,"line":152},[56,735,708],{"class":62},[56,737,111],{"class":66},[56,739,740],{"class":66}," libwebp:x64-linux\n",[56,742,743,745,747],{"class":58,"line":160},[56,744,708],{"class":62},[56,746,111],{"class":66},[56,748,749],{"class":66}," openjpeg:x64-linux\n",[56,751,752,754,756],{"class":58,"line":168},[56,753,708],{"class":62},[56,755,111],{"class":66},[56,757,758],{"class":66}," libjpeg-turbo:x64-linux\n",[56,760,761,763,765],{"class":58,"line":176},[56,762,708],{"class":62},[56,764,111],{"class":66},[56,766,767],{"class":66}," lcms:x64-linux\n",[56,769,770],{"class":58,"line":184},[56,771,602],{"emptyLinePlaceholder":601},[56,773,774],{"class":58,"line":192},[56,775,776],{"class":101},"# ARM64 Linux의 경우\n",[56,778,780,782,784],{"class":58,"line":779},13,[56,781,708],{"class":62},[56,783,111],{"class":66},[56,785,786],{"class":66}," aom:arm64-linux\n",[56,788,790,792,794],{"class":58,"line":789},14,[56,791,708],{"class":62},[56,793,111],{"class":66},[56,795,796],{"class":66}," libavif[aom]:arm64-linux\n",[56,798,800,802,804],{"class":58,"line":799},15,[56,801,708],{"class":62},[56,803,111],{"class":66},[56,805,806],{"class":66}," libjxl:arm64-linux\n",[56,808,810,812,814],{"class":58,"line":809},16,[56,811,708],{"class":62},[56,813,111],{"class":66},[56,815,816],{"class":66}," libwebp:arm64-linux\n",[56,818,820,822,824],{"class":58,"line":819},17,[56,821,708],{"class":62},[56,823,111],{"class":66},[56,825,826],{"class":66}," openjpeg:arm64-linux\n",[56,828,830,832,834],{"class":58,"line":829},18,[56,831,708],{"class":62},[56,833,111],{"class":66},[56,835,836],{"class":66}," libjpeg-turbo:arm64-linux\n",[56,838,840,842,844],{"class":58,"line":839},19,[56,841,708],{"class":62},[56,843,111],{"class":66},[56,845,846],{"class":66}," lcms:arm64-linux\n",[14,848,849],{},"설치된 라이브러리:",[26,851,852,862,868,874,880,886,892],{},[29,853,854,857,858,861],{},[206,855,856],{},"libaom",": AV1 인코더(AVIF 형식용, ",[206,859,860],{},"필수",")",[29,863,864,867],{},[206,865,866],{},"libavif",": AVIF 이미지 형식",[29,869,870,873],{},[206,871,872],{},"libjxl",": JPEG XL 이미지 형식",[29,875,876,879],{},[206,877,878],{},"libwebp",": WebP 이미지 형식",[29,881,882,885],{},[206,883,884],{},"openjpeg",": JPEG 2000 이미지 형식",[29,887,888,891],{},[206,889,890],{},"libjpeg-turbo",": JPEG 이미지 처리(jpegli용)",[29,893,894,897],{},[206,895,896],{},"lcms",": Little CMS 색상 관리",[197,899,249],{"id":900},"설치-확인-1",[46,902,904],{"className":48,"code":903,"language":50,"meta":51,"style":51},".\u002Fvcpkg list | grep -E \"aom|avif|jxl|webp|openjpeg|jpeg|lcms\"\n",[53,905,906],{"__ignoreMap":51},[56,907,908,910,913,915,918,920],{"class":58,"line":59},[56,909,708],{"class":62},[56,911,912],{"class":66}," list",[56,914,305],{"class":304},[56,916,917],{"class":62}," grep",[56,919,430],{"class":83},[56,921,922],{"class":66}," \"aom|avif|jxl|webp|openjpeg|jpeg|lcms\"\n",[18,924,926],{"id":925},"단계-7-drop-compress-image-복제-및-빌드","단계 7: Drop Compress Image 복제 및 빌드",[14,928,929],{},"이제 Drop Compress Image를 복제하고 빌드할 준비가 되었습니다.",[197,931,933],{"id":932},"리포지토리-복제","리포지토리 복제",[46,935,937],{"className":48,"code":936,"language":50,"meta":51,"style":51},"git clone https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP.git\ncd DropWebP\n",[53,938,939,948],{"__ignoreMap":51},[56,940,941,943,945],{"class":58,"line":59},[56,942,587],{"class":62},[56,944,590],{"class":66},[56,946,947],{"class":66}," https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP.git\n",[56,949,950,952],{"class":58,"line":73},[56,951,612],{"class":83},[56,953,954],{"class":66}," DropWebP\n",[197,956,958],{"id":957},"프론트엔드-종속성-설치","프론트엔드 종속성 설치",[46,960,962],{"className":48,"code":961,"language":50,"meta":51,"style":51},"# 모든 워크스페이스 종속성 설치\npnpm install\n",[53,963,964,969],{"__ignoreMap":51},[56,965,966],{"class":58,"line":59},[56,967,968],{"class":101},"# 모든 워크스페이스 종속성 설치\n",[56,970,971,973],{"class":58,"line":73},[56,972,517],{"class":62},[56,974,975],{"class":66}," install\n",[197,977,979],{"id":978},"tauri-cli-v2-설치","Tauri CLI v2 설치",[46,981,983],{"className":48,"code":982,"language":50,"meta":51,"style":51},"# Tauri CLI v2를 전역으로 설치\npnpm add -g @tauri-apps\u002Fcli@next\n",[53,984,985,990],{"__ignoreMap":51},[56,986,987],{"class":58,"line":59},[56,988,989],{"class":101},"# Tauri CLI v2를 전역으로 설치\n",[56,991,992,994,997,999],{"class":58,"line":73},[56,993,517],{"class":62},[56,995,996],{"class":66}," add",[56,998,500],{"class":83},[56,1000,1001],{"class":66}," @tauri-apps\u002Fcli@next\n",[197,1003,1005],{"id":1004},"애플리케이션-빌드","애플리케이션 빌드",[14,1007,1008],{},"개발용:",[46,1010,1012],{"className":48,"code":1011,"language":50,"meta":51,"style":51},"# 개발 모드로 실행\npnpm dev:tauri\n",[53,1013,1014,1019],{"__ignoreMap":51},[56,1015,1016],{"class":58,"line":59},[56,1017,1018],{"class":101},"# 개발 모드로 실행\n",[56,1020,1021,1023],{"class":58,"line":73},[56,1022,517],{"class":62},[56,1024,1025],{"class":66}," dev:tauri\n",[14,1027,1028],{},"프로덕션용:",[46,1030,1032],{"className":48,"code":1031,"language":50,"meta":51,"style":51},"# 프로덕션용 빌드\npnpm build:tauri\n",[53,1033,1034,1039],{"__ignoreMap":51},[56,1035,1036],{"class":58,"line":59},[56,1037,1038],{"class":101},"# 프로덕션용 빌드\n",[56,1040,1041,1043],{"class":58,"line":73},[56,1042,517],{"class":62},[56,1044,1045],{"class":66}," build:tauri\n",[14,1047,1048,1049,1052],{},"빌드된 애플리케이션은 ",[53,1050,1051],{},"app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002F","에 있습니다.",[18,1054,1056],{"id":1055},"단계-8-배포-형식","단계 8: 배포 형식",[14,1058,1059],{},"Linux의 Tauri는 여러 배포 형식을 생성할 수 있습니다:",[197,1061,1063],{"id":1062},"appimage-권장","AppImage (권장)",[14,1065,1066],{},"AppImage는 대부분의 Linux 배포판에서 작동하는 범용 패키지 형식입니다:",[46,1068,1070],{"className":48,"code":1069,"language":50,"meta":51,"style":51},"pnpm build:tauri\n",[53,1071,1072],{"__ignoreMap":51},[56,1073,1074,1076],{"class":58,"line":59},[56,1075,517],{"class":62},[56,1077,1045],{"class":66},[14,1079,1080,1081,1052],{},"AppImage는 ",[53,1082,1083],{},"app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fappimage\u002F",[197,1085,1087],{"id":1086},"debian-패키지-deb","Debian 패키지 (.deb)",[14,1089,1090],{},"Debian\u002FUbuntu 기반 배포판용:",[46,1092,1093],{"className":48,"code":1069,"language":50,"meta":51,"style":51},[53,1094,1095],{"__ignoreMap":51},[56,1096,1097,1099],{"class":58,"line":59},[56,1098,517],{"class":62},[56,1100,1045],{"class":66},[14,1102,1103,1104,1052],{},".deb 패키지는 ",[53,1105,1106],{},"app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fdeb\u002F",[14,1108,1109],{},"설치:",[46,1111,1113],{"className":48,"code":1112,"language":50,"meta":51,"style":51},"sudo dpkg -i app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fdeb\u002F*.deb\n",[53,1114,1115],{"__ignoreMap":51},[56,1116,1117,1119,1122,1125,1128,1131],{"class":58,"line":59},[56,1118,63],{"class":62},[56,1120,1121],{"class":66}," dpkg",[56,1123,1124],{"class":83}," -i",[56,1126,1127],{"class":66}," app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fdeb\u002F",[56,1129,1130],{"class":83},"*",[56,1132,1133],{"class":66},".deb\n",[197,1135,1137],{"id":1136},"rpm-패키지-rpm","RPM 패키지 (.rpm)",[14,1139,1140],{},"Red Hat\u002FFedora 기반 배포판의 경우 추가 도구를 설치해야 합니다:",[46,1142,1144],{"className":48,"code":1143,"language":50,"meta":51,"style":51},"sudo apt install -y rpm\npnpm build:tauri\n",[53,1145,1146,1159],{"__ignoreMap":51},[56,1147,1148,1150,1152,1154,1156],{"class":58,"line":59},[56,1149,63],{"class":62},[56,1151,67],{"class":66},[56,1153,111],{"class":66},[56,1155,114],{"class":83},[56,1157,1158],{"class":66}," rpm\n",[56,1160,1161,1163],{"class":58,"line":73},[56,1162,517],{"class":62},[56,1164,1045],{"class":66},[14,1166,1167,1168,1052],{},".rpm 패키지는 ",[53,1169,1170],{},"app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Frpm\u002F",[18,1172,1174],{"id":1173},"문제-해결","문제 해결",[197,1176,1178],{"id":1177},"일반적인-문제","일반적인 문제",[1180,1181,1182,1214,1273,1322,1353],"ol",{},[29,1183,1184,1187,1190,1191],{},[206,1185,1186],{},"libwebkit2gtk-4.1 누락",[1188,1189],"br",{},"webkit 라이브러리 누락에 대한 오류가 발생하면:",[46,1192,1194],{"className":48,"code":1193,"language":50,"meta":51,"style":51},"# 이전 webkit 버전 시도\nsudo apt install -y libwebkit2gtk-4.0-dev\n",[53,1195,1196,1201],{"__ignoreMap":51},[56,1197,1198],{"class":58,"line":59},[56,1199,1200],{"class":101},"# 이전 webkit 버전 시도\n",[56,1202,1203,1205,1207,1209,1211],{"class":58,"line":73},[56,1204,63],{"class":62},[56,1206,67],{"class":66},[56,1208,111],{"class":66},[56,1210,114],{"class":83},[56,1212,1213],{"class":66}," libwebkit2gtk-4.0-dev\n",[29,1215,1216,1219],{},[206,1217,1218],{},"npm\u002Fpnpm 권한 거부",[46,1220,1222],{"className":48,"code":1221,"language":50,"meta":51,"style":51},"# npm 전역 디렉토리 권한 수정\nmkdir -p ~\u002F.npm-global\nnpm config set prefix '~\u002F.npm-global'\necho 'export PATH=~\u002F.npm-global\u002Fbin:$PATH' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n",[53,1223,1224,1229,1240,1256,1267],{"__ignoreMap":51},[56,1225,1226],{"class":58,"line":59},[56,1227,1228],{"class":101},"# npm 전역 디렉토리 권한 수정\n",[56,1230,1231,1234,1237],{"class":58,"line":73},[56,1232,1233],{"class":62},"mkdir",[56,1235,1236],{"class":83}," -p",[56,1238,1239],{"class":66}," ~\u002F.npm-global\n",[56,1241,1242,1244,1247,1250,1253],{"class":58,"line":120},[56,1243,470],{"class":62},[56,1245,1246],{"class":66}," config",[56,1248,1249],{"class":66}," set",[56,1251,1252],{"class":66}," prefix",[56,1254,1255],{"class":66}," '~\u002F.npm-global'\n",[56,1257,1258,1260,1263,1265],{"class":58,"line":128},[56,1259,345],{"class":83},[56,1261,1262],{"class":66}," 'export PATH=~\u002F.npm-global\u002Fbin:$PATH'",[56,1264,351],{"class":304},[56,1266,354],{"class":66},[56,1268,1269,1271],{"class":58,"line":136},[56,1270,325],{"class":83},[56,1272,354],{"class":66},[29,1274,1275,1278],{},[206,1276,1277],{},"네이티브 종속성으로 인한 빌드 실패",[46,1279,1281],{"className":48,"code":1280,"language":50,"meta":51,"style":51},"# 빌드 캐시 정리\ncargo clean\npnpm clean\n\n# 모든 것을 다시 빌드\npnpm install\npnpm build:tauri\n",[53,1282,1283,1288,1295,1301,1305,1310,1316],{"__ignoreMap":51},[56,1284,1285],{"class":58,"line":59},[56,1286,1287],{"class":101},"# 빌드 캐시 정리\n",[56,1289,1290,1292],{"class":58,"line":73},[56,1291,381],{"class":62},[56,1293,1294],{"class":66}," clean\n",[56,1296,1297,1299],{"class":58,"line":120},[56,1298,517],{"class":62},[56,1300,1294],{"class":66},[56,1302,1303],{"class":58,"line":128},[56,1304,602],{"emptyLinePlaceholder":601},[56,1306,1307],{"class":58,"line":136},[56,1308,1309],{"class":101},"# 모든 것을 다시 빌드\n",[56,1311,1312,1314],{"class":58,"line":144},[56,1313,517],{"class":62},[56,1315,975],{"class":66},[56,1317,1318,1320],{"class":58,"line":152},[56,1319,517],{"class":62},[56,1321,1045],{"class":66},[29,1323,1324,1327],{},[206,1325,1326],{},"AppImage 실행 불가",[46,1328,1330],{"className":48,"code":1329,"language":50,"meta":51,"style":51},"# AppImage를 실행 가능하게 만들기\nchmod +x app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fappimage\u002F*.AppImage\n",[53,1331,1332,1337],{"__ignoreMap":51},[56,1333,1334],{"class":58,"line":59},[56,1335,1336],{"class":101},"# AppImage를 실행 가능하게 만들기\n",[56,1338,1339,1342,1345,1348,1350],{"class":58,"line":73},[56,1340,1341],{"class":62},"chmod",[56,1343,1344],{"class":66}," +x",[56,1346,1347],{"class":66}," app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fappimage\u002F",[56,1349,1130],{"class":83},[56,1351,1352],{"class":66},".AppImage\n",[29,1354,1355,1358,1360,1361],{},[206,1356,1357],{},"GLIBC 버전 누락",[1188,1359],{},"GLIBC 버전에 대한 오류가 표시되면 Ubuntu 24.04 LTS 이상인지 확인하세요:",[46,1362,1364],{"className":48,"code":1363,"language":50,"meta":51,"style":51},"ldd --version\n",[53,1365,1366],{"__ignoreMap":51},[56,1367,1368,1371],{"class":58,"line":59},[56,1369,1370],{"class":62},"ldd",[56,1372,262],{"class":83},[197,1374,1376],{"id":1375},"그래픽-드라이버-문제","그래픽 드라이버 문제",[14,1378,1379],{},"최적의 성능을 위해 적절한 그래픽 드라이버가 설치되어 있는지 확인하세요:",[46,1381,1383],{"className":48,"code":1382,"language":50,"meta":51,"style":51},"# NVIDIA용\nsudo ubuntu-drivers autoinstall\n\n# AMD용\nsudo apt install -y mesa-vulkan-drivers\n\n# Intel용\nsudo apt install -y intel-media-va-driver\n",[53,1384,1385,1390,1400,1404,1409,1422,1426,1431],{"__ignoreMap":51},[56,1386,1387],{"class":58,"line":59},[56,1388,1389],{"class":101},"# NVIDIA용\n",[56,1391,1392,1394,1397],{"class":58,"line":73},[56,1393,63],{"class":62},[56,1395,1396],{"class":66}," ubuntu-drivers",[56,1398,1399],{"class":66}," autoinstall\n",[56,1401,1402],{"class":58,"line":120},[56,1403,602],{"emptyLinePlaceholder":601},[56,1405,1406],{"class":58,"line":128},[56,1407,1408],{"class":101},"# AMD용\n",[56,1410,1411,1413,1415,1417,1419],{"class":58,"line":136},[56,1412,63],{"class":62},[56,1414,67],{"class":66},[56,1416,111],{"class":66},[56,1418,114],{"class":83},[56,1420,1421],{"class":66}," mesa-vulkan-drivers\n",[56,1423,1424],{"class":58,"line":144},[56,1425,602],{"emptyLinePlaceholder":601},[56,1427,1428],{"class":58,"line":152},[56,1429,1430],{"class":101},"# Intel용\n",[56,1432,1433,1435,1437,1439,1441],{"class":58,"line":160},[56,1434,63],{"class":62},[56,1436,67],{"class":66},[56,1438,111],{"class":66},[56,1440,114],{"class":83},[56,1442,1443],{"class":66}," intel-media-va-driver\n",[197,1445,1447],{"id":1446},"도움-받기","도움 받기",[14,1449,1450],{},"여기서 다루지 않은 문제가 발생하면:",[1180,1452,1453,1464,1473],{},[29,1454,1455,1456,1463],{},"알려진 문제에 대해 ",[1457,1458,1462],"a",{"href":1459,"rel":1460},"https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP",[1461],"nofollow","Drop Compress Image 리포지토리"," 확인",[29,1465,1466,1467,1472],{},"Linux 관련 가이드는 ",[1457,1468,1471],{"href":1469,"rel":1470},"https:\u002F\u002Fv2.tauri.app\u002Fstart\u002Fprerequisites\u002F",[1461],"Tauri v2 문서"," 참고",[29,1474,1475],{},"기존 GitHub 이슈 검색하거나 새 이슈 생성",[18,1477,1479],{"id":1478},"다음-단계","다음 단계",[14,1481,1482],{},"Drop Compress Image가 성공적으로 빌드되면:",[1180,1484,1485,1495,1505,1511],{},[29,1486,1487,1490,1491,1494],{},[206,1488,1489],{},"테스트 실행",": ",[53,1492,1493],{},"pnpm test","를 실행하여 모든 것이 올바르게 작동하는지 확인",[29,1496,1497,1500,1501,1504],{},[206,1498,1499],{},"개발",": 핫 리로딩이 포함된 개발에는 ",[53,1502,1503],{},"pnpm dev:tauri"," 사용",[29,1506,1507,1510],{},[206,1508,1509],{},"사용자 정의",": 코드베이스를 탐색하고 수정 사항 적용",[29,1512,1513,1516,1517,1504],{},[206,1514,1515],{},"배포",": 배포 가능한 패키지를 만들려면 ",[53,1518,1519],{},"pnpm build:tauri",[14,1521,1522],{},"이제 Linux에서 Drop Compress Image를 개발하고 빌드할 준비가 되었습니다!",[1524,1525,1526],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":51,"searchDepth":73,"depth":73,"links":1528},[1529,1530,1531,1535,1540,1544,1548,1554,1560,1565,1570],{"id":20,"depth":73,"text":21},{"id":40,"depth":73,"text":41},{"id":87,"depth":73,"text":88,"children":1532},[1533,1534],{"id":199,"depth":120,"text":200},{"id":248,"depth":120,"text":249},{"id":268,"depth":73,"text":269,"children":1536},[1537,1538,1539],{"id":275,"depth":120,"text":276},{"id":314,"depth":120,"text":315},{"id":363,"depth":120,"text":364},{"id":394,"depth":73,"text":395,"children":1541},[1542,1543],{"id":401,"depth":120,"text":402},{"id":452,"depth":120,"text":453},{"id":478,"depth":73,"text":479,"children":1545},[1546,1547],{"id":485,"depth":120,"text":486},{"id":506,"depth":120,"text":507},{"id":522,"depth":73,"text":523,"children":1549},[1550,1551,1552,1553],{"id":529,"depth":120,"text":530},{"id":571,"depth":120,"text":572},{"id":659,"depth":120,"text":660},{"id":900,"depth":120,"text":249},{"id":925,"depth":73,"text":926,"children":1555},[1556,1557,1558,1559],{"id":932,"depth":120,"text":933},{"id":957,"depth":120,"text":958},{"id":978,"depth":120,"text":979},{"id":1004,"depth":120,"text":1005},{"id":1055,"depth":73,"text":1056,"children":1561},[1562,1563,1564],{"id":1062,"depth":120,"text":1063},{"id":1086,"depth":120,"text":1087},{"id":1136,"depth":120,"text":1137},{"id":1173,"depth":73,"text":1174,"children":1566},[1567,1568,1569],{"id":1177,"depth":120,"text":1178},{"id":1375,"depth":120,"text":1376},{"id":1446,"depth":120,"text":1447},{"id":1478,"depth":73,"text":1479},false,"md",null,{},"\u002Fbuild-linux",{"title":5,"description":16},"build-linux","2BG-R7E5szKIh05oKab7OSPkguLQ0mKuGYm-Oez9dVM",1780198564305]