所以我在redHat 6.5服务器上做了量角器测试,而且我遇到了chromedriver的问题,每当我尝试运行它时,它给了我这个错误
./chromedriver: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./chromedriver)
我修复了这个安装chrome并建立了找到系统libstdc库的链接。
$ cd /usr/lib64/
$ ln -s /opt/google/chrome/lib/libstdc++.so.6 libstdc++.so.6
但是一段时间后链接恢复到原始版本,我仍然不确定系统是否会自动恢复或其他人。无论如何,我发现了另一个solution,它的作用是复制chrome并修改最后一行:
exec -a "$0" "$HERE/chrome" "$PROFILE_DIRECTORY_FLAG" \
"$@"
到此:
exec -a "$0" "$HERE/chromedriver" "$@"
这样它就会调用chromedriver,最后创建一个指向/ usr / bin / chromedriver的链接。
但是当我运行chromdriver它没有什么,它只是坐在那里,没有什么
我甚至会尝试最后一行:
exec -a "$0" "$HERE/chromedriver" "$PROFILE_DIRECTORY_FLAG" \
"$@"
仍然没有运气:
问题:
有没有办法告诉chromedriver手动找到libstdc ++的方法,如参数或类似的东西:
./ chromedriver --libstdc = / opt / google / chrome / lib / libstdc ++。so.6
答案 0 :(得分:3)
您应该能够覆盖系统在加载chromedriver时用于查找库的LD_LIBRARY_PATH
。
具体来说,试试:
env LD_LIBRARY_PATH=/opt/google/chrome/lib/ chromedriver
这应该使动态链接器(ld-linux.so)在查找要匹配的库时首先查看已安装的chrome库目录。您可以通过向环境添加LD_TRACE_LOADED_OBJECTS=yep
来调试此问题(有关您可以设置的更多调试变量,请参阅man ld-linux.so
)。
如果LD_LIBRARY_PATH
已经设置为您环境中的某些内容,则可能需要调整一些内容以通过该内容(例如,LD_LIBRARY_PATH=/opt/google/chrome/lib:${LD_LIBRARY_PATH}
)