静态二进制文件,构建/测试环境说明
作者: yeonsookimdev创建于 2020年8月29日更新于 2020年10月16日
- OpenEthereum 版本: 2.5.13 起(可能更早)
- 操作系统:Linux(CentOS 7)
- 安装:一行安装程序,源码编译
- 完全同步: -
- 网络: -
- 重启: -
当我下载 Linux 版的 parity 2.5.13 并在 CentOS 7 中启动时,它返回了错误,表示某些动态库不在预期的路径中:
./parity: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by ./parity)
./parity: /lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by ./parity)
./parity: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by ./parity)
./parity: /lib64/libc.so.6: version 'GLIBC_2.18' not found (required by ./parity)当我下载并启动 openethereum 3.0.1 时,也出现了同样的错误:
./openethereum: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by ./openethereum)
./openethereum: /lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by ./openethereum)
./openethereum: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by ./openethereum)
./openethereum: /lib64/libc.so.6: version 'GLIBC_2.18' not found (required by ./openethereum)因此,我决定在 CentOS 7 中从源代码构建 parity。首先,我使用 rustup 安装了最新的稳定 rustc(1.46.0),并使用 yum 包管理器安装了 README 中列出的所有包(gcc、g++…)。我尝试构建 parity 2.5.13,但构建失败,因为 cmake 太旧了:
--- stderr
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.1 or higher is required. You are running version 2.8.12.2在我找到 cmake 3.17.1 并将其添加到 PATH 后,再次构建失败,可能是语言规范发生了变化:
error: unexpected string literal
--> rpc/src/tests/http_client.rs:117:4
|
116 | headers.iter().any(|header| header.as_str() == "X-Frame-Options: SAMEORIGIN")
| - help: try adding a comma
117 | "X-Frame-Options: SAMEORIGIN missing: {:?}", headers
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: unexpected string literal
--> rpc/src/tests/http_client.rs:122:3
|
121 | headers.iter().any(|header| header.as_str() == "X-XSS-Protection: 1; mode=block")
| - help: try adding a comma
122 | "X-XSS-Protection missing: {:?}", headers
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: unexpected string literal
--> rpc/src/tests/http_client.rs:126:3
|
125 | headers.iter().any(|header| header.as_str() == "X-Content-Type-Options: nosniff")
| - help: try adding a comma
126 | "X-Content-Type-Options missing: {:?}", headers
|
…内容来源: openethereum/parity-ethereum