Kompilacja bazy danych ze źródła

Na tej stronie opisaliśmy, jak zainstalować Bazel ze źródła i poznaliśmy wskazówki dotyczące rozwiązywania typowych problemów.

Aby utworzyć Bazel ze źródła, możesz wykonać jedną z tych czynności:

Zbuduj Bazel za pomocą Bazel

Podsumowanie

  1. Najnowszą wersję Bazela możesz znaleźć na stronie wersji GitHub lub w Bazelisku.

  2. Pobierz źródła Bazela z GitHuba i rozpakuj gdzieś. Zamiast tego możesz też skopiować drzewo źródłowe z https://github.com/bazelbuild/bazel

  3. Zainstaluj te same wymagania wstępne co przy rozruchu (patrz systemy podobne do Unix lub Windows).

  4. Utwórz kompilację bazy danych za pomocą Bazel: bazel build //src:bazel-dev (lub bazel build //src:bazel-dev.exe w systemie Windows)

  5. Powstały plik binarny to bazel-bin/src/bazel-dev (lub bazel-bin\src\bazel-dev.exe w systemie Windows). Możesz go skopiować w dowolnym miejscu i natychmiast bez konieczności instalacji.

Szczegółowe instrukcje znajdziesz poniżej.

Krok 1. Pobierz najnowszą wersję Bazel

Cel: zainstaluj lub pobierz wersję Baze. Sprawdź, czy polecenie można uruchomić, wpisując bazel w terminalu.

Przyczyna: aby utworzyć bazę w drzewie źródłowym GitHub, musisz mieć gotowy plik binarny Bazel. Możesz zainstalować taką aplikację za pomocą menedżera pakietów lub pobrać ją z GitHuba. Patrz: Installing Bazel. (możesz też tworzyć elementy z rysunku (butytrap)).

Rozwiązywanie problemów:

  • Jeśli nie możesz uruchomić Bazalu, wpisz bazel w terminalu:

    • Być może nie ma katalogu binarnego Bazel w katalogu PATH.

      To nie jest poważny problem. Zamiast wpisywać bazel, musisz wpisać pełną ścieżkę.

    • Może się zdarzyć, że plik binarny Bazel nie nazywa się bazel (w systemie Unix) ani bazel.exe (w systemie Windows).

      To nie jest poważny problem. Możesz zmienić nazwę pliku binarnego lub wpisać nazwę pliku binarnego zamiast bazel.

    • Być może plik binarny nie jest wykonywalny (w systemie Unix).

      Musisz utworzyć binarny plik wykonywalny, uruchamiając polecenie chmod +x /path/to/bazel.

Krok 2. Pobierz źródła Bazel z GitHuba

Jeśli znasz już Git, po prostu git clone https://github.com/bazelbuild/bazel

W innym przypadku:

  1. Pobierz najnowsze źródła jako plik ZIP.

  2. Wyodrębnij gdzieś treść.

    Na przykład utwórz katalog bazel-src w katalogu głównym i wyodrębnij go.

Krok 3. Zainstaluj wymagania wstępne

Zainstaluj te same wymagania wstępne co przy rozruchu (patrz niżej) – kompilator JDK, C++, MSYS2 (w przypadku systemu Windows) itp.

Krok 4a. Utwórz Bazel w systemie Ubuntu Linux, macOS i innych systemach Unix

Instrukcje dotyczące systemu Windows znajdziesz w artykule Tworzenie bazy danych w systemie Windows.

Cel: uruchomienie Bazelu, aby utworzyć niestandardowy plik binarny Baze (bazel-bin/src/bazel-dev).

Instrukcje:

  1. Uruchom terminal Bash

  2. cd do katalogu, w którym wyodrębniono (lub sklonowano) źródła Bazel.

    Jeśli na przykład wyodrębniono źródła z katalogu domowego, uruchom:

    cd ~/bazel-src
    
  3. Utwórz Bazel ze źródła:

    bazel build //src:bazel-dev
    

    Możesz też uruchomić polecenie bazel build //src:bazel --compilation_mode=opt, by otrzymać mniejszy plik binarny, ale wolniej jest kompilować.

  4. Dane wyjściowe będą wynosić bazel-bin/src/bazel-dev (lub bazel-bin/src/bazel).

Krok 4b. Zbuduj Bazel w systemie Windows

Instrukcje dotyczące systemów typu Unix znajdziesz w artykule na temat Ubuntu Linux, systemu macOS i innych systemów typu Unix.

Cel: uruchomienie Bazelu, aby utworzyć niestandardowy plik binarny Baze (bazel-bin\src\bazel-dev.exe).

Instrukcje:

  1. Uruchom wiersz polecenia (menu Start > Uruchom > cmd.exe”)

  2. cd do katalogu, w którym wyodrębniono (lub sklonowano) źródła Bazel.

    Jeśli na przykład wyodrębniono źródła z katalogu domowego, uruchom:

    cd %USERPROFILE%\bazel-src
    
  3. Utwórz Bazel ze źródła:

    bazel build //src:bazel-dev.exe
    

    Możesz też uruchomić bazel build //src:bazel.exe --compilation_mode=opt, by otrzymać mniejszy plik binarny, ale wolniej jest kompilować.

  4. Wyniki będą wynosić bazel-bin\src\bazel-dev.exe (lub bazel-bin\src\bazel.exe).

Krok 5. Zainstaluj utworzony plik binarny

Nie musisz nic instalować.

Wynikiem poprzedniego kroku jest samodzielny plik binarny Bazel. Możesz go skopiować do dowolnego katalogu i użyć go natychmiast. (Przydatny, jeśli katalog jest w ŚCIEPATHCE, bo wszędzie można uruchomić „bazela”).


Zbuduj Bazel od podstaw

Możesz też zbudować Bazel od zera bez używania istniejącego pliku binarnego Bazel.

Krok 1. Pobierz źródła Baze (archiwum dystrybucji)

(ten krok jest taki sam na wszystkich platformach).

  1. Pobierz bazel-<version>-dist.zip z GitHub, na przykład bazel-0.28.1-dist.zip.

    Uwaga:

    • Dostępne jest archiwum dystrybucji pojedynczego, niezależnego od architektury. Nie ma archiwów dystrybucji związanych z architekturą ani systemem operacyjnym.
    • Te źródła nie są tym samym co drzewo źródłowe GitHub. Aby uruchomić aplikację Bazel, musisz użyć archiwum dystrybucji. Nie możesz użyć drzewa źródłowego skopiowanego z GitHuba. Archiwum dystrybucji zawiera wygenerowane pliki źródłowe, które są wymagane do rozruchu i nie są częścią zwykłego drzewa źródłowego Git.
  2. Rozpakuj archiwum dystrybucji na dysku.

    Sprawdź podpis podpisany przez klucz wersji Bazela 3D5919B448457EE0.

Krok 2a. Bootstrap Bazel w systemie Ubuntu Linux, macOS i innych systemach typu Unix

Instrukcje dotyczące systemu Windows znajdziesz w artykule Bootstrap Bazel on Windows.

2.1. Zainstaluj wymagania wstępne

  • Bash

  • zip, unzip

  • Łańcuch narzędzi w C++

  • JDK Wymagana jest wersja 11.

  • Python Obsługiwane są wersje 2 i 3. Instalacja jednej z nich jest wystarczająca.

W systemie Ubuntu Linux możesz zainstalować te wymagania przy użyciu następującego polecenia:

sudo apt-get install build-essential openjdk-11-jdk python zip unzip

2.2. Bootstrap Bazel na Unix

  1. Otwórz szkielet lub okno terminala.

  2. cd do katalogu, w którym zostało rozpakowane archiwum dystrybucji.

  3. Uruchom skrypt kompilacji: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.

Skompilowane dane wyjściowe są umieszczane w output/bazel. Jest to samodzielny plik binarny Bazel, bez umieszczonego kodu JDK. Możesz go skopiować w dowolnym miejscu lub użyć. Dla ułatwienia skopiuj ten plik binarny do katalogu na urządzeniu PATH (na przykład /usr/local/bin w systemie Linux).

Aby utworzyć plik binarny bazel w taki sposób, który można odtworzyć, ustaw też SOURCE_DATE_EPOCH w kroku „Uruchamianie skryptu kompilacji”.

Krok 2b: Bootstrap Bazel w systemie Windows

Instrukcje dotyczące systemów Unix znajdziesz w artykule Bootstrap Bazel w systemie Ubuntu Linux, macOS i innych systemach typu Unix.

2.1. Zainstaluj wymagania wstępne

  • Powłoka MSYS2

  • Pakiety MSYS2 dla archiwów ZIP i Unzip. Uruchom następujące polecenie w powłoce MSYS2:

    pacman -S zip unzip patch
    
  • Kompilator Visual C++. Kompilator Visual C++ możesz zainstalować jako część Visual Studio 2015 lub nowszej wersji albo za pomocą najnowszych narzędzi Build Tools for Visual Studio 2017.

  • JDK 8. Musisz zainstalować wersję 8 pakietu JDK. Wersje inne niż 8 nie są obsługiwane.

  • Python Obsługiwane są wersje 2 i 3. Instalacja jednej z nich jest wystarczająca. Musisz mieć wersję natywną dla systemu Windows (możesz ją pobrać ze strony https://www.python.org). Wersje zainstalowane przez pacman w MSYS2 nie będą działać.

2.2. Bootstrap Bazel w systemie Windows

  1. Otwórz powłokę MSYS2.

  2. Ustaw te zmienne środowiskowe:

    • Może to być BAZEL_VS lub BAZEL_VC (nie będą to te same wartości): ustaw ścieżkę do katalogu Visual Studio (BAZEL_VS) lub na katalogu Visual C++ (BAZEL_VC). Jedna z nich wystarczy.
    • BAZEL_SH: ścieżka pakietu MSYS2 bash.exe. Zobacz polecenie w poniższych przykładach.

      Nie ustawiaj wartości C:\Windows\System32\bash.exe. Ten plik jest zainstalowany, jeśli masz zainstalowany podsystem Windows dla Linuksa. Bazel nie obsługuje tej wersji bash.exe.

    • PATH: dodaj katalog w języku Python.

    • JAVA_HOME: ustaw katalog JDK.

    Przykład (z BAZEL_VS):

    export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools"
    export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))"
    export PATH="/c/python27:$PATH"
    export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
    

    (lub BAZEL_VC):

    export BAZEL_VC="C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC"
    export BAZEL_SH="$(cygpath -m $(realpath $(which bash)))"
    export PATH="/c/python27:$PATH"
    export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_112"
    
  3. cd do katalogu, w którym zostało rozpakowane archiwum dystrybucji.

  4. Uruchom skrypt kompilacji: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh

Skompilowane dane wyjściowe są umieszczane w output/bazel.exe. Jest to samodzielny plik binarny Bazel, bez umieszczonego kodu JDK. Możesz go skopiować w dowolnym miejscu lub użyć. Dla ułatwienia skopiuj ten plik binarny do katalogu na urządzeniu PATH.

Aby utworzyć plik binarny bazel.exe w taki sposób, który można odtworzyć, ustaw też SOURCE_DATE_EPOCH w kroku „Uruchamianie skryptu kompilacji”.

Nie musisz uruchamiać Bazel z powłoki MSYS2. Bazela możesz uruchomić w wierszu polecenia (cmd.exe) lub PowerShell.