静态二进制文件,构建/测试环境说明

作者: 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