qmarcou / IGoR

IGoR is a C++ software designed to infer V(D)J recombination related processes from sequencing data. Find full documentation at:
https://qmarcou.github.io/IGoR/
GNU General Public License v3.0
47 stars 25 forks source link

Installation problems #6

Closed mikessh closed 6 years ago

mikessh commented 6 years ago

Hello!

I've got the following problems with installing on our Ubuntu server:

  1. ./configure results in a warning "configure: WARNING: no configuration information is in igor_src"
  2. make install fails with minmax.c:26:28: fatal error: gsl/gsl_minmax.h: No such file or directory

I use linuxbrew, so brew install gsl (installing GNU Scientific Library) and then make install solved my problem. I mean I've got a functional binary in igor_src (without man pages), and make install exited with

libtool: install: /usr/bin/install -c igor /usr/local/bin/igor
/usr/bin/install: cannot remove '/usr/local/bin/igor': Permission denied
Makefile:376: recipe for target 'install-binPROGRAMS' failed
make[2]: *** [install-binPROGRAMS] Error 1
make[2]: Leaving directory '/home/mikesh/distr/igor_1-1-0/igor_src'
Makefile:873: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/home/mikesh/distr/igor_1-1-0/igor_src'
Makefile:509: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
qmarcou commented 6 years ago

Hi! Thanks for posting this issue, about your different problems:

  1. This is just a warning, there is indeed no configure information in igor_src but this is on purpose. I'll try and suppress this warning as several users were worried about it.
  2. Would you by chance have the logs of what happened by typing make before you installed GSL? What command did you use exactly? All the required parts of GSL are shipped with IGoR so you should not have to install it yourself. I'm even more surprised by the fact that installing it solved your initial problem!
  3. As for your final problem this seems to simply be a permission issue as you may not have write permissions in some folders (cannot remove '/usr/local/bin/igor': Permission denied)
jeremycfd commented 6 years ago

Hi @qmarcou , I wanted to chime in that I've been having issue2 as well when trying to install version 1.2.0. Per your request I've included the exact output of the install attempt. This was after configuring per instructions. I tried a number of things but was unable to resolve the issue. I run Ubuntu and already have libgsl2 installed. I installed libtool-bin to see if that would resolve the issue, but it didn't.

REDACTED@REDACTED:~/Installs/IGoR/igor_1-2-0$ sudo make install
Making install in libs
make[1]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs'
Making install in gsl_sub
make[2]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub'
Making install in gsl
make[3]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/gsl'
make[4]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/gsl'
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/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/gsl'
make[3]: Leaving directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/gsl'
Making install in utils
make[3]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/utils'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT placeholder.lo -MD -MP -MF .deps/placeholder.Tpo -c -o placeholder.lo placeholder.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT placeholder.lo -MD -MP -MF .deps/placeholder.Tpo -c placeholder.c  -fPIC -DPIC -o .libs/placeholder.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT placeholder.lo -MD -MP -MF .deps/placeholder.Tpo -c placeholder.c -o placeholder.o >/dev/null 2>&1
mv -f .deps/placeholder.Tpo .deps/placeholder.Plo
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2   -o libutils.la  placeholder.lo  -lm
libtool: link: ar cru .libs/libutils.a .libs/placeholder.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libutils.a
libtool: link: ( cd ".libs" && rm -f "libutils.la" && ln -s "../libutils.la" "libutils.la" )
make[4]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/utils'
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/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/utils'
make[3]: Leaving directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/utils'
Making install in sys
make[3]: Entering directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/sys'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -I..   -g -O2 -MT minmax.lo -MD -MP -MF .deps/minmax.Tpo -c -o minmax.lo minmax.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -g -O2 -MT minmax.lo -MD -MP -MF .deps/minmax.Tpo -c minmax.c  -fPIC -DPIC -o .libs/minmax.o
minmax.c:26:28: fatal error: gsl/gsl_minmax.h: No such file or directory
compilation terminated.
Makefile:640: recipe for target 'minmax.lo' failed
make[3]: *** [minmax.lo] Error 1
make[3]: Leaving directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub/sys'
Makefile:780: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs/gsl_sub'
Makefile:356: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/REDACTED/Installs/IGoR/igor_1-2-0/libs'
Makefile:509: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1

UPDATE: Actually, I was finally able to resolve this by copying all of your "gsl_" header files to the /igor_1-2-0/libs/gslsub/gsl/ directory. I copied all gsl*.h in /libs/gsl_sub/ and all of its subdirectories and then installation proceeded. I assume only a subset of those headers needed to be copied over but I wasn't keen to copy each one individually.

Because I had installed a previous version if IGoR, I also had to delete /usr/local/share/igor/models/ directory so that the final steps of installation wouldn't error out. igor -run_demo worked fine so I assume all is well with my installation now.

qmarcou commented 6 years ago

Thanks for your detailed bug report! And congratulations for sorting this out! You did well all the gsl_*.h should be copied in the gsl_sub/gsl directory during the configure step I am surprised they have not been. I'll sort this out quickly.

As for your second issue with uninstalling/updating IGoR I take note of it and try to make this a bit cleaner, many thanks!

Disomics commented 6 years ago

Hello, I've got a following error while running"make install" on Linux machine:

make[2]: Entering directory /site/ne/home/Programs/igor_1-2-0/libs' make[3]: Entering directory/site/ne/home/Programs/igor_1-2-0/libs' make[3]: Nothing to be done for install-exec-am'. make[3]: Nothing to be done forinstall-data-am'. make[3]: Leaving directory /site/ne/home/Programs/igor_1-2-0/libs' make[2]: Leaving directory/site/ne/home/Programs/igor_1-2-0/libs' make[1]: Leaving directory /site/ne/home/Programs/igor_1-2-0/libs' Making install in igor_src make[1]: Entering directory/site/ne/home/Programs/igor_1-2-0/igor_src' make[2]: Entering directory /site/ne/home/Programs/igor_1-2-0/igor_src' /usr/bin/mkdir -p '/site/ne/home/Programs/igor_1-2-0/bin' /bin/sh ../libtool --mode=install /usr/bin/install -c igor '/site/ne/home/Programs/igor_1-2-0/bin' libtool: install: /usr/bin/install -c igor /site/ne/home/Programs/igor_1-2-0/bin/igor make[2]: Nothing to be done forinstall-data-am'. make[2]: Leaving directory /site/ne/home/Programs/igor_1-2-0/igor_src' make[1]: Leaving directory/site/ne/home/Programs/igor_1-2-0/igor_src' make[1]: Entering directory /site/ne/home/Programs/igor_1-2-0' make[2]: Entering directory/site/ne/home/Programs/igor_1-2-0' make[2]: Nothing to be done for install-exec-am'. mkdir /site/ne/home/Programs/igor_1-2-0/share/igor/models mkdir: cannot create directory ‘/site/ne/home/Programs/igor_1-2-0/share/igor/models’: No such file or directory make[2]: *** [install-data-local] Error 1 make[2]: Leaving directory/site/ne/home/Programs/igor_1-2-0' make[1]: [install-am] Error 2 make[1]: Leaving directory `/site/ne/home/Programs/igor_1-2-0' make: [install-recursive] Error 1

I've figured out that neither "igor" nor "share" had been created in igor_1-2-0 directory. After creating them manually, the problem was solved.

qmarcou commented 6 years ago

Hi @Disomics , I think this issue has been fixed by @smoe with #13 I'll make a new release patch within days (most likely tomorrow). Otherwise the corrected version is available on the master branch although not packaged.

qmarcou commented 6 years ago

Hi @mikessh and @jeremycfd, I'm still not sure why you experienced this issue with missing gsl headers, I have just released v1.3.0, could you tell me if you still experience installation issues with the new release?

mikessh commented 6 years ago

Hello, I don't have the problem with minmax in 1.3.0, however there is a problem with gsl matrix:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -g -O2 -MT permute.lo -MD -MP -MF .deps/permute.Tpo -c permute.c  -fPIC -DPIC -o .libs/permute.o
permute.c:7:36: fatal error: gsl/gsl_permute_matrix.h: No such file or directory
compilation terminated.
Makefile:634: recipe for target 'permute.lo' failed
make[3]: *** [permute.lo] Error 1
make[3]: Leaving directory '/home/mikesh/distr/igor_1-3-0/libs/gsl_sub/permutation'
Makefile:780: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/home/mikesh/distr/igor_1-3-0/libs/gsl_sub'
Makefile:356: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/home/mikesh/distr/igor_1-3-0/libs'
Makefile:509: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1

(I'm installing it to local folder with --prefix option so permissions are OK)

PS sudo apt-get install libgsl-dev solves everything

qmarcou commented 6 years ago

Oooh I think I have found the reason why this is crashing. In the GSL library the header files are all gathered in a gsl directory as @jeremycfd pointed out, but these files are copied only at compile time using the make command. Anyway have you used the make command before make install? I have managed to reproduce your minmax.h issue by typing make install before any make invocation. I don't think make install initially calls make all thus there is nothing to install yet as the software has not been compiled.

Thanks for the quick test!

mikessh commented 6 years ago

No I haven't, I've just ran make install so perhaps you are correct. Unfortunately I can not easily re-check this as this will require uninstalling libgsl, etc

qmarcou commented 6 years ago

Sure I completely understand, but is the gsl_matrix.h issue going away if you use

./configure
make
make install

with v1.3.0?

mikessh commented 6 years ago

Yep, right now there is no issue with configure-make-make install.

qmarcou commented 6 years ago

Great! I'll thus close this issue for now and will re-open it if the problem turned out to be different from not using make before make install. Meanwhile I have updated the documentation to make this clearer. Thank you for your swift testing!