gnu-octave / GNU-Octave-enable-64

Provides the necessary prerequisites to compile GNU Octave using 64-bit indices.
GNU General Public License v3.0
11 stars 9 forks source link

Problem with installation #8

Closed neurosurgeon closed 7 years ago

neurosurgeon commented 7 years ago

So I ran make -j2 2>&1 | tee build/build.log without any errors. When I go to run ./install/bin/octave nothing happens and it is because install/bin is empty.

Anything I'm doing wrong?

siko1056 commented 7 years ago

Thank you for your report. On the first sight, you did nothing wrong.

Does the install directory contain any other library or header files? Especially, does the file build/build.log exist? If you attached build/build.log to this report, it might get clearer what went wrong.

neurosurgeon commented 7 years ago

Ok so I am now trying to install this on Ubuntu 16.04. There is no file in build/build.log. build is there but the directory is empty. The installer finished openblas but then just stops without an error.

make[2]: Leaving directory '/build/openblas/exports'

OpenBLAS build complete. (BLAS CBLAS LAPACK LAPACKE)

OS ... Linux
Architecture ... x86_64
BINARY ... 64bit
Use 64 bits int (equivalent to "-i8" in Fortran)
C compiler ... GCC (command line : gcc) Fortran compiler ... GFORTRAN (command line : gfortran) Library Name ... libopenblas_Octave64_haswellp-r0.2.20.a (Multi threaded; Max num-threads is 4)

To install the library, you can run "make PREFIX=/path/to/your/installation install".

make[1]: Leaving directory '/build/openblas' make[1]: Entering directory '/build/openblas' make -j 4 -f Makefile.install install make[2]: Entering directory '/build/openblas' make[2]: warning: -jN forced in submake: disabling jobserver mode. Generating openblas_config.h in /install/include Generating f77blas.h in /install/include Generating cblas.h in /install/include Copying LAPACKE header files to /install/include Copying the static library to /install/lib Copying the shared library to /install/lib Generating openblas.pc in /install/lib/pkgconfig Generating OpenBLASConfig.cmake in /install/lib/cmake/openblas Generating OpenBLASConfigVersion.cmake in /install/lib/cmake/openblas Install OK! make[2]: Leaving directory '/build/openblas'

neurosurgeon commented 7 years ago

So I went back into the GNU-Octave-enable-64 directory and repeated this command:

make -j2 2>&1 | tee build.log

Now, it is commencing with building suitesparse but stops with this message:

/usr/bin/ld: cannot find -lmetis collect2: error: ld returned 1 exit status Makefile:541: recipe for target '/build/suitesparse/lib/libcholmod_Octave64.so.3.0.11' failed make[4]: [/build/suitesparse/lib/libcholmod_Octave64.so.3.0.11] Error 1 make[4]: Leaving directory '/build/suitesparse/CHOLMOD/Lib' Makefile:31: recipe for target 'library' failed make[3]: [library] Error 2 make[3]: Leaving directory '/build/suitesparse/CHOLMOD/Lib' Makefile:19: recipe for target 'library' failed make[2]: [library] Error 2 make[2]: Leaving directory '/build/suitesparse/CHOLMOD' Makefile:111: recipe for target 'library' failed make[1]: [library] Error 2 make[1]: Leaving directory '/build/suitesparse' Makefile:90: recipe for target '/install/lib/libsuitesparseconfig_Octave64.so' failed make: [/install/lib/libsuitesparseconfig_Octave64.so] Error 2 make: Waiting for unfinished jobs.... Makefile:130: recipe for target '/source-cache/qrupdate-1.1.2.tar.gz' failed make: *** [/source-cache/qrupdate-1.1.2.tar.gz] Error 8

neurosurgeon commented 7 years ago

So I am now running the "make -j2 2>&1 | tee build.log" command as the default ubuntu user. Up until now I was using sudo. Now the build.log is there. However, it still stopped after building openblas. I then repeated "make -j2 2>&1 | tee build.log" and it builds suitesparse and stops with this:

ranlib libcholmod_Octave64.a /usr/bin/ld: cannot find -lmetis collect2: error: ld returned 1 exit status Makefile:541: recipe for target '/home/ubuntu/GNU-Octave-enable-64/build/suitesparse/lib/libcholmod_Octave64.so.3.0.11' failed make[4]: [/home/ubuntu/GNU-Octave-enable-64/build/suitesparse/lib/libcholmod_Octave64.so.3.0.11] Error 1 make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/suitesparse/CHOLMOD/Lib' Makefile:31: recipe for target 'library' failed make[3]: [library] Error 2 make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/suitesparse/CHOLMOD/Lib' Makefile:19: recipe for target 'library' failed make[2]: [library] Error 2 make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/suitesparse/CHOLMOD' Makefile:111: recipe for target 'library' failed make[1]: [library] Error 2 make[1]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/suitesparse' Makefile:90: recipe for target '/home/ubuntu/GNU-Octave-enable-64/install/lib/libsuitesparseconfig_Octave64.so' failed make: *** [/home/ubuntu/GNU-Octave-enable-64/install/lib/libsuitesparseconfig_Octave64.so] Error 2

neurosurgeon commented 7 years ago

So I did sudo apt-get install metis. And repeated "make -j2 2>&1 | tee build.log" and it is now continuing to build... Will let you know if it works.

neurosurgeon commented 7 years ago

It stopped after this (prematurely again).


Libraries have been installed in: /home/ubuntu/GNU-Octave-enable-64/install/lib

If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following:

See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages.

make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/SRC' make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/SRC' Making install in . make[2]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack' make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack' make[3]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/home/ubuntu/GNU-Octave-enable-64/install/lib/pkgconfig' /usr/bin/install -c -m 644 arpack_Octave64.pc '/home/ubuntu/GNU-Octave-enable-64/install/lib/pkgconfig' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack' make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack' Making install in TESTS make[2]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/TESTS' make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/TESTS' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/TESTS' make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/TESTS' Making install in EXAMPLES make[2]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' Making install in BAND make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/BAND' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/BAND' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/BAND' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/BAND' Making install in COMPLEX make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/COMPLEX' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/COMPLEX' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/COMPLEX' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/COMPLEX' Making install in NONSYM make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/NONSYM' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/NONSYM' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/NONSYM' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/NONSYM' Making install in SIMPLE make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SIMPLE' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SIMPLE' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SIMPLE' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SIMPLE' Making install in SVD make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SVD' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SVD' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SVD' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SVD' Making install in SYM make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SYM' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SYM' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SYM' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES/SYM' make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/EXAMPLES' Making install in PARPACK make[2]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[3]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[4]: Entering directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[3]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[2]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack/PARPACK' make[1]: Leaving directory '/home/ubuntu/GNU-Octave-enable-64/build/arpack'

neurosurgeon commented 7 years ago

Didn't work. build.log Here is the build.log.

siko1056 commented 7 years ago

Dear @neurosurgeon,

Thank you for your log-file. Yesterday I updated the documentation e00b4da8b0d81668e37bd4a1345f3e8233a17619 that build/build.log should be generated in the root directory. You found it out already, sorry not to mention it here. I do not know you system setup, but

  1. Are you in general able to build Octave from the sources?
  2. After a failed build, you should clean all previous attempts by calling make clean.
  3. Somehow I am convinced that parallel jobs do not work that well on your system... Maybe you can try using a single job (this is slow, but better than nothing).
  4. From your build.log, I saw, that you don't have cmake installed (required for libmetis).

To sum up, install cmake and you might give this a try:

make clean
make 2>&1 | tee build.log
neurosurgeon commented 7 years ago

Thanks for your quick response. I will try that now. Is that the single job command you listed above?

siko1056 commented 7 years ago

Exactly, -j2 after make just specifies the number of parallel jobs.

neurosurgeon commented 7 years ago

It failed. However, this time it seems like it got pretty far. Here's the log file.

build.log

siko1056 commented 7 years ago

Yes, we're almost done! The Octave build was successful and maybe you can already run the not-installed version via:

/home/ubuntu/GNU-Octave-enable-64/build/octave/run-octave

I study the build.log, what went wrong in this very very last step.

siko1056 commented 7 years ago

Hmm... the two ugly sections within the build.log are:

I cannot say, why the relinking of libinterp/liboctinterp.la failed. Maybe you can only delete the entire build/octave directory and run make again (without parallel jobs and logging) just to try if it was a bad circumstance.

neurosurgeon commented 7 years ago

I think the problem was that I ran out of disk space. I'm installing this on an amazon AWS EC2 instance so I thought I had it configured for 100 GB but this is what it says:

ubuntu@ip-172-31-36-65:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 15G 0 15G 0% /dev tmpfs 3.0G 8.6M 3.0G 1% /run /dev/xvda1 7.7G 7.7G 0 100% / tmpfs 15G 0 15G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 15G 0 15G 0% /sys/fs/cgroup tmpfs 3.0G 0 3.0G 0% /run/user/1000

Will try to create another instance with more space and retry.

siko1056 commented 7 years ago

Okay, didn't thought of that. So, if the installation was finished, the build and source-cache folders can be removed entirely. This saves a lot of disk space (on my current system 610 MB vs. 4.7 GB).

neurosurgeon commented 7 years ago

I was able to install it correctly. At the end it says to run from:

/home/ubuntu/GNU-Octave-enable-64/install/bin/octave

siko1056 commented 7 years ago

Lovely, thus I can consider this item to be closed.

If you have any further problems or ideas, I am very happy that this project is useful to someone else :wink: