对码当歌,猿生几何?

PhantomJS安装记录

1、官网下载

phantomjs-2.1.1-linux-x86_64.tar.bz2 

解压出来的是一个二进制包,可直接运行

2、解决依赖的库

  • glibc版本问题

直接运行报 /lib64/tls/libc.so.6: version `GLIBC_2.10' not found (required by ./phantomjs) 这个错误

这个表示是libc的版本不满足要求,查看本地的版本是2.3.4(libc-2.3.4.so)

然后直接用jumbo安装glibc 

$ patchelf --set-rpath /home/users/usename/.jumbo/opt/glibc ./phantomjs
  • ldd 错误

紧接着再运行的话,会报一下错误

error while loading shared libraries: /home/users/changchunbo/.jumbo/opt/glibc/libm.so.6: ELF file OS ABI invalid

这个错误表示是 ldd 版本与glibc版本不一致所致,所以还需要将 phantomjs 的ldd改变下,现在又需要patchelf帮忙了,真乃神器啊

patchelf --set-interpreter /home/users/changchunbo/.jumbo/opt/glibc/ld-linux-x86-64.so.2  ./phantomjs
  • FT_GlyphSlot_Embolden 错误

这个错误是libfreetype.so.6这个库的版本太低,我这里是6.3.7(/usr/lib64/libfreetype.so.6 -> libfreetype.so.6.3.7)

然后升级libfreetype, 然后使用了jumbo 安装了freetype2 2.6.3-1

3、Unable to load the address报错

使用phantomjs无法访问https类网站,会报Unable to load the address!错误。这类问题的处理,需要添加两个选项--ssl-protocol=any --ignore-ssl-errors=true 。如下:

phantomjs --ssl-protocol=any --ignore-ssl-errors=true ~/data/pageshot.js https://baike.baidu.com  ~/data/baike.png

4、发现中文网站网页快展乱码

中文网站网页快展乱码的问题,是由于字体库里没有安装中文字体。可以在 http://font.chinaz.com/zhongwenziti.html 这个网址里下载 .ttf 格式的字体。在/usr/share/fonts目录下新建一个自定义的文件夹存放下载好的字体,然后使用 

fc-cache -vf

刷新系统字体缓存即可。