ARM 플랫폼에서 Apache Doris 컴파일하기
이 문서는 하드웨어 및 운영 체제 호환성, 의존성 설치, 빌드 과정을 포함하여 ARM64 플랫폼에서 Apache Doris를 컴파일하는 방법을 설명합니다.
이 문서는 참고용입니다. ARM 환경에 따라 다른 오류가 발생할 수 있습니다. doris-website 이슈에 문제를 보고하거나 해결 방법을 제출해 주세요.
3.0.3 버전부터 ARM 플랫폼에서 컴퓨팅과 스토리지가 분리된 모드로 컴파일하고 배포할 수 있습니다.
1. 하드웨어 및 운영 체제 호환성
다음 환경은 커뮤니티에서 검증되었습니다.
| 운영 체제 | 버전 | CPU 예시 |
|---|---|---|
| KylinOS | Kylin-Server-10-SP1-Release-Build04-20200711 | Phytium FT-2000+/64 |
| CentOS | 7.9 이상 (AltArch) | aarch64 |
| Ubuntu | 20.04 | aarch64 |
ARM 서버용 배포판은 메모리 페이지 크기가 4 KiB 또는 64 KiB인 커널을 제공합니다(KylinOS V10과 CentOS 7/8 aarch64는 일반적으로 64 KiB, Ubuntu는 4 KiB). getconf PAGESIZE로 확인하세요. Doris가 ARM에서 빌드하는 jemalloc은 --with-lg-page=16을 사용하므로 하나의 바이너리로 두 페이지 크기의 커널에서 모두 실행할 수 있습니다. 다만 일부 서드파티 라이브러리는 빌드 시점에 페이지 크기에 대한 가정을 고정합니다. 직접 빌드하거나 검증할 때는 실제 배포 대상 커널에서도 확인하세요. 자세한 내용은 FAQ 4.2의 4번 항목을 참조하세요.
참고 출력:
# KylinOS
$ cat /etc/.kyinfo
name=Kylin-Server
milestone=10-SP1-Release-Build04-20200711
arch=arm64
beta=False
time=2020-07-11 17:16:54
dist_id=Kylin-Server-10-SP1-Release-Build04-20200711-arm64-2020-07-11 17:16:54
$ cat /proc/cpuinfo
model name : Phytium,FT-2000+/64
# CentOS 7.9
$ lsb_release -a
LSB Version: :core-4.1-aarch64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (AltArch)
Release: 7.9.2009
Codename: AltArch
2. 소프트웨어 환경 설정
2.1 의존성 버전 참조 테이블(JDK 8 기준)
| 구성 요소 | 버전 | 참고 사항 |
|---|---|---|
| Git | 2.0+ | |
| JDK | 1.8.0 | 3.0+ 또는 master를 컴파일하려면 JDK 17 필요 |
| Maven | 3.6.3 | 3.9.9 권장 |
| NodeJS | 16.3.0 | |
| LDB Toolchain | 0.9.1 | ARM에서는 0.21+ 권장 |
| autoconf | 2.69 | 소스에서 설치 |
| bison | 3.0.4 | |
| 공통 시스템 패키지 | yum/apt로 자동 설치 | byacc, patch, automake, libtool, make, which, file, ncurses-devel, gettext-devel, unzip, bzip2, zip, util-linux, wget, git, python2 |
2.2 소프트웨어 환경 설치 명령어
- CentOS 7.9
- Ubuntu 20.04
- 다운로드한 패키지와 설치한 소프트웨어를 저장할 루트 디렉터리 생성
# Create the root directory for downloaded packages
mkdir /opt/tools
# Create the root directory for installed software
mkdir /opt/software
- 의존성 설치
- Git
# To skip the compilation hassle, install directly with yum
yum install -y git
- JDK 8
# When compiling Doris 2.1 or earlier versions, you can install JDK 8
# Option 1: Install directly with yum. The devel package provides tools such as jps
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# Option 2: Download the arm64 package, extract it, and configure environment variables
cd /opt/tools
wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz && \
tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
mv jdk1.8.0_291 /opt/software/jdk8
- JDK 17
# To compile Doris 3.0 (inclusive) or later versions, or the master branch, replace JDK 8 with JDK 17
yum install -y java-17-openjdk java-17-openjdk-devel
- Maven
cd /opt/tools
# Download, extract, and configure environment variables
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz && \
tar -zxvf apache-maven-3.9.9-bin.tar.gz && \
mv apache-maven-3.9.9 /opt/software/maven
- NodeJS
cd /opt/tools
# Download the arm64 package
wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz && \
tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
mv node-v16.3.0-linux-arm64 /opt/software/nodejs
- LDB Toolchain
cd /opt/tools
# Download the ARM version of LDB Toolchain
wget https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.21/ldb_toolchain_gen.aarch64.sh && \
bash ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
- 환경 변수 설정
# Configure environment variables (using JDK 8 as an example)
vim /etc/profile.d/doris.sh
export JAVA_HOME=/opt/software/jdk8
export MAVEN_HOME=/opt/software/maven
export NODE_JS_HOME=/opt/software/nodejs
export LDB_HOME=/opt/software/ldb_toolchain
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_JS_HOME/bin:$LDB_HOME/bin:$PATH
# Save, exit, and refresh environment variables
source /etc/profile.d/doris.sh
# Verify the installation (using JDK 8 as an example)
java -version
> java version "1.8.0_291"
mvn -version
> Apache Maven 3.9.9
node --version
> v16.3.0
gcc --version
> gcc-11
- 추가 환경 및 구성 요소 설치
# Install common system packages
sudo yum install -y byacc patch automake libtool make which file ncurses-devel gettext-devel unzip bzip2 bison zip util-linux wget git python2
# Install autoconf-2.69
cd /opt/tools
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
tar zxf autoconf-2.69.tar.gz && \
mv autoconf-2.69 /opt/software/autoconf && \
cd /opt/software/autoconf && \
./configure && \
make && \
make install
- apt 소프트웨어 소스 업데이트
apt-get update
- 셸 명령어 집합 확인
Ubuntu에서 /bin/sh는 기본적으로 bash 대신 dash를 가리킵니다. 일부 스크립트를 실행하려면 이를 bash로 전환해야 합니다. 먼저 현재 sh가 무엇을 가리키는지 확인하세요.
ls -al /bin/sh
다음 명령어로 전환하세요.
sudo dpkg-reconfigure dash
대화형 화면에서 no(dash를 기본 셸로 설정하지 않음)를 선택하면 /bin/sh가 bash를 가리키게 됩니다.
- 다운로드한 패키지와 설치한 소프트웨어를 저장할 루트 디렉터리 생성
# Create the root directory for downloaded packages
mkdir /opt/tools
# Create the root directory for installed software
mkdir /opt/software
- 의존성 설치
- Git
# Install directly with apt-get
apt-get -y install git
- JDK 8
# Download the arm64 package, extract it, and configure environment variables
cd /opt/tools
wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/jdk-8u291-linux-aarch64.tar.gz && \
tar -zxvf jdk-8u291-linux-aarch64.tar.gz && \
mv jdk1.8.0_291 /opt/software/jdk8
- JDK 17
# To compile Doris 3.0 (inclusive) or later versions, or the master branch, replace JDK 8 with JDK 17
apt-get -y install openjdk-17-jdk
- Maven
cd /opt/tools
# Download, extract, and configure environment variables
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz && \
tar -zxvf apache-maven-3.9.9-bin.tar.gz && \
mv apache-maven-3.9.9 /opt/software/maven
- NodeJS
cd /opt/tools
# Download the arm64 package
wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/node-v16.3.0-linux-arm64.tar.xz && \
tar -xvf node-v16.3.0-linux-arm64.tar.xz && \
mv node-v16.3.0-linux-arm64 /opt/software/nodejs
- LDB Toolchain
cd /opt/tools
# Download the ARM version of LDB Toolchain
wget https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.21/ldb_toolchain_gen.aarch64.sh && \
bash ldb_toolchain_gen.aarch64.sh /opt/software/ldb_toolchain/
- 환경 변수 설정
# Configure environment variables (using JDK 8 as an example)
vim /etc/profile.d/doris.sh
export JAVA_HOME=/opt/software/jdk8
export MAVEN_HOME=/opt/software/maven
export NODE_JS_HOME=/opt/software/nodejs
export LDB_HOME=/opt/software/ldb_toolchain
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_JS_HOME/bin:$LDB_HOME/bin:$PATH
# Save, exit, and refresh environment variables
source /etc/profile.d/doris.sh
# Verify the installation (using JDK 8 as an example)
java -version
> java version "1.8.0_291"
mvn -version
> Apache Maven 3.9.9
node --version
> v16.3.0
gcc --version
> gcc-11
- 추가 환경 및 구성 요소 설치
# Install common system packages
sudo apt install -y build-essential cmake flex automake bison binutils-dev libiberty-dev zip libncurses5-dev curl ninja-build
sudo apt-get install -y make
sudo apt-get install -y unzip
sudo apt-get install -y python2
sudo apt-get install -y byacc
sudo apt-get install -y automake
sudo apt-get install -y libtool
sudo apt-get install -y bzip2
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
sudo apt update
sudo apt install gcc-11 g++-11
sudo apt-get -y install autoconf autopoint
# Install autoconf-2.69
cd /opt/tools
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
tar zxf autoconf-2.69.tar.gz && \
mv autoconf-2.69 /opt/software/autoconf && \
cd /opt/software/autoconf && \
./configure && \
make && \
make install
3. 컴파일
ARM 플랫폼에서는 컴파일에 LDB Toolchain만 사용할 것을 권장합니다. 이 방법은 커밋 7f3564 이후의 Doris 버전에 적용됩니다.
LDB Toolchain 다운로드 및 설치 방법은 위 절을 참조하세요. 이후 빌드 단계는 LDB Toolchain으로 컴파일하기를 참조하세요. JDK와 NodeJS는 aarch64 버전으로 교체해야 합니다(위 절 참조).
미리 빌드된 서드파티 라이브러리를 다운로드하는 데 문제가 있다면 thirdparty/build-thirdparty.sh를 사용하여 직접 빌드하세요. 서드파티 라이브러리를 빌드할 때는 gcc를 사용하세요.
export DORIS_TOOLCHAIN=gcc
다음 빌드 옵션은 ARM에서 x86_64와 다르게 동작합니다.
- AVX2:
USE_AVX2는 x86_64에만 적용되므로 ARM에서는 설정할 필요가 없습니다. ARM 명령어 집합은ARM_MARCH로 선택합니다(4.0 이상, 기본값armv8-a+crc). 예를 들어ARM_MARCH=armv8-a+crc+simd sh build.sh --be와 같이 실행합니다. - libunwind: 4.1.3 이하(3.x 및 4.0 포함)에서는 ARM에서 libunwind가 동작하지 않으므로 빌드 전에
export USE_UNWIND=OFF를 설정해야 합니다. master(2026년 칠월)와 4.1.4부터는USE_UNWIND옵션이 제거되었습니다(apache/doris#64093). 모든 Linux 플랫폼에서 libunwind가 항상 활성화되며, 이 변수를 설정해도 더 이상 효과가 없습니다. 함께 제공되는 libunwind 1.6.2는 메모리 페이지 크기가 64 KiB인 커널에서 BE 시작 시 충돌을 일으킵니다. 자세한 내용은 FAQ 4.2의 4번 항목을 참조하세요. - Azure: 4.1 이하에서는
env.sh가 ARM에서 자동으로DISABLE_BUILD_AZURE=ON을 설정하므로 별도로 설정할 필요가 없습니다. 2026년 팔월부터 master(apache/doris#66908)는 ARM에서도 Azure 라이브러리를 빌드하고 기본적으로 BE에 링크합니다. 이를 사용하지 않으려면export DISABLE_BUILD_AZURE=ON을 설정하세요(BE가 해당 라이브러리를 링크하지 않음). 서드파티 라이브러리를 빌드할 때export DISABLE_THIRDPARTY_BUILD_AZURE=ON도 설정하면 Azure 자체의 빌드도 건너뜁니다.
컴파일 또는 시작 과정에서 여전히 문제가 발생한다면 FAQ를 참조하세요. 관련 해결 방법이 없다면 이슈를 등록해 주세요.
4. FAQ
4.1 컴파일 문제
1. 서드파티 라이브러리 libhdfs3.a 컴파일 시 디렉터리를 찾을 수 없음
-
증상:
컴파일 및 설치 중 다음 오류가 발생합니다.
not found lib/libhdfs3.a file or directory
-
원인:
서드파티 라이브러리 의존성을 다운로드하지 못했습니다.
-
해결 방법:
서드파티 다운로드 저장소를 사용하여 서드파티 라이브러리를 다시 컴파일하세요.
export REPOSITORY_URL=https://doris-thirdparty-repo.bj.bcebos.com/thirdparty
sh /opt/doris/thirdparty/build-thirdparty.sh
REPOSITORY_URL에는 모든 서드파티 라이브러리와 이전 버전의 소스 패키지가 포함되어 있습니다.
2. python 명령을 찾을 수 없음
-
증상:
build.sh를 실행하면 다음 예외가 발생합니다./opt/doris/env.sh: line 46: python: command not found
Python 2.7.18
-
원인:
시스템은 기본적으로
python2.7,python3.6,python2또는python3등의 명령으로 Python을 호출하지만, Doris 의존성에는python이라는 이름의 명령이 필요합니다(2.7+ 사용 가능). -
해결 방법:
/usr/bin/python에 심볼릭 링크를 생성하세요.
# Check the python installation directory
whereis python
# Create the symbolic link
sudo ln -s /usr/bin/python2.7 /usr/bin/python
3. 컴파일 후 output 디렉터리가 없음
-
증상:
build.sh가 완료된 후 해당 디렉터리에서output디렉터리를 찾을 수 없습니다. -
원인:
컴파일에 성공하지 못했습니다. 다시 컴파일하세요.
-
해결 방법:
sh build.sh --clean
4. spark-dpp 컴파일 실패
-
증상:
build.sh실행 중 spark-dpp를 컴파일할 때 오류가 보고됩니다.Failed to execute goal on project spark-dpp
-
원인:
Maven Central 저장소
repo.maven.apache.org에 연결할 수 없어 의존성을 다운로드할 수 없습니다.Could not transfer artifact org.apache.spark:spark-sql_2.12:jar:2.4.6 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/spark/spark-sql_2.12/2.4.6/spark-sql_2.12-2.4.6.jar: Unknown host repo.maven.apache.org
-
해결 방법:
네트워크를 확인하고 다시 빌드하세요.
5. 여유 공간 부족으로 컴파일 실패
-
증상:
컴파일 중 여유 공간이 없다는 메시지와 함께 CXX 객체 빌드가 실패합니다.
fatal error: error writing to /tmp/ccKn4nPK.s: No space left on device
1112 | } // namespace doris::vectorized
compilation terminated.
-
원인:
장치의 여유 공간이 부족합니다.
-
해결 방법:
불필요한 파일을 삭제하는 등의 방법으로 장치의 공간을 확보하세요.
6. pkg.config에서 pkg.m4를 찾을 수 없음
-
증상:
컴파일 중 "파일을 찾을 수 없음" 오류가 발생합니다.
Couldn't find pkg.m4 from pkg-config. Install the appropriate package for your distribution or set ACLOCAL_PATH to the directory containing pkg.m4.
로그를 보면
libxml2서드파티 라이브러리를 컴파일할 때 이 오류가 발생합니다. -
원인:
libxml2서드파티 라이브러리를 컴파일하는 동안pkg.m4를 찾을 수 없습니다. 가능한 원인은 다음과 같습니다.- Ubuntu 시스템에서 환경 변수를 불러오는 중 문제가 발생하여 ldb 디렉터리 아래의 인덱스를 정상적으로 불러오지 못합니다.
- libxml2 빌드 중 환경 변수 조회가 실패하여 빌드 과정에서
ldb/aclocal디렉터리를 검색하지 않습니다.
-
해결 방법:
pkg.m4파일을ldb/aclocal에서libxml2/m4디렉터리로 복사한 후 서드파티 라이브러리를 다시 빌드하세요.
cp /opt/software/ldb_toolchain/share/aclocal/pkg.m4 /opt/doris/thirdparty/src/libxml2-v2.9.10/m4
sh /opt/doris/thirdparty/build-thirdparty.sh
7. CURL_HAS_TLS_PROXY 테스트 실패
-
증상:
서드파티 패키지 컴파일 중 오류가 보고됩니다.
-- Performing Test CURL_HAS_TLS_PROXY - Failed
CMake Error at cmake/dependencies.cmake:15 (get_property):
INTERFACE_LIBRARY targets may only have whitelisted properties. The property "LINK_LIBRARIES_ALL" is not allowed.
로그를 확인하면 curl 헤더 파일을 찾을 수 없다는 내용이 나옵니다.
fatal error: curl/curl.h: No such file or directory
2 | #include <curl/curl.h>
compilation terminated.
ninja: build stopped: subcommand failed.
-
원인:
빌드에 LDB Toolchain 대신 시스템에 내장된 gcc 9.3.0이 사용되었습니다. LDB Toolchain 환경 변수를 올바르게 설정해야 합니다.
-
해결 방법:
LDB 환경 변수를 설정하세요.
# Configure environment variables
vim /etc/profile.d/ldb.sh
export LDB_HOME=/opt/software/ldb_toolchain
export PATH=$LDB_HOME/bin:$PATH
# Save, exit, and refresh environment variables
source /etc/profile.d/ldb.sh
# Test
gcc --version
> gcc-11
8. ninja failed with: signal: killed 메시지와 함께 컴파일 중단
-
증상:
BE 또는 서드파티 라이브러리 컴파일이 도중에 실패하며 다음 내용이 포함된 메시지가 표시됩니다.
ninja failed with: signal: killed
-
원인:
머신의 메모리가 부족합니다.
-
해결 방법:
메모리가 더 많은 머신(최소 16 GB)에서 컴파일하거나 빌드 동시 실행 수(
-j)를 줄이세요.
4.2 시작 문제
1. FE 시작 실패, 트랜잭션 -20 문제
-
증상:
FE를 시작하면 상태가 UNKNOWN인 트랜잭션 오류 20이 보고됩니다.
[BDBEnvironment.setup():198] error to open replicated environment. will exit.
com.sleepycat.je.rep.ReplicaWriteException: (JE 18.3.12) Problem closing transaction 20. The current state is:UNKNOWN. The node transitioned to this state at:Fri Apr 22 12:48:08 CST 2022
-
원인:
디스크 공간이 부족합니다.
-
해결 방법:
디스크 공간을 확보하거나 새 디스크를 마운트하세요.
2. BDB 환경 설정 예외, 디스크 조회 오류
-
증상:
FE가 위치한 디스크를 마이그레이션한 후 FE를 시작하면 예외가 발생합니다.
2022-04-22 16:21:44,092 ERROR (MASTER 172.28.7.231_9010_1650606822109(-1)|1) [BDBJEJournal.open():306] catch an exception when setup bdb environment. will exit.
com.sleepycat.je.DiskLimitException: (JE 18.3.12) Disk usage is not within je.maxDisk or je.freeDisk limits and write operations are prohibited: maxDiskLimit=0 freeDiskLimit=5,368,709,120 adjustedMaxDiskLimit=0 maxDiskOverage=0 freeDiskShortage=1,536,552,960 diskFreeSpace=3,832,156,160 availableLogSize=-1,536,552,960 totalLogSize=4,665 activeLogSize=4,665 reservedLogSize=0 protectedLogSize=0 protectedLogSizeMap=
-
원인:
FE의 위치가 변경되어 메타데이터에 기록된 디스크 정보가 일치하지 않습니다. 또는 디스크가 손상되었거나 마운트되지 않았을 수 있습니다.
-
해결 방법:
- 디스크가 정상 상태이며 올바르게 초기화되고 마운트되었는지 확인하세요.
- FE 메타데이터를 복구하세요.
- 테스트 환경에서는 메타데이터 디렉터리를 삭제한 후 다시 시작할 수 있습니다.
3. BE 시작 시 core dump 발생, core 스택에 libc.so 또는 glibc-compatibility/ 포함
-
원인:
현재 머신의 glibc 버전이 너무 낮습니다.
ldd --version으로 확인하세요. 버전이 2.27 미만이면 이 문제가 발생할 수 있습니다. -
해결 방법:
다음 환경 변수를 추가하여 BE를 다시 컴파일하세요.
export GLIBC_COMPATIBILITY=OFF
4. ARM에서 BE 시작 직후 core dump 발생, core 스택에 unw_backtrace, access_mem, is_plt_entry 포함
-
증상:
4.1.4 또는 2026년 칠월 이후의 master에서 빌드한 ARM BE는
start_be.sh실행 직후 세그먼테이션 오류가 발생합니다.be.out에는 BE 로그가 남지 않으며, core 스택(가장 안쪽 프레임부터)은 다음과 같습니다.access_mem
is_plt_entry
_ULaarch64_step
_ULaarch64_tdep_trace
unw_backtrace
...
__libc_csu_init또한
getconf PAGESIZE는 65536을 출력합니다. -
원인:
이 버전들은 ARM에서 GNU libunwind 1.6.2를 정적으로 링크합니다(apache/doris#64093). 이 라이브러리의 AArch64 메모리 검증기에는 페이지 크기가 4 KiB로 하드 코딩되어 있습니다. 메모리 페이지 크기가 64 KiB인 커널에서는 모든 검증이 실패하고, libunwind가
main()실행 전에 초기화되지 않은 주소를 역참조합니다. 페이지 크기가 4 KiB인 커널은 영향을 받지 않으므로 x86_64 또는 Ubuntu ARM에서는 이 문제가 재현되지 않습니다. -
해결 방법:
apache/doris#67877(libunwind를 1.8.3으로 업그레이드)이 포함된 코드에서 빌드하거나 해당 변경이 포함된 릴리스를 사용하세요. 그전까지는 페이지 크기가 64 KiB인 커널에서 4.1.3을 사용하세요. 충돌이
main()실행 전에 발생하므로be.conf설정으로는 이 문제를 우회할 수 없습니다.
4.3 다른 구성 요소 관련 문제
-
증상
다음 구성 요소에서 오류 메시지가 표시되면 아래의 동일한 해결 방법을 적용하세요.
- bison: bison-3.0.4 설치 시 fseterr.c 오류
- flex: flex 명령을 찾을 수 없음
- cmake: cmake 명령을 찾을 수 없음 / cmake가 의존 라이브러리를 찾을 수 없음 / cmake가 CMAKE_ROOT를 찾을 수 없음 / cmake가 CXX 환경 변수에 설정된 컴파일러를 찾을 수 없음
- boost: Boost.Build 엔진 빌드 실패
- mysql: mysql 클라이언트 의존성의 .a 파일을 찾을 수 없음
- gcc: GCC 11+ 필요
-
원인
컴파일에 올바른 LDB Toolchain이 사용되지 않았습니다.
-
해결 방법
- LDB Toolchain 환경 변수가 설정되어 있는지 확인하세요.
- gcc 버전이 LDB Toolchain으로 컴파일하기에서 권장하는 버전과 일치하는지 확인하세요.
ldb_toolchain_gen.aarch64.sh실행으로 생성된 ldb 디렉터리를 삭제하고 스크립트를 다시 실행한 후 환경 변수를 설정하고 gcc 버전을 확인하세요.