To install your own software packages from the internet by using git/svn, tarballs, or via an installation script that fetches files via http or ftp, please consider the following options. SuperMUC-NG has rather tight security restrictions, and thus a firewall, which prevents any outgoing connections.
Copy all needed installation files to supermuc
The easiest way to install a software package is to copy all needed files into a directory on SuperMUC-NG, unpack them and run the configure script. Be sure that you have resolved all the dependencies and then you can compile the software and install it in a directory in your home. Most of the time this will include an option like this:
Before, load the environment modules as needed. Strive for a clean built environment. Specifically, unload the Intel modules when you want to build your software with GCC.
Mount a directory of SuperMUC-NG on your local machine
Another way is to mirror the directory on the supermuc to your local machine (when you are running SUSE SLES11 or another compatible linux) and install the software on your local machine.
This can be done by creating a directory on supermuc in your HOME directory e.g. $HOME/mydir and a directory at your local machine $HOME/mydir and then mounting it. You need sshfs in order to do the mapping on your local machine.
Then install the software on your local machine in the directory
sng_mnt. It will be automatically mirrored to the supermuc directory and can then be used there. Once finished, use
fusermount -u sng_mnt to unmount the directory again. (Warning: Latency due to slow network connection is possible.)
Create a reverse SSH tunnel for internet access from SuperMUC-NG login node
In case the last method fails you can create a tunnel via ssh from your local machine to SuperMUC-NG and use a proxy at your local machine to re-direct internet connections from supermuc to the internet.
Get a proxy software for http connections and unpack it on your local machine (
pip3 install --upgrade --user proxy.py for python3).
Then start the local proxy using:
for the pip installed proxy for python3.
Then create a tunnel to supermuc via:
On SuperMUC-NG, you must set
localhost:1234 (adapt ports as needed), and have full access to the http protocoll. (e.g. firefox etc).
user_spack can be possibly used with these settings. Otherwise, check for ftp, git etc. whether there are similar proxy settings needed!
Trouble Shooting: This workflow was tested to work also under local Windows environment with either Virtual Box or WSL -- Debian or Ubuntu. For Ubuntu, you probably must change in the /etc/hosts a line to match
(Warning: Latency due to slow network connection is possible.)
The idea is to bundle source code or binary packages with all dependencies together, move the bundle to the SuperMUC–NG, and unroll/install it there. This is also possible with conda and pip.