nim-lang / nimble

Package manager for the Nim programming language.
https://nim-lang.github.io/nimble/index.html
Other
1.25k stars 191 forks source link

Installing nimble on Windows 64 #309

Closed axbender closed 7 years ago

axbender commented 7 years ago

I did the following (nim 0.15.3 installed):

a) git clone https://github.com/nim-lang/nimble.git d:\src\nimble b) cd d:\src\nimble c) nim c -d:release src\nimble.nim # compiles ok d) cp src\nimble.exe src\nimble1.exe e) # Copy in SSL-libs # sth should be done about that! (this is not the error, though...) e) src\nimble1.exe install

Error: Could not read package info file in D:\src\nimble\nimble.nimble; ... Reading as ini file failed with: ... Invalid section: . ... Evaluating as NimScript file failed with: ... D:\src\nimble\nimble.nimble(13, 1) Error: Error: ambiguous identifier: 'version' --use nimscriptapi.version or system.version.

dom96 commented 7 years ago

Your Nim installation is outdated

Also, where did you get the instructions to execute those commands? You should be using koch nimble or koch tools to get a Nimble installation now.

axbender commented 7 years ago

I got these about two years ago... An they worked for a long time.

So where would I find up-to-date information about how to install an actual version of the complete nim infrastructure?

What would happen if I ran nimble uninstall nimble@"0.8.0"... Would it remove just the nimble package under pkgs? How get packages installed? (Has this changed too?) Where do the packages go?

Questions over questions ;-)

But, hey, thanks for the answer!

axbender commented 7 years ago

Me again... When I try to upgrade packages (e.g. nimble install strfmt@">0.8.4", I get a traceback:

Downloading https://bitbucket.org/lyro/strfmt using hg Tip: 2 messages have been suppressed, use --verbose to show them. Error: Traceback (most recent call last) ... nimble.nim(1068) nimble ... nimble.nim(994) doAction ... nimble.nim(601) install ... nimble.nim(565) downloadPkg ... download.nim(211) doDownload ... download.nim(167) verifyClone ... Downloaded package's version does not satisfy requested version range: wanted > 0.8.4 got 0.8.4.

Is the "old" mechanism still functional, or do I have to "forget" about the old dirs and start over from scratch?

dom96 commented 7 years ago

These instructions should work, although they do make the possibility of failure more likely. Nimble is now bundled with Nim so you shouldn't need to install it yourself anyway.

So where would I find up-to-date information about how to install an actual version of the complete nim infrastructure?

Nim website

What would happen if I ran nimble uninstall nimble@"0.8.0"... Would it remove just the nimble package under pkgs?

Yes, and the binary in ~/.nimble/bin.

How get packages installed?

nimble install, for this sort of thing the Nimble readme is your friend.

Where do the packages go?

Again, please take a look at the readme. But they go to ~/.nimble

dom96 commented 7 years ago

nimble install strfmt@">0.8.4"

Downloaded package's version does not satisfy requested version range: wanted > 0.8.4 got 0.8.4.

This is correct, and the error message is pretty good actually IMO. Maybe a slight rewording could make it better :)

You asked Nimble to install strfmt version greater than 0.8.4, but it could only find version 0.8.4.

axbender commented 7 years ago

Thanks for the information. (However, a traceback when the version is wrong...?)

dom96 commented 7 years ago

Did you compile Nimble with the -d:release flag? The tracebacks are there for debugging.

axbender commented 7 years ago

Yes (koch nimble -d:release)...

dom96 commented 7 years ago

ahh, looks like koch nimble doesn't build it with that flag, nor does it care if you pass it that flag :\

axbender commented 7 years ago

Btw., it would be nice if you could provide the necessary DLLs (libeay64.dll, ssleay64.dll, ...) for nimble.exe. Also, these DLLs are usually found in the net as e.g. libeay32.dll instead of libeay64.dll; could the naming requirements be adapted?

dom96 commented 7 years ago

Doesn't Nim provide those DLLs?

... libeay32.dll instead of libeay64.dll; could the naming requirements be adapted?

Yeah... I dislike this, but there is a reason for it. The convention in Nim is for DLLs that are 64bit to be named blah64.dll. I think in this case it would make sense to call them libeay32_64.dll and libeay32_32.dll, but this is a Nim issue so you may want to create an issue in that repo.

dom96 commented 7 years ago

I added this error to the readme's troubleshooting section so I will now close this issue.