Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

binary installations that can transition into source installations #4287

Closed
StefanKarpinski opened this issue Sep 16, 2013 · 5 comments
Closed
Labels
speculative Whether the change will be implemented is speculative

Comments

@StefanKarpinski
Copy link
Member

I find it disconcerting to help people that have binary installations of Julia:

  1. things aren't where I'm used to them being;
  2. there's always stuff that seems to be missing from the setup;
  3. the only way to get an updated version is to install a source version from scratch.

The primary reason to use a binary install seems to be to avoid the long time it takes to download and compile LLVM, OpenBLAS, etc. Would it be possible to have a binary installs that are essentially just source installs with all those things pre-compiled? That way you could find where the thing is installed and just run git pull and get a the latest version and even start making contributions. Seems like it would be the best of both worlds if it's at all possible. I think this would alleviate the pressure to keep binaries up-to-date massively too.

@stevengj
Copy link
Member

The primary reason to have a binary install is that Mac and Windows systems don't come with compilers, git, or even make.

@StefanKarpinski
Copy link
Member Author

Right, so the idea would be to have a binary install that can work without all of those things, but if they exist already or are provided later, can smoothly become a source install that just happened to be precompiled. I'm not even sure if this is possible, but it would be the ideal installation method.

@staticfloat
Copy link
Member

In the case of OSX and Windows, I think this is possible. You'd essentially just need to ship the Makefiles in the proper positions, and typing make should pretty much "just work", as far as I can tell. Our Makefiles download everything, compile them, etc.....

On Linux, since things are installed into the /usr/local/ prefix and such, I don't think this is possible.

A much better idea, in my opinion, would be to allow Julia to update itself. We already package binaries for a multitude of platforms, it shouldn't be too difficult to write some unpacking code and get an in-place update. Especially on Windows and Mac, a C compiler toolchain is not a given.

I have a large amount of work to burn through after my absence the last week and a half, but this sounds like a fun project for me to tackle eventually.

@StefanKarpinski
Copy link
Member Author

The traditional UNIX software installation model is so broken. It just needs to die. Scattering little fragments of every pieces of software all across the system is nuts. That said, on Linux, we can just recommend installing from source but also provide packages for the standard package managers.

@vtjnash
Copy link
Member

vtjnash commented Sep 22, 2013

This sounds cool, but possibly quite impractical. Essentially though, if the user had the rest if the compiler environment, they could do 'make USE_SYSTEM_ALL=1' after extracting the binaries to 'julia/usr'

If you want in place updates, then I could just drop git from the binaries again and pretty much just have you extract over the old one. (This would reduce the windows binary download from 35MB to 25MB, IIRC)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
speculative Whether the change will be implemented is speculative
Projects
None yet
Development

No branches or pull requests

5 participants