tl; dr
version 'GLIBCXX_3.4.15' not found当我不能以Linux服务器为根时,如何解决?
version 'GLIBCXX_3.4.15' not found
我想在OpenShift上使用PhantomJS。如本文所述,PhantomJSGhostDriver仅在本地主机上绑定,而在OpenShift上,您不能在本地主机上绑定任何内容(需要指定计算机IP地址)。PaoloBernardi(本文的作者)共享一个修补程序,该修补程序修复了PhantomJS,从而可以绑定到IP地址。
问题是所提供的补丁程序无法在我的OpenShift服务器上运行:在./phantomjs -v补丁程序化的PhantomJS安装上运行时,我遇到了分段错误。因此,由于有了PhantomJS文档,我决定在自己拥有的Debian服务器上使用该修复程序自己编译PhantomJS :
./phantomjs -v
sudo apt-get install build-essential g++ flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python ttf-mscorefonts-installer git clone git://github.com/ariya/phantomjs.git cd phantomjs git checkout 1.9 # apply the fix ./build.sh
在./phantomjs -v编译的二进制文件上运行时,我得到1.9.8:它起作用。
1.9.8
在OpenShift上复制此二进制文件并运行时./phantomjs -v,出现错误:
./phantomjs: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by ./phantomjs)
任何想法如何解决这个问题?此错误的原因是什么?请原谅我缺乏系统知识:)
多亏了Moleculartear,我在RHEL OS上编译了补丁二进制文件:不再出错!
有效的PhantomJS二进制文件: https : //github.com/jrestful/server/blob/master/seo/phantomjs-1.9.8-patched.tar.gz? raw = true
更多细节:
由于无法成为root用户,因此无法在OpenShift上更新GLIBC版本(除非有一些解决方法)。
我无法在OpenShift上直接编译PhantomJS,因为我的服务器上没有足够的空间来存放源代码。
我的OpenShift磁带:Tomcat 7(JBoss EWS 2.0)+ MongoDB 2.4 + RockMongo 1.1。
在我的Debian服务器上:
$ uname -a Linux servername 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux $ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH
在我的OpenShift服务器上:
$ uname -a Linux servername 2.6.32-504.3.3.el6.x86_64 #1 SMP Fri Dec 12 16:05:43 EST 2014 x86_64 x86_64 x86_64 GNU/Linux $ strings /usr/lib/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBC_2.0 GLIBC_2.3 GLIBC_2.4 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.3.2 GLIBC_2.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
由于OpenShiftOnline在RHEL上运行,因此您应该能够将CentOS安装到本地计算机上的VM(或在云中的某个地方运行),并使用补丁编译PhantomJS版本,然后将其上传到OpenShift服务器并使用它。
如果您不能这样做,请使用help.openshift.com上的“与我们联系”表格