sudo apt-get install openssl libssl1.1 libssl-dev libpcre3 libpcre3-dev libcurl4-openssl-dev zlib1g zlib1g-dev
apt-get install g++ cmake libboost-dev make git
apt-get install libpcre3-dev libssl-dev perl make build-essential curl

grpc Install

cd /opt/opentelemetry
git clone -b v1.36.4 https://github.com/grpc/grpc
cd grpc
git submodule update --init

mkdir -p cmake/build
cd cmake/build

mkdir -p /opt/opentelemetry/grpc/third_party/abseil-cpp/cmake/build
pushd "/opt/opentelemetry/grpc/third_party/abseil-cpp/cmake/build"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON /opt/opentelemetry/grpc/third_party/abseil-cpp
sudo make -j4 install
popd
cmake /opt/opentelemetry/grpc -DgRPC_INSTALL=ON -DCMAKE_BUILD_TYPE=Release -DgRPC_BUILD_TESTS=OFF -DgRPC_ABSL_PROVIDER=package -DgRPC_SSL_PROVIDER=package
sudo make -j4 install

opentelemetry-cpp Install

cd ~/software/opentelemetry-cpp
git clone --recursive -b v0.7.0 https://github.com/open-telemetry/opentelemetry-cpp
git submodule update --init

mkdir build && cd build

[optional]sudo chmod -R 755 /usr/local/

cmake .. -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_TESTING=OFF -DWITH_EXAMPLES=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_OTLP=ON \
-DCMAKE_INSTALL_PREFIX=/opt/opentelemetry/opentelemetry-cpp-build \
-DCMAKE_PREFIX_PATH=/opt/opentelemetry/opentelemetry-cpp-build

make -j2
sudo make install

if any problems occur, you can try this command first

[optional]sudo chmod -R 755 ~/software/

otel-nginx Install

cd ~/software/otel-nginx
git clone https://github.com/open-telemetry/opentelemetry-cpp-contrib.git
mkdir -p opentelemetry-cpp-contrib/build && cd opentelemetry-cpp-contrib/build
cmake .. -DCMAKE_PREFIX_PATH=/opt/opentelemetry/opentelemetry-cpp-build
make