Closed CarpeDiemKopi closed 3 years ago
I solved it:
When using CygWin
, the windows path environment variable must be maintained to call an exe
file.
I had to add this entry in the file .bash_profile
# in my case
export PATH=$PATH:"/cygdrive/d/development/ocaml/home/Charleen/.opam/opam-2.0.5/bin"
Apparently, it is not necessary to have an exe
extension in CygWin (Unix?).
I didn't know either of those things. And I don't believe many other windows users either. Please include a note in the manual. And here are more stumbling blocks windows CygWin for windows users:
git config --global core.eol lf
git config --global core.autocrlf false
edit/update file .gittattribute * text=auto # set already from you
This is entirely expected:
Charleen@ROY /cygdrive/d/development/ocaml/home/Charleen/.opam/opam-2.0.5/bin
$ opam --help
-bash: opam: Kommando nicht gefunden.
if you don't update PATH
, then you need to say ./opam
- that's standard Unix behaviour, which Cygwin correctly emulates.
If you're building Cygwin opam
, I'd recommend installing it to /usr/local/bin
(so ./configure --prefix=/usr/local
) which will already be in PATH
. I certainly wouldn't install to a what looks like a subdirectory of an opam root.
You shouldn't need to mess around with core.eol
and core.autocrlf
- what (build) errors were you seeing? Were you using Git-for-Windows or Cygwin's git package?
Finally, for the .exe
extension - Cygwin does not require it, it's only included in Cygwin-built binaries to allow the executables to be called from the Windows command prompt. OCaml in general doesn't do this (cf. gcc -o hello hello.c
which generates hello.exe
and ocamlopt -o hello hello.ml
which generates hello
both for Cygwin OCaml and also for native Windows), so I'd err more towards consistency with the rest of the ecosystem than start doing something different in opam. In particular I don't think this:
should be changed to be Sys.win32 || Sys.cygwin
(which would be the "obvious" fix)
How to fix this?