Forum How do I...?

Ubuntu 7.04 - amd64

Having trouble getting prince running on our Live server, which is amd architecture. The static install runs fine on our staging server, which is effectively identical other than the architecture.
the error I am getting is that Prince is unable to access remote files; it is fine converting a local .html file, but seems to unable to use a URL.
Is this a problem with the libcurl/curl connections it uses? Is there a config file somewhere I should change?


I expect that this is an issue related to static linking with libc. I'll create a dynamically linked Prince package and that should solve the problem. Do you prefer .deb or .tar.gz?
tar.gz would be nicer, I think.

Try this dynamically linked build:

Tried it; definitely progress, but it's now complaining about ; the lib is present in /usr/lib, which is in $PATH, so noth sure why it isn't picking it up...another static link?

/usr/local/lib/prince/bin/prince: error while loading shared libraries: cannot open shared object file: No such file or directory


Check LD_LIBRARY_PATH perhaps? Otherwise we can link statically with this library.
More progress; I explicitly addedit to LD_LIBRARY_PATH, but now it's back to complaining about architecture stuff (I think...)

/usr/local/lib/prince/bin/prince: error while loading shared libraries: wrong ELF class: ELFCLASS64

Perhaps the static link is going to be easiest.

thanks for all your help on this...

I've installed the 32 bit/i386 lib into a separate lib tree and it seems to have picked that up. Now complaining about libssl, but let me poke at that for a while before pushing back on you...


Put the libungif and libssl i386 versions in /lib32 (already in the LD_LIBRARY_PATH), and everything appears to be working fine. Thanks for your help!
Any chance of getting a dynamically-linked 64-bit build for 6.0r5? This would be for Ubuntu 7.10 AMD64. Thanks!
I think this will need to wait for us to obtain some AMD64 hardware, as it doesn't seem to be easy to cross-compile a 64-bit binary on a 32-bit system. In the meantime it should be possible to get the 32-bit binary to run if appropriate 32-bit libraries are installed.
Note for folks trying to get the dynamic library that mikeday posted to run on Ubuntu AMD64 ...

You need to install the package 'ia32-libs' -> that is, a set of libraries to initially allow 32-bit binaries to run on 64-bit ubuntu.

sudo apt-get install ia32-libs

Until you do this, when you try to run Prince, you will get a confusing generic error message:

$ prince
exec: 3: /usr/local/lib/prince/bin/prince: not found

This randomly discovered post in the ubuntu forums got me on the right track:
Another tip - this error comes up next, as Felix pointed out:

$ prince
/usr/local/lib/prince/bin/prince: error while loading shared libraries: cannot open shared object file: No such file or directory

An easy way to solve this is to use the 'getlibs' program referenced in this thread on the Ubuntu site:

$ getlibs /usr/local/lib/prince/bin/prince libungif4g
The following i386 packages will be installed:
Continue [Y/n]? Y
Downloading ...
Installing libraries ...
deploy@development:~$ prince
  prince [OPTIONS] file.xml              Convert file.xml to file.pdf
  prince [OPTIONS] doc.html -o out.pdf   Convert doc.html to out.pdf
  prince [OPTIONS] FILES... -o out.pdf   Combine multiple files to out.pdf

Try 'prince --help' for more information.
Thanx for this tip.
We have now released Prince 7.0, which includes a 64-bit package for Ubuntu 9.04.

Is there a plan to release 64bit for debian, too?
If it's a recent version of Debian, the Ubuntu package will probably work perfectly, so give it a try! If there are any library problems we can probably figure out a workaround.
I have installed the debianpackage with dpkg -i --force-architecture package.deb. Works fine with commandline.

installed ubuntu package for 64bit, seems to work on Debian GNU/Linux 4.0 (etch)