On October 1, 2017 12:33:04 AM GMT+02:00, "p...@highoctane.be" <p...@highoctane.be> wrote: >Usually there are a number of names to try but on Linux, there are less >users and more distros, so people are not adding more libs to try. > >So, yes, symlink in the plugin directory works usually. > >Alternative would be to use LD_LIBRARY_PATH or pkg_config support to do >this cleanly (not done at this point).
I did use LD_LIBRARY_PATH. But it did not work (it looks like Pharo vm us using it, as it is used and decorated in pharo runner script). Even link in the plugin dir did not work unless I specified simplified name. The library is libsqlite3.so.0. Using that name, it wasn't found ('lib' is probably tried, so it is likely '.0' part that somehow blocked Pharo). Shouldn't this actually be solved somehow? So linux vm loads libs using linux conventions? Or is it preinstalled wrongly in Ubuntu images on Digital Ocean when it does not have symlink named libsqlite3.so ? Herby >Phil > >On Sat, Sep 30, 2017 at 11:19 PM, Herby Vojčík <he...@mailbox.sk> >wrote: > >> Dan Wilczak wrote: >> >>> Hernan - >>> >>> I haven't opened an issue - how do I do it? (I'm very new to Pharo.) >>> >>> About continuing the search - I only mean continuing the search of >the >>> LD_LIBRARY_PATH directories, not the whole filesystem. Two changes >would >>> be >>> needed to accomplish this: >>> >> >> FWIW, I had problem with loading 'sqlite3' module. Crossposting the >> solution: >> >> It seems FFI for some reason struggles with 'lib' and/or '.so.0' >things in >> linux (even if LD_LIBRARY_PATH is properly set). >> >> I had to do this: >> >> TARGETDIR=`find . -type f -name SqueakSSL.so -print0 | xargs -0 >dirname` >> ln -s `/sbin/ldconfig -p | sed -e 's|[^/]*||' | grep sqlite3` >> ${TARGETDIR}/sqlite3.so >> >> (so, link in plugin directory, and the name is plain 'sqlite3.so'). >With >> that, things work. Maybe, libsqlite.so would do the trick as well, >but I >> got no nerve to play with it more. >> >> But, frankly, do not tell me this is what ppl need to do to load >external >> libs in linux. :-/ >> >> Herby >> >> >>> 1) Athens-Cairo>> CairoLibrary would have to return a list of paths >to >>> all >>> the matching libraries rather than just the first one that it finds. >This >>> part seems easy. >>> >>> 2) UFFI Libraries UnixDynamicLoader>> loadLibrary:flag: would have >to >>> take >>> the list of paths (rather than just one), check them for being >32-bit or >>> 64-bit, and load the first correct one. I can't find any way to >perform >>> that >>> check in Pharo directly. How would you fork or exec the "file" >command >>> from >>> inside Pharo? >>> >>> Dan >>> >>> >>> >>> >>> -- >>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >>> >>> >> >> >>