avm install 0.28.0 在 AWS EC2 Ubuntu 和 Digital Ocean Ubuntu Droplet 上出现“无法编译 `libsecp256k1` (lib) 错误”,本地没有问题

问题描述 投票:0回答:1

因此,我尝试使用智能合约和客户端设置 solana 锚点项目,但我无法在 AWS EC2 实例或 Digital ocean ubuntu Droplet 上正确安装锚点。请参阅附图:

我在本地 ubuntu 环境上运行安装命令时遇到零问题。我尝试了一些不同的方法,例如通过 npm 包管理器下载锚点、单独安装 libsecp256k1 等等。请参阅此处链接的 ChatGPT 会议:https://chat.openai.com/share/aad43512-5b68-4f1e-98cf-36a7645e4b82

我尝试使用的项目链接如下。我用它作为 solana 智能合约的基础。

https://www.youtube.com/watch?v=3GHlk6vosQw

https://github.com/chang47/Anchor-Mint-and-Transfer-Smart-Contract

以下是我一直关注的安装命令资源:

https://www.anchor-lang.com/docs/installation

https://lorisleiva.com/create-a-solana-dapp-from-scratch/getting-started-with-solana-and-anchor

这是我正在运行的安装命令的 Docker 版本。错误发生在“avm install 0.28.0”

# Use an official Node.js runtime as the base image
FROM node:14

# Set a working directory inside the container
WORKDIR /app

# Install necessary dependencies
RUN apt-get update && \
apt-get install -y \
build-essential \
curl \
libssl-dev \
pkg-config \
libsecp256k1-dev \
&& rm -rf /var/lib/apt/lists/*

# RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -y | sh

# Install Rust using the official install script
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.sh \
&& sh rustup-init.sh -y --default-toolchain stable --profile minimal \
&& rm rustup-init.sh

# Add Rust binaries to PATH
ENV PATH="/root/.cargo/bin:${PATH}"


# RUN source "$HOME/.cargo/env"
RUN sh -c "$(curl -sSfL https://release.solana.com/v1.16.7/install)"
ENV PATH="/root/.local/share/solana/install/active_release/bin:$PATH"


RUN cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
# Install the Anchor CLI
#RUN cargo install --git https://github.com/project-serum/anchor --branch avm --locked
RUN avm install 0.28.0
RUN avm use latest
amazon-web-services digital-ocean solana anchor-solana
1个回答
0
投票

根据 https://github.com/paritytech/libsecp256k1/issues/94,您至少需要 2GB RAM 来编译该库。鉴于此,您可以下载预构建的二进制文件或获取具有更多 RAM 的计算机。

© www.soinside.com 2019 - 2024. All rights reserved.