Closed ivangayton closed 5 years ago
Hey Ivan, thanks for the detailed error report!
The issue is that it takes a bit of memory to compile ODM natively, in particular as you found out the compiler will give up with the error: c++: internal compiler error: Killed (program cc1plus)
if you don't have enough memory.
From experimentation I usually have a VM with ~3GB of RAM allocated to build our docker images (and have had the process fail with 2GB), so my recommendation would be to either:
Cheers!
D'oh! Thanks @pierotofy , I'm an idiot! Of course that's the problem.
Ha! That's ok Ivan. I've done this too. And I thus I should have caught your issue too... .
This is a Native install.
What's your browser and operating system?
Ubuntu 16.04.6 x64
By the way, I'm not trying to run real ODM datasets with such a small server, I normally use this small instance to do the install, then resize to 192GB RAM and 32 processors—but that's a little expensive to keep running while doing an install!
What is the problem?
The install script throws an error:
-- Configuring incomplete, errors occurred!
. Subsequently I find myself in the good old "no module named ecto" situation.Expected behavior?
I've done a few native installs (though not for a number of months), and usually I get a happy conclusion from this process, without the error message.
How can we reproduce this?
The creation of the server is as follows:
ssh root@xxx.xxx.xxx.xxx
adduser odm
usermod -aG sudo odm
Then log in as the new user using
ssh odm@xxx.xxx.xxx.xxx
and execute
sudo apt update && sudo apt upgrade -y
That's all I do (other than install a terminal emacs with
sudo apt install emacs-nox
). So it's a very vanilla Ubuntu environment, with nothing installed over and above the OS itself (other than emacs).Install is as follows:
The full terminal output is here, but the end of the story is:
There's another red-highlighted error in middle of the console output that may be relevant:
While we're at it, here are the CMake logs.
Nevertheless, we persist. Now I add the path variables to the shell by using emacs to append the following lines into
/home/odm/.bashrc
:Note that the suggested path in the documentation is /your/path/OpenDroneMap (capitalized), but a git clone produces a /whatever/path/opendronemap (uncapitalized) directory. This has tripped me up in the past, but not this time—I've checked and the path is correct.
In the process of verifying the paths, the second hint of trouble appears: the first addition to the PYTHONPATH doesn't seem to exist! The command
ls /home/odm/opendronemap/SuperBuild/install/lib/
returns:There's no
.../python2.7/dist-packages
in there.Ok, at this point, I don't know if the error is fatal or not, or if that seemingly missing library is actually needed. So I download the smallest test dataset using
git clone https://github.com/merkato/odm_boruszyn_kap.git
.In order to ensure that the shell variables are loaded from the .bashrc file, which requires a logout, I exit and ssh back in, then execute:
And: hooray! Here's our old friend:
ImportError: No module named ecto.
Since I'm fairly confident that I've got the path variables exported exactly as last time I successfully installed, I suspect it's not the usual error on my part, there's something in the install that's not working!
Hope this helps!
Thanks, as always, for the amazing software.
Ivan