Hi everyone.
I’m no Julia enthousiast, and i don’t know much about Julia.
I’m a sysadmin looking for ways to offer a clone of JuliaRegistries to users using a completely “offline network”, aka air gapped network. It means those users have zero internet access, they’re in a completely disconnected environment.
Everybody needs good tools, so we’re already duplicating a lot of stuff (various linux distros, anaconda channels, git repos…) online before importing it all to this offline network, so the idea to add JuliaRegistries/General to the mix came quite fast.
But reading the doc didn’t really made the way to use alternative repositories (when the official one can’t possibly be joined) that clear to me, like my use case simply never was a use case for anyone. Offline isn’t offline, that kind of funny stuff.
After looking around i though it was quite clear the julia pkg system wasn’t supposed to work the way we at work hope to be able to use it, but there were also no apparent major reason why it shouldn’t be possible.
Exploring, I found various julia tools from the community that may or may not help in doing part(s) of the job i need done, be were not meant for my use case thus needing unknown amount of time and experiments.
So I thought i would rather go for the low level way, that since Pkg management is git based, i should be able to host a copy anyway and somehow make it work ! Or maybe not ?
Basically, this is what I tried :
- cloned the git repo, imported it to an air gapped network, pushed it to a new origin (dedicated air gapped repo)
- modify url in registry.toml to match the git server’s url, in case it might matter
- client side (a jupyterhub session), played with env variables until i figure out the ones needed (i had little success in setting them in statup.jl, but i managed to set them with ENV syntax ; good enough for a try)
- enter Pkg mode (“]”), add repo url : sync OK
There I was thinking that was it. But it wasn’t
When I tried to install a package (IJulia if it matters), it complains it cannot connect to another repo (looking for JSON.jl from JuliaIO github repo).
So maybe I should have cloned that one too… or maybe after i clone it a third one will be needed, then a fourth and so on ?
Has anyone achieved some success in not using the official repos ?
Are some of those URI hard coded or did i miss some important configuration file somewhere ?
Did i miss some awesome air gapped julia info ?
Any help appreciated.