我正在尝试在 CentOS 上运行 PhantomJS,但收到以下信息:
./phantomjs: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./phantomjs)
./phantomjs: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./phantomjs)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by ./phantomjs)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by /home/bamboo/bamboo-data/xml-data/build-dir/PHANTOMJS-ARTIFACT-JOB1/target/checkout/dists/linux_x64/bin/../lib/libQtGui.so.4)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by /home/bamboo/bamboo-data/xml-data/build-dir/PHANTOMJS-ARTIFACT-JOB1/target/checkout/dists/linux_x64/bin/../lib/libQtGui.so.4)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.9' not found (required by /home/bamboo/bamboo-data/xml-data/build-dir/PHANTOMJS-ARTIFACT-JOB1/target/checkout/dists/linux_x64/bin/../lib/libQtGui.so.4)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.10' not found (required by /home/bamboo/bamboo-data/xml-data/build-dir/PHANTOMJS-ARTIFACT-JOB1/target/checkout/dists/linux_x64/bin/../lib/libQtNetwork.so.4)
./phantomjs: /lib64/libc.so.6: version `GLIBC_2.9' not found (required by /home/bamboo/bamboo-data/xml-data/build-dir/PHANTOMJS-ARTIFACT-JOB1/target/checkout/dists/linux_x64/bin/../lib/libQtCore.so.4)
我甚至构建了 PhantomJS 的静态版本,但看起来与 PhantomJS 捆绑在一起的库依赖于 glibc 和 libstdc++。
在 CentOS 上构建特定的 PhantomJS 二进制文件不是一个选择,因为这台机器是我们的持续集成盒,用于构建和测试我们的项目。我将 PhantomJS 打包为一个工件,然后在构建过程中将其解包并使用(用于 JavaScript 持续集成)。所以需要使用这个确切的工件。
有没有简单的方法来升级 glibc 和 libstdc++?我试过了yum install glibc
。yum install libstdc++
我注意到它确实执行了更新,但在我尝试再次运行 PhantomJS 后没有任何变化。
答案1
您构建 PhantomJS 的系统比您尝试部署它的系统要新得多。请在与部署系统匹配的系统上重新构建它。