In my current team, we are renewing our infrastructure going to instances GCE. We have almost everything working fine. There's one increment that we really like to do that is baking the binary outside the node and then copy to and from on bucket on cloud that binary.
So we have one pipeline building this binary and copying it to the node properly. The issue is that when we do that we get the following errors:
./tezos-node: error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory
This error just happens when the binary is built outside the node. When building on the node it works properly. The pipeline executes exactly the same steps that when executing in the nodes. I'm using a node running Ubuntu 20.04 and in the pipeline is a docker image with Ubuntu 20.04. This is the commands executed in the pipeline and nodes:
Rust
wget https://sh.rustup.rs/rustup-init.sh chmod +x rustup-init.sh ./rustup-init.sh --profile minimal --default-toolchain 1.44.0 -y source /root/.cargo/env
Zcash parameter for Tezos
wget https://raw.githubusercontent.com/zcash/zcash/master/zcutil/fetch-params.sh chmod +x fetch-params.sh ./fetch-params.sh
Installing OPAM
echo | sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) --version 2.0.9
opam init
opam update
opam switch create 4.10.2
eval opam config env
eval $(opam env)
Checkout Tezos
git clone https://gitlab.com/tezos/tezos.git cd tezos git checkout latest-release git rev-parse HEAD
#Tezos dependencies and compile apt-get install -y cargo make build-deps eval $(opam env) make
I really appreciate your help. Many thanks!
Luthiano