swcarpentry / windows-installer

Software Carpentry installer for Windows.
MIT License
21 stars 17 forks source link

Make on windows #34

Closed wrightaprilm closed 8 years ago

wrightaprilm commented 8 years ago

Hi Y'all-

We're having some issues with make on windows. The make.exe is in the ~/.swc/bin, which is in the path like it ought to be. Typing

ls ~/.swc/bin/

returns make.exe and nosetests.

But when we try to access Make from the command line, we get the error:

error while loading shared libraries: cannot open shared object file: No such file or directory.

Has anyone had this issue?

wking commented 8 years ago

On Tue, Nov 17, 2015 at 07:23:25AM -0800, April Wright wrote:

error while loading shared libraries: cannot open shared object file: No such file or directory.

Does Windows have an equivalent to strace 1 that would let you figure out which shared libraries are missing? My guess is that this is the result of the msysGit → Git for Windows transition, and that you want a Make built for MSys2 [2,3]. Does the Git for Windows install add Packman to your path 3?

wrightaprilm commented 8 years ago

I'm not really sure if Windows has Strace. A cursory google indicates that there are some similar utilities. I don't actually have access to a PC on a regular basis, and I'm doing an alternate activity to the Make activity (~75% of my audience today is PC). If the case is that the transition from msys to GfW is the issue, then I think we need to switch over in the instructions and installer to use whichever is more complete. As it stands now, no PC users in the room had Make, unless they already had it for their own work.

wking commented 8 years ago

On Tue, Nov 17, 2015 at 11:11:53AM -0800, April Wright wrote:

If the case is that the transition from msys to GfW is the issue, then I think we need to switch over in the instructions and installer to use whichever is more complete.

I don't have access to a Windows machine, so I'm not sure what the easiest way is to get an MSys2 Make installed is. The next time you have a Windows machine handy can you see if ‘packman’ is in the PATH 1?

ethanwhite commented 8 years ago

I can replicate this. The fuller error message is:

The program can't start because msys-1.0.dll is missing from your computer.

wking commented 8 years ago

On Wed, Nov 18, 2015 at 07:39:58AM -0800, Ethan White wrote:

I can replicate on this. The fuller error message is:

The program can't start because msys-1.0.dll is missing from your computer.

Heh, and that's with the old msysGit binary? If you install a current Git for Windows do you have ‘packman’ in your path? It looks like the old msysGit would build and distribute that library 1, but didn't commit a compiled version to their Git history.

ethanwhite commented 8 years ago

Heh, and that's with the old msysGit binary?

This is following the current instructions using Git for Windows.

If you install a current Git for Windows do you have ‘packman’ in your path?

No.

wking commented 8 years ago

On Wed, Nov 18, 2015 at 11:02:39AM -0800, Ethan White wrote:

Heh, and that's with the old msysGit binary?

This is following the current instructions using Git for Windows.

Right, but your make.exe is from the old msysGit repository (e.g. as installed by the installation script in this repository)?

If you install a current Git for Windows do you have ‘packman’ in your path?

No.

Ah, it's ‘pacman’ 1. Any luck with that?

ethanwhite commented 8 years ago

Right, but your make.exe is from the old msysGit repository (e.g. as installed by the installation script in this repository)?

Ah yes, sorry for the confusion.

Ah, it's ‘pacman’ [1]. Any luck with that?

pacman is actually what I checked for.

wking commented 8 years ago

On Wed, Nov 18, 2015 at 11:20:33AM -0800, Ethan White wrote:

Ah, it's ‘pacman’ 1. Any luck with that?

pacman is actually what I checked for.

Bummer. So I think we need to:

For folks who need Make, both (a) and (b) are viable now (and (b) is a larger install, but just one install for both Git and Make). (c) would be nice, but I don't have the time or Windows machine needed to figure it out. Depending on how troublesome (a) and (b) are, SWC might want to fund someone to make (c) happen.

ethanwhite commented 8 years ago

It looks like there might be an alternative. I just installed GNU Make for Windows [1] and it seems to be working for me. I installed it using the Setup installer, but presumably we could download the binaries in the same way we currently do.

[1] http://gnuwin32.sourceforge.net/packages/make.htm

wking commented 8 years ago

On Wed, Nov 18, 2015 at 12:45:50PM -0800, Ethan White wrote:

It looks like there might be an alternative. I just installed GNU Make for Windows 1 and it seems to be working for me. I installed it using the Setup installer, but presumably we could download the binaries in the same way we currently do.

Ah, that works. I'm not sure how alive it is (it's at GNU Make 3.81, and that was cut on 2006-04-01 1), but it is probably the cheapest short-term fix.

ethanwhite commented 8 years ago

Ah, that works. I'm not sure how alive it is (it's at GNU Make 3.81, and that was cut on 2006-04-01 [1]), but it is probably the cheapest short-term fix.

Yeah, it's definitely stuck at where it is, but after experimenting with the other options I think it's a reasonable fix for the moment. Do you have some time to look at swapping this in to the Python script. I'd be happy to test.

wking commented 8 years ago

On Thu, Nov 19, 2015 at 07:33:00AM -0800, Ethan White wrote:

Do you have some time to look at swapping this in to the Python script.

Should be done in #35. We'll probably also want to test/merge #36 before cutting a new release.

wking commented 8 years ago

35 has landed and we cut v0.3 with the new code, so I'm closing this.

Please reopen if there is more trouble :).