Kaynaktan Bazel derleniyor

Bu sayfada, Bazel'ın kaynaktan nasıl yükleneceği açıklanmakta ve sık karşılaşılan sorunlarla ilgili sorun giderme ipuçları sağlanmaktadır.

Bazel'i kaynaktan derlemek için aşağıdakilerden birini yapabilirsiniz:

Bazel'i Bazel kullanarak derleme

Özet

  1. GitHub sürüm sayfasından veya Bazelisk kullanarak Bazel'in en son sürümünü edinin.

  2. Bazel'in kaynaklarını GitHub'dan indirin ve bir yere çıkarın. Alternatif olarak, https://github.com/bazelbuild/bazel adresinden kaynak ağacını Git klonlayabilirsiniz

  3. Önyüklemeyle aynı ön koşulları yükleyin (Unix benzeri sistemler veya Windows için bkz.)

  4. Bazel kullanarak bir Bazel geliştirme derlemesi oluşturun: bazel build //src:bazel-dev (veya Windows'da bazel build //src:bazel-dev.exe)

  5. Elde edilen ikili dosya bazel-bin/src/bazel-dev (veya Windows'ta bazel-bin\src\bazel-dev.exe) konumundadır. İstediğiniz yere kopyalayıp başka bir kurulum yapmadan hemen kullanabilirsiniz.

Ayrıntılı talimatları aşağıda bulabilirsiniz.

1. Adım: En son Bazel sürümünü edinin

Hedef: Bazel'in yayınlanan bir sürümünü yükleyin veya indirin. Bir terminale bazel yazarak bu komutu çalıştırabileceğinizden emin olun.

Nedeni: Bazel'i bir GitHub kaynak ağacından derlemek için önceden oluşturulmuş bir Bazel ikilisine ihtiyacınız vardır. Paket yöneticisinden yükleyebilir veya GitHub'dan indirebilirsiniz. Bkz. Bazel'i Yükleme. (Dilerseniz Scratch'tan (bootstrap)) derleme yapabilirsiniz.)

Sorun giderme:

  • Bir terminale bazel yazarak Bazel'i çalıştıramıyorsanız:

    • Belki de Bazel ikili programınızın dizini PATH üzerinde değildir.

      Bu büyük bir sorun değildir. bazel yazmak yerine tam yolu yazmanız gerekir.

    • Bazel ikilisinin kendisi bazel (Unexes'te) veya bazel.exe (Windows'da) olarak adlandırılmamış olabilir.

      Bu önemli bir sorun değil. İkili dosyayı yeniden adlandırabilir veya bazel yerine ikili dosyanın adını yazabilirsiniz.

    • İkili dosya yürütülebilir olmayabilir (Unix'te).

      chmod +x /path/to/bazel komutunu çalıştırarak ikili programı yürütülebilir hale getirmeniz gerekir.

2. Adım: Bazel'in kaynaklarını GitHub'dan indirin

Git hakkında bilginiz varsa https://github.com/bazelbuild/bazel adresinden git clone komutunu kullanarak kodu kopyalayın.

Diğer durumlarda:

  1. En son kaynakları zip dosyası olarak indirin.

  2. İçeriği bir yere ayıklayın.

    Örneğin, ana dizininizin altında bir bazel-src dizini oluşturun ve bu dizini oradan çıkarın.

3. adım: Ön koşulları yükleyin

İlk başlatma için gereken ön koşullarla aynı ön koşulları (aşağıya bakın) yükleyin: JDK, C++ derleyicisi, MSYS2 (Windows'da derliyorsanız) vb.

4a. adım: Ubuntu Linux, macOS ve Unix benzeri diğer sistemlerde Bazel'i derleyin

Windows ile ilgili talimatlar için Windows'ta Bazel derleme başlıklı makaleye bakın.

Hedef: Özel bir Bazel ikili dosyası (bazel-bin/src/bazel-dev) oluşturmak için Bazel'i çalıştırın.

Talimatlar:

  1. Bash terminali başlatma

  2. cd dosyasını, Bazel'in kaynaklarını ayıkladığınız (veya kopyaladığınız) dizine kopyalayın.

    Örneğin, kaynakları ana dizininizdeki bir klasöre çıkardıysanız şu komutu çalıştırın:

    cd ~/bazel-src
    
  3. Bazel'ı kaynaktan derleyin:

    bazel build //src:bazel-dev
    

    Alternatif olarak, daha küçük bir ikili oluşturmak için bazel build //src:bazel --compilation_mode=opt çalıştırabilirsiniz ancak bu işlemin derlenmesi daha yavaştır.

  4. Çıkış değeri bazel-bin/src/bazel-dev (veya bazel-bin/src/bazel) olur.

4b. adım: Bazel'i Windows'ta derleyin

Unix benzeri sistemlerle ilgili talimatlar için Ubuntu Linux, macOS ve Unix benzeri diğer sistemler başlıklı makaleyi inceleyin.

Hedef: Özel bir Bazel ikili programı oluşturmak için Bazel'i çalıştırın (bazel-bin\src\bazel-dev.exe).

Talimatlar:

  1. Komut İstemi'ni başlatın (Başlat Menüsü > Çalıştır > "cmd.exe")

  2. cd dosyasını, Bazel'in kaynaklarını ayıkladığınız (veya kopyaladığınız) dizine kopyalayın.

    Örneğin, kaynakları ana dizininizdeki bir klasöre çıkardıysanız şu komutu çalıştırın:

    cd %USERPROFILE%\bazel-src
    
  3. Bazel'ı kaynaktan derleyin:

    bazel build //src:bazel-dev.exe
    

    Alternatif olarak, daha küçük bir ikili oluşturmak için bazel build //src:bazel.exe --compilation_mode=opt'ü çalıştırabilirsiniz ancak bu yöntemin derleme hızı daha düşüktür.

  4. Çıkış bazel-bin\src\bazel-dev.exe (veya bazel-bin\src\bazel.exe) adresinde olur.

5. adım: Oluşturulan ikili dosyayı yükleyin

Aslında yüklenecek bir şey yok.

Önceki adımın çıktısı, bağımsız bir Bazel ikili programıdır. Dosyayı herhangi bir dizine kopyalayıp hemen kullanabilirsiniz. ("bazel"i her yerde çalıştırabilmeniz için bu dizinin PATH'inizde olması faydalıdır.)


Bazel'ı sıfırdan derleme (önyükleme)

Mevcut bir Bazel ikili dosyası kullanmadan Bazel'i sıfırdan da derleyebilirsiniz.

1. Adım: Bazel kaynaklarını (dağıtım arşivi) indirin

(Bu adım tüm platformlar için aynıdır.)

  1. bazel-<version>-dist.zip uygulamasını GitHub'dan indirin (örneğin, bazel-0.28.1-dist.zip).

    Dikkat:

    • Tek bir mimariden bağımsız dağıtım arşivi vardır. Mimari veya işletim sistemine özel dağıtım arşivleri yoktur.
    • Bu kaynaklar, GitHub kaynak ağacıyla aynı değildir. Bazel'i önyüklemek için dağıtım arşivini kullanmanız gerekir. GitHub'dan klonlanan bir kaynak ağacını kullanamazsınız. (Dağıtım arşivi, önyükleme için gereken ve normal Git kaynak ağacının parçası olmayan oluşturulmuş kaynak dosyaları içerir.)
  2. Dağıtım arşivini diskteki bir yere açın.

    Bazel'in sürüm anahtarı 3D5919B448457EE0 ile oluşturulan imzayı doğrulamanız gerekir.

2a. adım: Ubuntu Linux, macOS ve Unix benzeri diğer sistemlerde Bazel'i başlatın

Windows talimatları için Windows'da Bazel'i başlatma başlıklı makaleyi inceleyin.

2.1. Ön koşulları yükleme

  • Bash

  • sıkıştırma, sıkıştırmayı açma

  • C++ derleme araç zinciri

  • JDK. Sürüm 21 gerekir.

  • Python. Sürüm 2 ve 3 desteklenir, bunlardan birinin yüklenmesi yeterlidir.

Örneğin, Ubuntu Linux'te aşağıdaki komutu kullanarak bu gereksinimleri yükleyebilirsiniz:

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

2.2. Unix'te Bootstrap Bazel

  1. Bir kabuk veya Terminal penceresi açın.

  2. cd öğesini, dağıtım arşivini açtığınız dizine ekleyin.

  3. Derleme komut dosyasını çalıştırın: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" bash ./compile.sh.

Derlenen çıkış output/bazel içine yerleştirilir. Bu, yerleşik JDK'ya sahip olmayan bağımsız bir Bazel ikili programıdır. Bu dosyayı kopyalayıp istediğiniz yere yerleştirebilir veya yerinde kullanabilirsiniz. İşinizi kolaylaştırmak için bu ikili programı, PATH üzerindeki bir dizine (ör. Linux'taki /usr/local/bin) kopyalayın.

bazel ikilisini yeniden üretilebilir şekilde derlemek için "Derleme komut dosyasını çalıştır" adımında da SOURCE_DATE_EPOCH değerini ayarlayın.

2. Adım (b): Windows'da Bazel'i temel hazırlayın

Unix benzeri sistemlerle ilgili talimatlar için Ubuntu Linux, macOS ve diğer Unix benzeri sistemlerde Bazel'i başlatma başlıklı makaleyi inceleyin.

2.1. Gerekli ön koşulları yükleme

  • MSYS2 kabuğu

  • Sıkıştırma ve sıkıştırılmış dosya açma için MSYS2 paketleri. MSYS2 kabuğunda aşağıdaki komutu çalıştırın:

    pacman -S zip unzip patch
    
  • Visual C++ derleyicisi. Visual Studio 2015 veya daha yeni bir sürümün bir parçası olarak ya da en yeni Visual Studio 2017 için Derleme Araçları'nı yükleyerek Visual C++ derleyicisini yükleyin.

  • JDK. Sürüm 21 gerekir.

  • Python. 2 ve 3 sürümleri desteklenir. Bunlardan birini yüklemeniz yeterlidir. Windows'a özgü sürüme (https://www.python.org adresinden indirilebilir) ihtiyacınız vardır. MSYS2'de pacman aracılığıyla yüklenen sürümler çalışmaz.

2.2. Windows'da Bazel'i temellendirme

  1. MSYS2 kabuğunu açın.

  2. Aşağıdaki ortam değişkenlerini ayarlayın:

    • BAZEL_VS veya BAZEL_VC (aynı değildir): Visual Studio dizininin (BAZEL_VS) veya Visual C++ dizininin (BAZEL_VC) yolunu ayarlayın. Bunlardan birini ayarlamak yeterli olur.
    • BAZEL_SH: MSYS2'nin yolu bash.exe. Aşağıdaki örneklerde komutu görebilirsiniz.

      Bunu C:\Windows\System32\bash.exe olarak ayarlamayın. (Linux için Windows alt sistemini yüklediyseniz bu dosyaya sahipsiniz.) Bazel, bash.exe'ın bu sürümünü desteklemiyor.

    • PATH: Python dizinini ekleyin.

    • JAVA_HOME: JDK dizinine ayarlayın.

    Örnek (BAZEL_VS kullanılarak):

    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/jdk-21"
    

    veya (BAZEL_VC kullanılarak):

    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/jdk-21"
    
  3. cd dosyasını, dağıtım arşivinin paketini açtığınız dizine taşıyın.

  4. Derleme komut dosyasını çalıştırın: env EXTRA_BAZEL_ARGS="--tool_java_runtime_version=local_jdk" ./compile.sh

Derlenen çıktı, output/bazel.exe konumuna yerleştirilir. Bu, yerleşik JDK'ya sahip olmayan bağımsız bir Bazel ikili programıdır. Bunu istediğiniz yere kopyalayabilir veya yerinde kullanabilirsiniz. Kolaylık sağlamak için bu ikili dosyayı PATH cihazınızdaki bir dizine kopyalayın.

bazel.exe ikili programını yeniden oluşturulabilir bir şekilde derlemek için "Derleme komut dosyasını çalıştırma" adımında SOURCE_DATE_EPOCH değerini de ayarlayın.

Bazel'i MSYS2 kabuğundan çalıştırmanız gerekmez. Bazel'i Komut İstemi (cmd.exe) veya Powershell'den çalıştırabilirsiniz.