Heads-Up For Ubuntu Users Running PhantomJS Local

Something I overlooked when I went from 16.04 to 18.04 recently was that libicu went from v55 to v60. Normally not a concern, except the local version of PhantomJS explicitly calls for 55, and throws off error while loading shared libraries: libicui18n.so.55: cannot open shared object file: No such file or directory

Fortunately it’s easy enough to get the old version and install it alongside the current. It’s not optimal, but until someone recompiles the binary to just use whatever the system version is, it’ll have to do.

You can snag the old version from http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7ubuntu0.4_amd64.deb, then install with sudo dpkg -i libicu55_55.1-7ubuntu0.4_amd64.deb and be back in business.

(This is if you’re running the precompiled binary rather than the build available in apt. I have 2.1.3, which was up for a bit before the developer suspended work on the project, while 2.1.1 is the latest official build in the Ubuntu repositories. However, when installing that version, it installs a ton of extra crap and complains about no X server when trying to run it, so I put the other, smaller binary back on my system.)

@Titanfail,

Interesting, thanks for letting us know… Our production servers are Ubuntu 18.04 and we have not had this issue pop up for us.

phantomjs -v
2.1.1

uconv v2.1
ICU 55.1

I think you may have other packages which have somehow articulated your version up to 60 ?

With Canonical, any form of weirdness is possible I guess. I had originally gone with 2.1.3 because it was the latest version available and the build in the Ubunto repos never worked, but apparently that got moved to bleeding-edge before the developer suspended work on the project.

I guess this could be marked as an edge case, then. I just swapped it out with the 2.1.1 build from phantomjs.org and it actually appears to be working with the system version of ICU. No clue why they built 2.1.3 to explicitly call 55, but that’s a them problem.

@titanfail , i think you are right.

The concern going forward may be cross dependencies which require a different version of libicu and which cannot be resolved by installing the lib’s in parallel.

Thanks for picking this up, I am sure it will be useful to look back on.

Out of curiosity, are there any plans to replace PhantomJS with something else, seeing as development of the local branch appears to be dead in the water? I know there’s always PhantomJS Cloud, but some people might have to rely on a local solution for whatever reason.