Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement to traditional installation guidelines #16

Closed
sanathkeshav opened this issue Sep 2, 2024 · 3 comments · Fixed by #22
Closed

Improvement to traditional installation guidelines #16

sanathkeshav opened this issue Sep 2, 2024 · 3 comments · Fixed by #22
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@sanathkeshav
Copy link
Member

The traditional installation option offered by @siggmo is a popular choice for quickly trying out FANS by multiple users.
I was wondering if it can be improved a bit more by identifying and adding every single dependency of FANS including but not limited to gcc/ g++, CMake, git, htop, time.

This would make the traditional installation guide very exhaustive and by far the easiest way to get all the dependencies installed.

@sanathkeshav sanathkeshav added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2024
@siggmo
Copy link
Collaborator

siggmo commented Sep 2, 2024

I'm not sure what packages could be missing because I determined the dependencies using dpkg-shlibdeps which is a tool to automatically determine shared library dependencies of an executable (using CMake option CPACK_DEBIAN_PACKAGE_SHLIBDEPS).

Did the users that experienced the problem really install all of those packages?

FANS/README.md

Line 35 in 54ee6d2

openmpi-bin libc6 libfftw3-double3 libfftw3-mpi3 libgcc-s1 libgomp1 libhdf5-103 libopenmpi3 libstdc++6

This list is the dependency list that is put into the Debian package created by CPack, and I was able to install this package on a clean Ubuntu. This is the output of dpkg -I fans_0.1.2_amd64.deb:

root@23e4c2d887b9:/packages# dpkg -I fans_0.1.2_amd64.deb 
 new Debian package, version 2.0.
 size 212140 bytes: control archive=578 bytes.
     404 bytes,    11 lines      control              
     100 bytes,     2 lines      md5sums              
      64 bytes,     7 lines   *  postinst             #!/bin/sh
      61 bytes,     7 lines   *  postrm               #!/bin/sh
 Architecture: amd64
 Depends: openmpi-bin, libc6 (>= 2.16), libfftw3-double3 (>= 3.3.5), libfftw3-mpi3, libgcc-s1 (>= 4.0), libgomp1 (>= 4.2.1), libhdf5-103, libopenmpi3 (>= 4.0.3), libstdc++6 (>= 5.2)
 Description: FANS - Fourier Accelerated Nodal Solver
  FANS shared library and executable
 Maintainer: MIB DAE Stuttgart
 Package: fans
 Priority: optional
 Section: devel
 Version: 0.1.2
 Installed-Size: 596

Maybe they used a non Debian-based distro?

@siggmo siggmo self-assigned this Sep 2, 2024
@siggmo
Copy link
Collaborator

siggmo commented Sep 2, 2024

Ahh I'm sorry now I get it, you meant not the direct package dependencies but also the build toolchain etc.

Then let's just add the packages that come in our Docker images. For just building that would be:

FANS/docker/Dockerfile

Lines 25 to 31 in 54ee6d2

# Build basics
software-properties-common \
build-essential \
# CMake + git for FetchContent + file for CPack
cmake \
git \
file \

And then the additional tools:

FANS/docker/Dockerfile

Lines 52 to 60 in 54ee6d2

# Some additional packages for convenience
time \
htop \
vim \
python3 \
python3-pip \
python3-venv \
python-is-python3 \
python3-dev \

Mayben we then should also add instructions on how to set up the python environment for the h52xdmf script? In the Dockerfile that would correspond to:

FANS/docker/Dockerfile

Lines 84 to 88 in 54ee6d2

ARG FANS_venv=FANS_venv
RUN python -m venv /home/${USER}/venvs/${FANS_venv} && \
echo "\nsource /home/${USER}/venvs/${FANS_venv}/bin/activate\n" >> /home/${USER}/.bashrc && \
. /home/${USER}/venvs/${FANS_venv}/bin/activate && \
python -m pip install --no-cache-dir h5py lxml

I can update the README accordingly if you are fine with the above suggestions :)

@siggmo siggmo linked a pull request Sep 9, 2024 that will close this issue
@IshaanDesai
Copy link
Collaborator

Closed via #22

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants