Open12
YugabyteDBをビルドしてみる
YugabyteDBの公式ドキュメントを参考にビルドしてみる
必要なパッケージをインストールする。
パッケージを見るあたりconfigureとninjaを使ってビルドするらしい
sudo apt-get update
packages=(
autoconf
cmake
curl
git
libtool
locales
ninja-build
patchelf
pkg-config
python3-pip
python3-venv
rsync
zip
)
sudo apt-get install -y "${packages[@]}"
sudo locale-gen en_US.UTF-8
YugabyteDBのテストには一部Javaが使われているみたいなのでJDKとmavenを入れる。
JDKは8か11が推奨らしいのでOpenJDK11.0.2を使う
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz.sha256
echo "$(cat openjdk-11.0.2_linux-x64_bin.tar.gz.sha256) openjdk-11.0.2_linux-x64_bin.tar.gz" | sha256sum --check
tar xf openjdk-11.0.2_linux-x64_bin.tar.gz-y
mv jdk-11.0.2 /usr/lib/java
sudo apt-get install -y maven
YugabyteDBにはビルド用コンテナは提供されていない。
Dockerfile化したものも置いておく
FROM docker.io/debian:bullseye-slim
RUN apt update &&\
apt install -y \
autoconf cmake curl git libtool ninja-build patchelf \
python3 python3-pip python3-venv rsync zip maven locales &&\
locale-gen en_US.UTF-8 &&\
cd /tmp &&\
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz &&\
curl -O https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz.sha256 &&\
echo "$(cat openjdk-11.0.2_linux-x64_bin.tar.gz.sha256) openjdk-11.0.2_linux-x64_bin.tar.gz" |\
sha256sum --check &&\
tar xf openjdk-11.0.2_linux-x64_bin.tar.gz &&\
mv jdk-11.0.2 /usr/lib/java &&\
rm /tmp/*
ansibleでも作った
- hosts: localhost
become: true
tasks:
- name: apt update
become: true
apt:
update_cache: yes
- name: apt upgrade
become: true
apt:
upgrade: yes
- name: apt autoremove
become: true
apt:
autoremove: yes
- name: apt install packages
become: true
apt:
name:
- autoconf
- cmake
- curl
- git
- libtool
- locales
- ninja-build
- patchelf
- pkg-config
- python3-pip
- python3-venv
- rsync
- zip
- openjdk-11-jdk
- maven
- ccache
- npm
- golang-1.18
- name: gen locale
shell: locale-gen en_US.UTF-8
ビルドしてみたらgit cloneしてビルドしてみたところllvm15が足りないと言われたのでllvmをインストールする
sudo apt install clang lldb lld
llvm15 があるのに同じエラーが出るなんでだ?
amd64だからか ?
sudo ./yb_build.sh release
~~中略~~
ValueError: Could not find an LLVM release for major LLVM version 15, OS/version ubuntu22.10, architecture x86_64
dpkg -l | egrep -i "clang|llvm"
ii clang 1:15.0-55.1ubuntu1 amd64 C, C++ and Objective-C compiler (LLVM based), clang binary
ii clang-15 1:15.0.6-3~ubuntu0.22.10.2 amd64 C, C++ and Objective-C compiler
ii libclang-common-15-dev 1:15.0.6-3~ubuntu0.22.10.2 amd64 Clang library - Common development package
ii libclang-cpp15 1:15.0.6-3~ubuntu0.22.10.2 amd64 C++ interface to the Clang library
ii libclang1-15 1:15.0.6-3~ubuntu0.22.10.2 amd64 C interface to the Clang library
ii libllvm15:amd64 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies, runtime library
ii lld:amd64 1:15.0-55.1ubuntu1 amd64 LLVM-based linker
ii lld-15 1:15.0.6-3~ubuntu0.22.10.2 amd64 LLVM-based linker
ii llvm-15 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies
ii llvm-15-dev 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies, libraries and headers
ii llvm-15-linker-tools 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies - Plugins
ii llvm-15-runtime 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies, IR interpreter
ii llvm-15-tools 1:15.0.6-3~ubuntu0.22.10.2 amd64 Modular compiler and toolchain technologies, tools
エラーメッセージで出てるAvailable PackagesにUbuntu22.10がない。
22.04に下げなきゃいけないのだろうか?
WARNING:root:Could not find an LLVM release for major LLVM version 15, OS/version ubuntu22.10, architecture x86_64. Available packages:
とりあえずUbuntuを22.04にさげたから近日中にリトライする
YugabyteDBのビルドではデフォルトではサードパーティのものはビルドしないため、それらをダウンロードするためのディレクトリを作成する。
sudo mkdir /opt/yb-build
sudo chown "$USER" /opt/yb-build
YugabyteDBのGitリポジトリをクローンし、ビルドコマンドを実行する。
git clone https://github.com/yugabyte/yugabyte-db.git
./yb_build.sh release
YugabyteDBのConfigure、エラーが出ても具体的に何を入れてほしいのかかかれないの辛い