Processor

【라즈베리파이4 - bookworm】 bazel 설치하기

작성자 임베디드코리아 작성일25-12-19 00:29 조회144회 댓글0건
■ 바젤(Bazel)은 Google에서 개발한 오픈 소스 빌드 시스템 으로, 대규모 프로젝트의 빌드와 테스트를 효과적으로 관리하기 위해 설계되었다.
  공식 웹사이트: https://bazel.build
  ◆ 다양한 언어(C++, Java, Python, Go 등)를 지원하며, 멀티플랫폼 환경에서 일관된 빌드를 제공한다.
  ◆ 바젤( Bazel ) 은 Google 에서 개발한 오픈 소스 빌드 시스템 으로, 대규모 프로젝트의 빌드와 테스트를 효과적으로 관리하기 위해 설계되었다.
      ☞ Tensorflow 설치를 위한 빌드 도구로 사용한다.

    ▶ Bazel은 Google에서 개발한 오픈 소스 빌드 도구로, 대규모 소프트웨어 프로젝트를 위한 빌드 및 테스트 자동화 도구입니다.
    ▶ Bazel은 다양한 프로그래밍 언어를 지원하며, 소스 코드와 의존성을 기반으로 빌드를 실행합니다.
    ▶ Bazel은 큰 규모의 소프트웨어 프로젝트에서 사용하기에 최적화되어 있으며, 빌드 및 테스트의 속도와 정확성이 높은 특징을 가지고 있습니다.
    ▶ Bazel은 Java와 C++로 개발되었습니다.
    ▶ Bazel의 빌드 시스템은 C++로 작성되었으며, 빌드 라이브러리 및 다른 유틸리티는 Java로 작성되었습니다.
    ▶ Bazel은 Google의 내부 빌드 시스템인 Blaze에서 파생되었으며, Blaze 역시 Java와 C++로 개발되었습니다.
        -- > 이러한 이유로 Bazel은 Java와 C++을 비롯한 다양한 프로그래밍 언어를 지원할 수 있습니다.
        -- > 또한 Bazel은 다양한 운영 체제와 플랫폼에서 실행될 수 있도록 설계되었습니다.
    ▶ Bazel은 자동으로 빌드 그래프를 생성하여 의존성 관리를 자동화합니다.
      -- > 이를 통해 빌드 시스템이 어떤 파일을 빌드해야 하는지 자동으로 결정하고, 빌드 시간을 단축시킬 수 있습니다.
      -- > 또한 Bazel은 캐시를 이용하여 이전에 빌드한 결과를 저장하므로, 동일한 빌드가 여러 번 실행될 때 시간을 절약할 수 있습니다.
    ▶ Bazel은 다양한 빌드 설정을 지원하므로, 다양한 환경에서 소프트웨어를 빌드하고 테스트할 수 있습니다.

■ 바젤 주요 특징
    ▶ 높은 확장성 : 대규모 코드베이스를 빠르고 효율적으로 빌드 가능
    ▶ 재현 가능한 빌드 : 동일한 입력에 대해 항상 동일한 결과를 보장
    ▶ 병렬 빌드 : 멀티코어 환경에서 빌드 속도 최적화
    ▶ 캐싱 : 빌드 결과를 캐싱하여 반복 빌드 시간을 단축
    ▶ 의존성 관리 : 정확하고 일관된 의존성 추적

■ 바젤의 주요 구성 요소
    ▷ 바젤 빌드는 다음과 같은 주요 구성 요소로 이루어진다:
    ▷ WORKSPACE : 프로젝트의 루트 디렉토리를 정의하는 파일로, 외부 종속성 설정을 포함
    ▷ BUILD 파일 : 각 패키지의 빌드 설정을 정의하는 파일
    ▷ bazelrc : 사용자 정의 설정을 위한 구성 파일
    ▷ Starlark : 바젤의 빌드 스크립트를 작성하는 데 사용되는 Python 기반의 간단한 스크립팅 언어


------- < Bazel 설치하기 > ----------------------------------------------
1. jdk 설치하기
  $ sudo apt install openjdk-17-jdk-headless

  < trixie 일 경우 >
  $ sudo apt install default-jdk

2. Bazel 디랙토리 만들기
  $ mkdir Bazel

3. bazel-7.1.0를 다운로드 한다.
  $ w get  https://github.com/bazelbuild/bazel/releases/download/7.1.0/bazel-7.1.0-dist.zip

4. 생성한 Bazel 디렉토리에 압축을 풀어준다.
  $ unzip -d  Bazel/  bazel-7.1.0-dist.zip

5. 압축을 해제를 한 디렉토리로 접근하여 컴파일 한다.
  $ cd  Bazel/
  $ env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash  ./compile.sh
 INFO: Found 1 target...
Target //src:bazel_nojdk up-to-date:
  bazel-bin/src/bazel_nojdk
INFO: Elapsed time: 2362.077s, Critical Path: 526.58s
INFO: 3364 processes: 98 internal, 2396 local, 870 worker.
INFO: Build completed successfully, 3364 total actions
OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be
removed in a future release.
Build successful! Binary is here: /home/pi4/WORKSPACEs/Bazel/output/bazel

6. 복사하여 설치를 한다.
  $ sudo cp output/bazel  /usr/local/bin/

7. 설치 확인하기
  $ bazel --version
  $ which bazel