Simple installation of packages without network

Hi!
I have access to machines that don’t allow me to download anything from the web, so I had difficulties installing software with Opam.
With the help of Raja from OCamlPro, I came to a practical solution that solved my problem, and I turned it into a script: https://github.com/scemama/OpamPack
It is a simple script that makes a tar.gz on your local machine with all the dependencies you need, and then you can copy the tar.gz o the remote isolated machine and install everything using Opam without needing the network.
Enjoy!

9 Likes

there is also opam - opam-bundle

1 Like

Nice, allows to get a source-based installer for an opam package!

I think it is possible to create a local mirror of the opam-repository, but this would be a much heavier
solution (you need to download many tarballs). Also, I don’t even remember where was the script
to do that; probably one of the maintenance script used by people maintaining the opam repository https://opam.ocaml.org.
The added benefit is that if you have a local opam repository, you can basically install any opam package
without network access (provided all the system dependencies are already installed).

1 Like

I don’t know if it’s your case, but if you’re in the situation where:

  • you’re using ssh to connect to the machine
  • the connecting-from machine has access to the internet
  • the connected-to machine can not make outbound connections to the internet

Then you can also use a ssh reverse tunnel to provide internet access to the machine you’re connected to while the ssh connection is active. The relevant feature is documented in the -R flag of the ssh man page.

@emillon It is exactly what you are talking about. The access to the outside is forbidden for security motivations, so the admins also disabled the possibility to do tunneling.