区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载本文以 EOSIO开源智能合约平台仓库内置的自动化 Shell 脚本为线索系统讲解如何从源码构建 EOSIO 全流程获取源码与子模块、编译二进制、安装到本地、运行测试套件以及彻底卸载并清理依赖。读者将掌握eos/scripts目录下eosio_build.sh、eosio_install.sh、eosio_uninstall.sh三个核心脚本的全部命令行参数与执行逻辑并理解脚本背后的目录规划、依赖版本约束和平台分发机制可直接在 Ubuntu、CentOS、Amazon Linux 与 macOS 上复现整套构建流程。概述脚本自动化 EOSIO 的完整生命周期EOSIO 的构建、安装、测试与卸载均可通过仓库自带的 Shell 脚本自动完成。这些脚本位于仓库根目录的scripts文件夹参见 scripts/其作用不仅限于编译还覆盖了依赖安装、系统级部署与清理等环节可以看作一条从零开始的自动化流水线脚本职责scripts/eosio_build.sh先安装全部依赖再构建 EOSIO 二进制scripts/eosio_install.sh将构建产物安装到系统/用户目录scripts/eosio_uninstall.sh卸载 EOSIO 并可选卸载依赖与数据目录scripts/eosio_build_ubuntu.sh/eosio_build_centos.sh/eosio_build_amazonlinux.sh/eosio_build_darwin.sh各操作系统专属的依赖安装脚本由eosio_build.sh按平台分发调用scripts/eosio_build_*_deps各平台依赖清单文件供安装与卸载脚本读取eosio_build.sh内部参见 scripts/eosio_build.sh会先执行平台专属脚本完成依赖编译再统一进入cmake配置与make编译阶段最终输出构建耗时与后续安装/卸载提示。提示源码构建适合有一定经验的开发者。如果你刚接触 EOSIO官方推荐直接安装 EOSIO 预编译二进制包而非从源码构建。支持的构建平台Shell 脚本构建方式支持的平台与 EOSIO 官方支持矩阵一致参见 docs/00_install/index.mdLinux 发行版Amazon Linux 2、CentOS Linux 7.x / 8.x、Ubuntu 16.04 / 18.04 / 20.04macOSmacOS 10.14 (Mojave) 或更高版本脚本同样会校验运行环境scripts/helpers/eosio.sh 中通过/etc/os-release与uname识别发行版非支持平台会直接打印错误并退出YUMCentOS/Amazon Linux或 APTUbuntu缺失时也会中止执行。第一步下载 EOSIO 源码克隆仓库与子模块EOSIO 依赖大量第三方子模块如libraries/chainbase、libraries/fc、libraries/eos-vm等克隆时必须携带--recursive参数。官方建议先在 home 目录创建eosio文件夹将所有 EOSIO 相关软件集中存放mkdir -p ~/eosio cd ~/eosio git clone --recursive https://github.com/EOSIO/eos更新子模块如果克隆时遗漏了--recursive标志在启动构建之前必须手动补全子模块否则编译必然失败构建脚本也会再次检查cd ~/eosio/eos git submodule update --init --recursive拉取最新变更日常git pull拉取远端更新、特别是切换分支之后子模块同样需要同步。既可以用上面的git submodule命令也可以在pull时直接递归更新# 可选先切换分支 git checkout branch git pull --recurse-submodules脚本对非 git 克隆的防御构建脚本对源码来源有硬性要求scripts/eosio_build.sh 调用ensure-git-clone检查仓库是否为合法的 git 克隆同时子模块状态会通过ensure-submodules-up-to-date复核。因此不要用普通压缩包解压的方式获取源码否则构建会在早期阶段被拦截。第二步构建 EOSIO 二进制进入仓库根目录后直接启动构建脚本cd ~/eosio/eos ./scripts/eosio_build.sh脚本会依次完成环境探测 → 依赖安装 → cmake 配置 → 并行编译。整个构建过程产生的临时内容写入eos/build目录构建完成后各程序二进制位于eos/build/programs对应 nodeos、cleos、keosd、eosio-launcher、eosio-blocklog 等程序参见 programs/。eosio_build.sh 完整参数说明构建脚本内置了丰富的命令行选项用法与默认值见 scripts/eosio_build.sh参数含义默认值 / 取值范围-P使用固定版本pinned的 clang 与 libcxx 编译默认关闭-o TYPE构建类型Release可选Debug、RelWithDebInfo、MinSizeRel-s NAME核心代币符号Core Symbol NameSYS1~7 个字符超过 7 个字符会被判为非法参数-b DIR使用 DIR 目录中预先构建好的 Boost跳过 Boost 编译默认从源码编译 Boost-i DIR依赖与 EOSIO 的安装目录默认$HOME-y非交互模式自动对所有提示回答 yes默认关闭-c启用代码覆盖率Code Coverage默认关闭-d生成 Doxygen 文档默认关闭-h打印用法并退出—组合使用示例例如以 Debug 模式、自定义代币符号并指定安装目录构建./scripts/eosio_build.sh -o Debug -s EOS -i /opt/eosio -y构建流程的源码级剖析对照 scripts/eosio_build.sh 可以看到脚本的实际执行链路定位仓库根目录无论从何处调用脚本都通过cd $(dirname ${BASH_SOURCE[0]})/..回到仓库根支持相对路径调用。加载公共函数库引入 scripts/helpers/eosio.sh 中的环境探测、setup、ensure-*等辅助函数。前置检查依次执行ensure-sudo、ensure-which、ensure-git-clone缺少 sudo 或which工具时提示安装。安装目录确认install-directory-prompt引导用户确认EOSIO_INSTALL_DIR默认$HOME若检测到已安装过同版本previous-install-prompt会建议先运行卸载脚本。清理并重建构建目录setup会删除旧的BUILD_DIR并重建src/opt/var/etc/bin/lib等目录结构目录规划见下文。cmake 版本校验脚本要求 cmake ≥ 3.16.2版本常量定义于 scripts/.build_vars不足时在 Linux 上自动安装在 Darwin 上直接报错退出。按平台分发依赖安装通过$NAME匹配平台脚本——Ubuntu 走 scripts/eosio_build_ubuntu.shCentOS 走 scripts/eosio_build_centos.shAmazon Linux 走 scripts/eosio_build_amazonlinux.shmacOS 走 scripts/eosio_build_darwin.sh。cmake 配置以-DCMAKE_BUILD_TYPE、-DCORE_SYMBOL_NAME、-DCMAKE_INSTALL_PREFIX等参数配置构建-P开启时注入 pinned toolchainpinned_toolchain.cmake否则显式指定CXX/CC编译器。并行编译make -j$JOBS其中JOBS由set_system_vars依据 CPU 核数与内存动态计算。关键依赖版本一览EOSIO 对第三方依赖版本有严格约束这些常量集中定义在 scripts/.build_varsCMake3.16.2Boost1.72.0默认编译进${EOSIO_INSTALL_DIR}/src链接到${EOSIO_INSTALL_DIR}/opt/boostLLVM / Clangllvmorg-10.0.0LLVM 安装于${EOSIO_INSTALL_DIR}/opt/llvmDoxygen1.8.14Tini0.18.0磁盘下限DISK_MIN5即至少预留 5 GB 磁盘空间不足时脚本会给出资源告警脚本结尾的resources函数会打印磁盘、内存等资源状态。第三步安装 EOSIO 二进制从源码构建完成后强烈建议立即安装安装会将二进制复制到集中位置如/usr/local/bin或~/eosio/x.y/bin其中x.y为版本号显著提升本地开发体验。安装后即可继续配置和使用 nodeos。方式一一键安装脚本在仓库根目录执行cd ~/eosio/eos ./scripts/eosio_install.sh脚本 scripts/eosio_install.sh 会首先检查${BUILD_DIR}/CMakeCache.txt是否存在——即确认你已经成功执行过eosio_build.sh否则直接报错退出随后进入构建目录执行make install把二进制部署到${EOSIO_INSTALL_DIR}/bin。安装系统目录需要相应权限sudo。方式二手动执行 make install也可以跳过安装脚本直接在构建目录里手动安装效果等价cd ~/eosio/eos/build make install同样需要足够的系统目录写入权限。安装目录布局安装路径由构建时确认的EOSIO_INSTALL_DIR默认$HOME决定目录规划定义于 scripts/.build_vars目录变量默认路径用途SRC_DIR$HOME/src第三方依赖源码Boost、Doxygen 等OPT_DIR$HOME/opt预编译依赖Boost 链接、LLVM、ClangVAR_DIR$HOME/var运行时变量数据与日志ETC_DIR$HOME/etc配置文件BIN_DIR$HOME/binEOSIO 程序二进制LIB_DIR$HOME/lib链接库DATA_DIR$HOME/data数据目录第四步测试构建产物构建成功后可运行测试套件对安装做基本验证。测试基于 CTest进入构建目录执行cd ~/eosio/eos/build make test测试体系覆盖单元测试与集成测试unittests/目录包含abi_tests.cpp、chain_tests.cpp、wasm_tests.cpp、eosio.token_tests.cpp等大量测试用例更完整的 Python 集成测试位于 tests/如nodeos_run_test.py、p2p_network_test.py、launcher_test.py并通过make test统一调度。构建脚本在编译结束后也会提示你执行cd ${BUILD_DIR} make test见 scripts/eosio_build.sh。第五步卸载 EOSIO在以下两种场景下建议先运行卸载脚本再做下一步操作之前从源码构建过 EOSIO现在想改装预编译二进制包打算从零重新构建源码。在仓库根目录执行cd ~/eosio/eos ./scripts/eosio_uninstall.sh卸载脚本 scripts/eosio_uninstall.sh 支持的参数参数含义-i DIR指定 EOSIO 安装目录支持相对路径会自动转换为绝对路径-y非交互模式对所有提示回答 yes-f额外删除数据目录$HOME/.local/share/eosio等使用前务必确认——删除后需要重新同步数据可能耗时数天脚本行为要点检测EOSIO_INSTALL_DIR下是否确实存在安装存在时逐项确认删除。依赖卸载提示脚本会提示是否同时卸载 EOSIO 依赖。官方建议在安装预编译二进制包或首次从源码构建时执行依赖卸载。macOS 上它会按 scripts/eosio_build_darwin_deps 中的清单逐个brew uninstall并清理缓存。-f单独使用时会先向用户确认删除数据目录将需要数天重新同步是否继续-f -y组合则跳过确认直接删除。常见问题与注意事项新用户 vs 进阶用户新用户建议走 预编译二进制安装 路线macOS 用brew install eosioUbuntu 用.deb包CentOS/Amazon Linux 用.rpm包只有进阶开发者、节点运营者或目标平台无现成二进制时才需要源码构建。若曾用脚本安装过源码版本装预编译包前必须先运行卸载脚本。版本冲突脚本检测到${EOSIO_INSTALL_DIR}已存在同版本安装时会给出警告提示先执行eosio_uninstall.sh再重新构建。非 git 克隆无法构建必须通过git clone --recursive获取源码且保持子模块最新。平台脚本的守护未列入支持矩阵的 Linux 发行版会在依赖安装阶段被print_supported_linux_distros_and_exit拦截见 scripts/eosio_build.sh。非交互 CI 场景在 CI 中构建可使用-y跳过所有交互提示配合-i固定安装目录实现完全无人值守构建。小结至此从git clone到make test再到eosio_uninstall.sh的完整闭环已经打通。scripts目录下这套脚本体系将依赖管理、构建、安装、测试、卸载串成一条自动化流水线配合.build_vars中的版本约束与按平台分发的依赖脚本保证了 EOSIO 在 Ubuntu、CentOS、Amazon Linux 与 macOS 上的一致可复现性。构建安装完成后下一步就是进入 nodeos 使用文档 启动你的第一个 EOSIO 节点。赞分享区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载相关推荐EOSIO 从源码构建完整指南Shell 脚本构建、安装、测试与卸载实战EOSIO 从源码构建完整指南Shell 脚本构建、安装、测试与卸载实战 EOSIO 是一个开源智能合约平台其核心组件包括 nodeos 区块链节点、区块链nf_resnet50.ra2_in1k vs 传统ResNet性能对比与优势分析nf_resnet50.ra2_in1k vs 传统ResNet性能对比与优势分析 在深度学习计算机视觉领域ResNet架构一直是图像分类任务的黄金标准。然区块链OpenVR-SpaceCalibrator校准算法原理深入解析空间变换数学实现OpenVR SpaceCalibrator校准算法原理深入解析空间变换数学实现 OpenVR SpaceCalibrator是一款强大的虚拟现实空间校准工具区块链上一篇gte-small-openmind 性能优化如何提升文本嵌入速度和准确性下一篇LRCGET高级技巧10个提升歌词下载效率的实用方法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
狼鸟新手避坑:3个步骤搞定性能优化,拒绝纸上谈兵 狼鸟新手避坑:3个步骤搞定性能优化,拒绝纸上谈兵 学会语法却不知怎么搭项目,这是绝大多数开发者从新手进阶中级时最真实的困境。你背下了 HashMap… · 2026/9/23 9:45:42
基于深度学习LSTM的蔬菜价格预测实战:从数据清洗到模型部署 简介:这是一份基于深度学习LSTM实现蔬菜价格预测的Python毕业设计项目资源,面向计算机相关专业正在准备毕设的学生,以及需要项目实战练习、课程设计或期末大作业的学习者。项目经导师指导并获评审98分,具备较强的参考价值。资源共… · 2026/9/23 9:45:35
MLG不是营销新话术,而是增长数据操作系统 1. 这不是又一个营销 buzzword:MLG 是业务增长的“新操作系统”“营销驱动式增长”(Marketing-Led Growth,简称 MLG)这个词最近半年在 SaaS 公司的会议室、投资人尽调清单和增长团队周报里出现频率陡增。但很多人一听到就下意识皱… · 2026/9/23 9:45:35
电动车大灯耐用性技术分析:散热、防水与 DC 功率匹配 跑外卖属于电动车大灯的极限工况:单日点灯时长可达数小时,远近光频繁切换,叠加雨雾、粉尘和持续震动。本文从 LED 结温、散热结构、密封防水、DC 功率链路四个技术维度,解释大灯"耐不耐用"由什么决定,并给出… · 2026/9/23 13:21:37
安防系统集成项目经理证有必要报班吗?从报名学习到考试拿证,报考全攻略 安防系统集成项目经理是安防工程领域的”管理技术”复合岗位。想考证进阶,报不报班?本文围绕安防系统集成项目经理证,把自学与报班的差距、费用、选班要点和报考流程讲透。
先说结论:项目经理岗位重管理与经验,报班的价… · 2026/9/23 13:21:37
机械工程师证有必要报班吗?从报名学习到考试拿证,报考全攻略 机械工程师是制造业的基础技术岗,机械工程师证是工科领域的老牌证书。想考这个证,报不报班?本文围绕机械工程师证,把自学与报班的差距、费用、选班要点和报考流程讲透。
先说结论:机械是”理论制图实践”的方向&#x… · 2026/9/23 13:21:37
dhfplayer避坑指南:3个核心差异让你选型不再踩雷 dhfplayer避坑指南:3个核心差异让你选型不再踩雷 看了一堆教程还是不会写项目?别慌,问题往往出在选型混乱上。这份dhfplayer避坑指南,直接告诉你怎么在真实项目里落地。 各自定位与核心差异… · 2026/9/23 13:21:37
Type-C CC引脚原理与实测诊断:从电气特性到故障排查 简介:本资源是一份深入解析USB Type-C接口CC(Configuration Channel)功能的技术文档,面向嵌入式工程师、硬件开发人员及接口协议学习者,系统解决TYPE-C正反插识别、电源管理、DP Alt Mode切换等核心设计难题。文档以PD… · 2026/9/23 13:21:30
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29