Hi Tim,

Looking at the resolution of the libgit library, I see that in pharo7 the
following:

LGitLibrary >> unixModuleName
| pluginDir |
pluginDir := Smalltalk vm binary parent.
#('libgit2.so' 'libgit2.so.0')
detect: [ :each | (pluginDir / each) exists ]
ifFound: [ :libName | ^ libName ].

self error: 'Module not found.'

That definition may be the root of the problem in linux because it is
returning the unqualified library name without the VM path.
Then, the order of resolution of libraries is the one in the operating
system, which is in your case probably searching in /usr/lib or something
like that.
I'd bet that you have in your system (/usr/lib/something) another libgit
version but probably not matching the expected version in pharo or the
architecture of pharo (32/64 bits).
Thus, pharo finds the library but cannot load it...

If you check in Pharo8, the same method reads slightly different:

LGitLibrary >> unixModuleName
| pluginDir |
pluginDir := Smalltalk vm binary parent.
#('libgit2.so' 'libgit2.so.0')
detect: [ :each | (pluginDir / each) exists ]
ifFound: [ :libName | ^ (pluginDir / libName) fullName ].

self error: 'Module not found.'

Can you check that patching the method like that works in your case?
This maybe deserves a backporting as it may make it super complicated to
work with Iceberg in some linuxes...

On Tue, Apr 30, 2019 at 3:08 PM Tim Mackinnon <tim@testit.works> wrote:

> Did we ever get the bottom of installing Pharo on linux? I have a user on
> Arch linux who installed pharo from AUR (this is new stuff to me) - and
> once they downloaded an image - they now get an error that looks
> suspiciously like this libgit2 debacle - so I’m wondering what the solution
> was?
>
> The error is:
>
> External module not found
> ExternalLibraryFunction(Object)>>error:
> ExternalLibraryFunction(Object)>>externalCallFailed
> ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
> LGitLibrary>>libgit2_init
> FFICalloutAPI>>function:module:
> LGitLibrary(Object)>>ffiCall:
> LGitLibrary>>libgit2_init
> [ self libgit2_init.
> self recordInitializationSuccess ] in LGitLibrary>>initializeLibGit2 in
> Block: [ self libgit2_init....
> BlockClosure>>on:do:
>
> ...
>
> On 4 Apr 2019, at 15:07, Vitor Medina Cruz <vitormc...@gmail.com> wrote:
>
> No, you can't install libcurl3 with libcurl4. There is a known conflict
> between them: https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294,
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900511
>
> Ubuntu 18.4 don't come with curl, but I think it comes with libcurl3 (I
> don't have means to verify it now), but when you install curl, it installs
> libcurl4 and removes libcurl3.
>
> On Thu, Apr 4, 2019 at 11:00 AM Richard O'Keefe <rao...@gmail.com> wrote:
>
>> apt-cache search
>> reports everything it knows about, not just things that are INSTALLED.
>> For example, apt-cache search reports lua-curl-dev, but it is not
>> installed.
>> apt list | grep lua-curl-dev
>>
>> The fact that neither libcurl3 nor libcurl4 is initially installed
>> means that either of them can be installed without conflict.
>>
>> On Thu, 4 Apr 2019 at 01:34, Ben Coman <b...@openinworld.com> wrote:
>>
>>>
>>> On Wed, 3 Apr 2019 at 05:09, Richard O'Keefe <rao...@gmail.com> wrote:
>>>
>>>> I just did a complete reinstall of Ubuntu 18.4 on this
>>>> laptop yesterday,
>>>>
>>>
>>>
>>>
>>>> and it did not come with any version of curl.
>>>>
>>>
>>> What do you mean? Under WSL I have installed Ubuntu 18.4 and for...
>>>     $ apt-cache search libcurl | less
>>> I see libcurl3 and libcurl4
>>>
>>> cheers -ben
>>>
>>>
>>>> uname -a =>
>>>> Linux Inspiron 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12
>>>> 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
>>>>
>>>>
>>>>
>>>> On Wed, 3 Apr 2019 at 01:27, Vitor Medina Cruz <vitormc...@gmail.com>
>>>> wrote:
>>>>
>>>>> Installing curl don't work because there is a conflict between curl
>>>>> version name used on Ubuntu and that used by Pharo, you can't install
>>>>> libcurl 3 and libcru4 together. Ubuntu 18 comes with libcurl4 and older
>>>>> software depending on libcurl3 broke with it. I tested with minidebian and
>>>>> it also failed.
>>>>>
>>>>> Richard, was you able to use Iceberg? It should only work if either
>>>>> Ubuntu fix this dependency problem with libcurl or Pharo started to use
>>>>> libcrl4.
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Apr 2, 2019 at 5:50 AM Richard O'Keefe <rao...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I have Pharo 6.1 and Pharo 7.0 working in Ubuntu 18.04
>>>>>> with no trouble so far.  I just downloaded the launcher
>>>>>> from pharo.org and pulled the images down that way.
>>>>>>
>>>>>> One thing I do find annoying in Ubuntu 18.04 is the
>>>>>> number of programs (like okular) that spew warning
>>>>>> messages out the terminal.  Pharo, sadly, is one of
>>>>>> them.  Whenever a debugger window comes up in Pharo
>>>>>> there is spewage on the terminal.  But it works.
>>>>>>
>>>>>>
>>>>>> On Tue, 2 Apr 2019 at 13:07, john pfersich <jpfers...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Ubuntu 18.04 LTS is, IMHO, is royal piece of crap. Ubuntu seems to
>>>>>>> have abandoned programmers tools almost completely in 18.04. I’ve had 
>>>>>>> more
>>>>>>> problems with support of programming tools in 18.04, more than even
>>>>>>> Windows. I have run ‘sudo apt install’ maybe 80 times to install tools 
>>>>>>> and
>>>>>>> libraries. Ubuntu 18.04’s hardware support is also lame compared to 
>>>>>>> 16.04.
>>>>>>> Personally , I’m not surprised that Pharo doesn’t run on 18.04. I
>>>>>>> stopped installing 18.04 on my new machines, after all 16.04 still has a
>>>>>>> few years of support going for it, and at least it works without hours 
>>>>>>> of
>>>>>>> upgrading.
>>>>>>>
>>>>>>> /*—————————————————-*/
>>>>>>> Sent from my iPhone
>>>>>>> https://boincstats.com/signature/-1/user/51616339056/sig.png
>>>>>>> See https://objectnets.net and https://objectnets.org
>>>>>>>
>>>>>>> > On Apr 1, 2019, at 06:06, horrido <horrido.hobb...@gmail.com>
>>>>>>> wrote:
>>>>>>> >
>>>>>>> > This issue bit me in the ass before, but I forgot. Yes, I had a
>>>>>>> senior
>>>>>>> > moment.
>>>>>>> >
>>>>>>> > The issue is this: When I tried to run Pharo under Ubuntu Server
>>>>>>> 18.04 at
>>>>>>> > OVH last year, it failed. I had to fall back to Ubuntu Server
>>>>>>> 16.04.
>>>>>>> >
>>>>>>> > This week, I tried to run Pharo under Ubuntu Server 18.04 at
>>>>>>> Google Cloud
>>>>>>> > Platform and it failed. Again, I had to fall back to Ubuntu Server
>>>>>>> 16.04.
>>>>>>> >
>>>>>>> > Why does this issue keep biting me in the ass??? Because I'm 65
>>>>>>> and my brain
>>>>>>> > is dying.
>>>>>>> >
>>>>>>> > The bigger issue is this: Hosting services like Digital Ocean,
>>>>>>> OVH, and
>>>>>>> > Google Cloud Platform are becoming increasingly important in the
>>>>>>> enterprise
>>>>>>> > space. If Pharo can't run on these server operating systems, it's
>>>>>>> going to
>>>>>>> > be a black eye for the language. We can get away with not
>>>>>>> supporting this
>>>>>>> > for now, but it will eventually catch up with us.
>>>>>>> >
>>>>>>> > At Google Cloud Platform, for example, the user can choose from
>>>>>>> this list of
>>>>>>> > hosts: Debian GNU/Linux 9 (Stretch), CentOS 6, CentOS 7, various
>>>>>>> versions of
>>>>>>> > CoreOS, Ubuntu 14.04 LTS Minimal, Ubuntu 16.04 LTS Minimal, Ubuntu
>>>>>>> 18.04 LTS
>>>>>>> > Minimal, Ubuntu 18.10 Minimal, various versions of Red Hat,
>>>>>>> various versions
>>>>>>> > of SUSE, various versions of Window, and so on. It's a long list.
>>>>>>> *I
>>>>>>> > strongly suspect that many of these are unusable with Pharo.*
>>>>>>> >
>>>>>>> > How to address this? I don't know. But if it's not a major problem
>>>>>>> now, it
>>>>>>> > will be. It's bitten me in the ass twice, and I can't be alone.
>>>>>>> >
>>>>>>> > I'm giving a fair warning to everyone. Don't lash back at me – I'm
>>>>>>> just the
>>>>>>> > canary in the coal mine.
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > Tim Mackinnon wrote
>>>>>>> >> Come on, let’s try not to be dismissive , we’ve all had that
>>>>>>> annoying
>>>>>>> >> moment where something doesn’t work.
>>>>>>> >>
>>>>>>> >> Richard, was this installed with zero conf or Launcher, and as
>>>>>>> mentioned -
>>>>>>> >> a Linux distro is going to be helpful.
>>>>>>> >>
>>>>>>> >> I’m assuming it worked before at some point for you right? But
>>>>>>> was that v6
>>>>>>> >> and now you’re trying v7?
>>>>>>> >>
>>>>>>> >> Tim
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> Sent from my iPhone
>>>>>>> >>
>>>>>>> >>> On 31 Mar 2019, at 23:46, john pfersich &lt;
>>>>>>> >
>>>>>>> >> jpfersich@
>>>>>>> >
>>>>>>> >> &gt; wrote:
>>>>>>> >>>
>>>>>>> >>> What Linux (distro and version) and which version of Pharo. You
>>>>>>> couldn’t
>>>>>>> >>> supply less information if you tried.
>>>>>>> >>>
>>>>>>> >>>
>>>>>>> >>> /*—————————————————-*/
>>>>>>> >>> Sent from my iPhone
>>>>>>> >>> https://boincstats.com/signature/-1/user/51616339056/sig.png
>>>>>>> >>> See https://objectnets.net and https://objectnets.org
>>>>>>> >>>
>>>>>>> >>>> On Mar 31, 2019, at 14:21, Richard Kenneth Eng &lt;
>>>>>>> >
>>>>>>> >> horrido.hobbies@
>>>>>>> >
>>>>>>> >> &gt; wrote:
>>>>>>> >>>>
>>>>>>> >>>> I just installed Pharo under Linux and when I start it up, I
>>>>>>> get:
>>>>>>> >>>>
>>>>>>> >>>> Error: External module not found
>>>>>>> >>>>
>>>>>>> >>>> It doesn't matter how I install Pharo.
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > --
>>>>>>> > Sent from:
>>>>>>> http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>>>>>> >
>>>>>>>
>>>>>>>
>

-- 



Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*


*Web:* *http://guillep.github.io* <http://guillep.github.io>

*Phone: *+33 06 52 70 66 13

Reply via email to