一尘不染

尝试在OpenShift上运行PhantomJS:无法修补GhostDriver,使其可以绑定在服务器IP地址上

linux

tl; dr

version 'GLIBCXX_3.4.15' not found当我不能以Linux服务器为根时,如何解决?


我想在OpenShift上使用PhantomJS。如本文所述,PhantomJSGhostDriver仅在本地主机上绑定,而在OpenShift上,您不能在本地主机上绑定任何内容(需要指定计算机IP地址)。PaoloBernardi(本文的作者)共享一个修补程序,该修补程序修复了PhantomJS,从而可以绑定到IP地址。

问题是所提供的补丁程序无法在我的OpenShift服务器上运行:在./phantomjs -v补丁程序化的PhantomJS安装上运行时,我遇到了分段错误。因此,由于有了PhantomJS文档,我决定在自己拥有的Debian服务器上使用该修复程序自己编译PhantomJS

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:它起作用。

在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

阅读 232

收藏
2020-06-07

共1个答案

一尘不染

由于OpenShiftOnline在RHEL上运行,因此您应该能够将CentOS安装到本地计算机上的VM(或在云中的某个地方运行),并使用补丁编译PhantomJS版本,然后将其上传到OpenShift服务器并使用它。

如果您不能这样做,请使用help.openshift.com上的“与我们联系”表格

2020-06-07