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

Improve installation documentation #84

Open
scanon opened this issue Aug 14, 2023 · 6 comments
Open

Improve installation documentation #84

scanon opened this issue Aug 14, 2023 · 6 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@scanon
Copy link
Member

scanon commented Aug 14, 2023

Add more details to the documentation about dependencies and configuration.

@scanon scanon added the documentation Improvements or additions to documentation label Aug 14, 2023
@scanon scanon self-assigned this Aug 14, 2023
@scanon
Copy link
Member Author

scanon commented Aug 14, 2023

For example explain how to build the static mksquashfs.

@bryanherman
Copy link

I didn't see the Dockerfile page in the repo until after I went through some of the pain of building deps, but here is what I suggest.

Have an INSTALL.md that states upfront what the main dependencies are:

  • podman (lol)
  • squashfuse
  • squashfs-tools
  • fuse-overlayfs
  • Python (and the packages)

You could give suggestions for each, like using your OS's package repository. For squashfs-tools you can point them to your Dockerfile. I will post below how I built it from scratch. Or I can take a stab at it if you agree to the layout.

@bryanherman
Copy link

Steps I used to build static mksquashfs manually (RHEL8 flavor):

  • sudo dnf install glibc-static
  • git clone https://github.com/lz4/lz4.git, change branch to latest tag (v1.9.4) and build with make. The static library is in the lib folder.
  • Now make a static makesquashfs: git clone https://github.com/plougher/squashfs-tools.git and checkout latest tag 4.6.1. Change directory into the squashfs-tools subdir and run the following command: make GZIP_SUPPORT=0 LZ4_SUPPORT=1 COMP_DEFAULT=lz4 INSTALL_PREFIX=$PWD/here EXTRA_LDFLAGS='-static -L/path/to/lz4/lib'

Note that the static executables will be in the folder $PWD/here.

@bryanherman
Copy link

Also I would like to mention that we are creating a Spack package for Podman-HPC and getting all the deps building correctly from source. So this will help with shared deployments on a system. Also, it's a good traceable way to see how everything was build. I'm folding in the commits to Spack in individual PRs, but you can see an aggregate of all the changes if you look at the last few commits at: https://github.com/NavalNuclearLab/spack/tree/py-podman-hpc-all. If you like this approach we could add this to the installation docs as well. You also have the option of building Podman HPC against the system podman and deps with this (Spack externals).

@lastephey
Copy link
Collaborator

Hi @bryanherman

Thanks for sharing this info and apologies for our slow reply.

The INSTALL.md structure you proposed seems good to me. Your contribution is very welcome, but otherwise I can work on getting this implemented.

Thanks for the link to your Spack package. Your approach seems reasonable to me. If you think it's ready to share, we can also add a mention of this in our docs here.

@scanon
Copy link
Member Author

scanon commented Nov 30, 2023

I may split this out a bit. I think it would be useful to have docs on how to install via pip for a regular user and then have more detailed docs for a site installation.

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
Projects
None yet
Development

No branches or pull requests

3 participants