FePhyFoFum / phyx

phylogenetics tools for linux (and other mostly posix compliant) computers
blackrim.org
GNU General Public License v3.0
111 stars 17 forks source link

Debian 12 install, pxseqgen #180

Closed crcardenas closed 9 months ago

crcardenas commented 9 months ago

I was following the install instructions for linux. But I ran into an issue installing a general dependency not available on debian's mirrors. I was able to get the deb and install it from debian for an old stable version..

But otherwise, that's the only deviation I had on the install. But it looks like there might be an issue with armadillo I don't see?

building pxseqgen
g++ -g -O2 -o "pxseqgen" -O3 -std=c++14 -fopenmp -Wall -DOMP -ffast-math -ftree-vectorize main_seqgen.o ./utils.o ./citations.o ./log.o ./superdouble.o ./timer.o ./sequence.o ./seq_reader.o ./seq_utils.o ./seq_models.o ./pairwise_alignment.o ./node.o ./tree.o ./tree_reader.o ./tree_utils.o ./rate_model.o ./state_reconstructor.o ./optimize_state_reconstructor_nlopt.o ./optimize_state_reconstructor_periods_nlopt.o ./branch_segment.o ./cont_models.o ./seq_gen.o   -llapack -lblas -lpthread -lm -lnlopt -larmadillo
/usr/bin/ld: ./seq_gen.o: in function `double std::normal_distribution<double>::operator()<std::mersenne_twister_engine<unsigned long, 64ul, 312ul, 156ul, 31ul, 13043109905998158313ul, 29ul, 6148914691236517205ul, 17ul, 8202884508482404352ul, 37ul, 18444473444759240704ul, 43ul, 6364136223846793005ul> >(std::mersenne_twister_engine<unsigned long, 64ul, 312ul, 156ul, 31ul, 13043109905998158313ul, 29ul, 6148914691236517205ul, 17ul, 8202884508482404352ul, 37ul, 18444473444759240704ul, 43ul, 6364136223846793005ul>&, std::normal_distribution<double>::param_type const&)':
/usr/include/c++/12/bits/random.tcc:1817: undefined reference to `arma::arma_rng_cxx11_instance'
/usr/bin/ld: /usr/include/c++/12/bits/random.tcc:1817: undefined reference to `arma::arma_rng_cxx11_instance'
/usr/bin/ld: /usr/include/c++/12/bits/random.tcc:1817: undefined reference to `arma::arma_rng_cxx11_instance'
collect2: error: ld returned 1 exit status
make: *** [Makefile:622: pxseqgen] Error 1

After some googling, I found this, but making the armadillo library worked fine.

Let me know if you need any more info.

some machine info:

OS: Debian GNU/Linux 12 (bookworm) x86_64
Kernel: 6.1.0-13-amd64 
josephwb commented 9 months ago

Sorry you are having difficulties.

The deb you link to seems to be atlas rather than armadillo. I don't currently have debian installed, but libarmadillo-dev seems to be available.

Have you tried the armadillo in the deps directory? Otherwise the newest version is available here.

Please let me know if this works.

crcardenas commented 9 months ago

Thanks for your quick response.

I was unable to install it. I tried both the debian install su -c "apt install ...." and in the deps directory. I also tried installing the newest version as well, but there were further dependency issues that I didn't resolve with the newest version. I stopped trying because my cluster was able to install phyx as a module.

I will note, that it might just be "stable debian" issues, because I was able to install it on an ubuntu machine without any issues. Either way, thanks for taking the time to try and help me with this.

josephwb commented 9 months ago

@crcardenas Sorry about the problems. I have definitely run into the stable debian issues...

I will install a debian virtual machine and see if I might troubleshoot the problem. I know it has been installed on other debian clusters.