fdopen / opam-repository-mingw

windows package repository for OPAM (mingw and msvc)
https://fdopen.github.io/opam-repository-mingw/
Creative Commons Zero v1.0 Universal
96 stars 34 forks source link

Installing in a multi-user environment #36

Open TechTodd opened 7 years ago

TechTodd commented 7 years ago

Any suggestions on the best way to install this in a university lab environment running windows10. The installer doesn't recommend running as admin to do a global install. Installing as a user doesn't make the resources available to all users on the machine/domain. Also seems like ever user that logs in will have a local directory called C:\OCaml64\.ocaml that will house any packages that are installed by the user.

Any suggestions would be appreciated.

Thanks, Todd

fdopen commented 7 years ago

It's intentionally installed outside the usual hierarchy. Your user name is often something like François Noël and your files are stored under C:\Users\François Noël\..., so the path will likely contain a space character and possibly unicode chars. The OCaml compiler itself already can't deal with it and many build instructions are unix centric and won't work as well. Storing the files under C:\Ocaml64\home\username will circumvent all these problems (the installer will also remove any space and non-ascii chars from the user home directory under C:\Ocaml64\home\...)

I didn't recommend to run the installer as administrator, because only this way you can install external packages easily with opam install depext depext-cygwinports && opam depext -i lablgtk zarith. Otherwise I would have to add something like su support to depext - and I was too lazy to do it.

You can however change the default location where your files are stored and even share a common opam switch between different users by setting the OPAMROOT environment variable (or with opam --root).

But what is your aim? Do you want to make a set of packages (one ocaml compiler, ocaml-top, merlin, utop ...) available to all users? Or do you want to enable every user to install her own set of packages in a local opam directory? The former should be rather easy to achieve, the latter will be more tricky because of the mentioned problems with space and unicode characters.