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

Alternative to Windows Store for Windows - an msi installer for juliaup #343

Open
NicholasWMRitchie opened this issue Jul 29, 2022 · 40 comments
Labels
enhancement New feature or request
Milestone

Comments

@NicholasWMRitchie
Copy link

My work computer is forbidden by policy to access the Windows Store. Could there be an alternative source for JuliaUp for Windows as there is for Linux and Mac?

@davidanthoff davidanthoff added the enhancement New feature or request label Aug 7, 2022
@davidanthoff davidanthoff added this to the Backlog milestone Aug 7, 2022
@davidanthoff
Copy link
Collaborator

@NicholasWMRitchie Could you try a new install option that avoids the store? Here is how:

Be warned, the version that you are getting there is very much a dev version, and you probably will have to uninstall this and then re-install a more robust version down the road. Right now I'm just trying to figure out whether this option is one that could solve this scenario for us.

@NicholasWMRitchie
Copy link
Author

NicholasWMRitchie commented Aug 9, 2022

I did as you instructed. It installs a 64-bit instance of Julia 1.7.3 and the instance works as expected.
The juliaup command seems to work though I have not checked it extensively.

@lungben
Copy link

lungben commented Aug 12, 2022

Thanks, this is really helpful!

I suggest to add the link to the appinstaller to the Readme file of this repo so that it is easier to find for other users.

@davidanthoff
Copy link
Collaborator

I suggest to add the link to the appinstaller to the Readme file of this repo so that it is easier to find for other users.

For now it is an experiment, as soon as we decide that we want to have that option permantely I'll put a link in the README. Oh, and we need to change code signing from my personal cert to the JuliaComputing one as well before we really declare this done.

@NicholasWMRitchie
Copy link
Author

Is there a reason that the "juliaup self update" is not implemented on this version or is this just one of those things that you still need to complete?

I just reinstalled Julia.appinstaller to get the latest 1.8.0-rc4 version as it wasn't available on the initial test version.

@davidanthoff
Copy link
Collaborator

Is there a reason that the "juliaup self update" is not implemented on this version or is this just one of those things that you still need to complete?

Yep, that still needs to be implemented. I think in theory this appinstaller distributed version should auto-check for new versions, and then auto-update in the background, but there might be delays in that. Once I implement the juliaup self update thing that should force-trigger that.

I also plan to change how Juliaup in general learns about new Julia versions, at that point the delays should be minimal.

@bilderbuchi
Copy link

bilderbuchi commented Aug 19, 2022

I think in theory this appinstaller distributed version should auto-check for new versions, and then auto-update in the background, but there might be delays in that.

Is there some way to detect/confirm that? I installed the appinstaller 1.7.20 version a couple of days ago -- worked flawlessly on a machine without admin rights or a useful Windows Store 🥳 . However, even after a reboot juliaup is still at that version (and therefore does not see the julia 1.8.0 release).

@oheil
Copy link

oheil commented Oct 7, 2022

Just did an update on my work PC via Julia.appinstaller
For me this is the currently the most convenient way of getting/updating Julia on Windows. Typically I don't have any problems with other ways of installing Julia, but for the general Julia users my guess is, this is the best, even in this early stage.
As I don't have any issues which aren't already known or anything unexpected this is just meant as an encouraging note and a general WELL DONE! Thank you for your great work.

@DilumAluthge
Copy link
Member

@ViralBShah Can you give this approach a try?

@MatthijsBlom
Copy link

MatthijsBlom commented Oct 14, 2022

@davidanthoff I tried the Julia.appinstaller as well, and this is the result (immediate uppon clicking Install):

😢 Screenshot

image

I can not find more detailed information.

@davidanthoff
Copy link
Collaborator

What version of Windows are you on? I thought MS had resolved this now (in a previous version of App installer this always happened...).

@MatthijsBlom
Copy link

Windows 10 Home 21H2, build 19044.2130.

@oheil
Copy link

oheil commented Oct 14, 2022

Not sure if this leads to a solution but @MatthijsBlom can you open a PowerShell and show the output of
Get-ExecutionPolicy -List

@MatthijsBlom
Copy link

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

@oheil
Copy link

oheil commented Oct 14, 2022

OK, it's same for me but I can install. So it was a wrong track, never mind.

@ViralBShah ViralBShah changed the title Alternative to Windows Store for Windows Alternative to Windows Store for Windows - an msi installer for juliaup Nov 19, 2022
@el-oso
Copy link

el-oso commented Nov 22, 2022

I tried on my company computer and I got the following message:
App installation failed with error message: Appinstaller operation failed with error code 0x80070490. Detail: Element not found. (0x80070490)

@gruemelmonster
Copy link

First I got the same error as MatthijsBlom but then I updated the Store App from inside the Store and now it worked fine.
(We can only install a bunch of apps from the store and sadly Julia is not (yet) one of them)

@MatthijsBlom
Copy link

I can confirm that updating "App Installer" fixes my previous problem.

@el-oso
Copy link

el-oso commented Dec 27, 2022

Not sure if this app was update since, but it is still not working (see screenshot).
Capture

@el-oso
Copy link

el-oso commented Jan 10, 2023

Version 1.8.16 was successfully installed on my work computer.

@Petr-Hlavenka
Copy link

Does anybody have a recipe for how to install the juliaup on the Windows Server (2019 or 2022)? We are using the server editions on the SuperMicro stations (2 NUMA nodes, 100+ cores, 1.5TB RAM) but the .appinstaller file cannot be opened there.
I'd be glad to have juliaup (even only locally installed) on the system for the ease of use of the version multiplexing, even sacrificing the auto-update functionality.

@el-oso
Copy link

el-oso commented Feb 24, 2023

not really a show stopper, but a mild inconvenience. It seems that now I lost the ability to run julia in Windows from bash.
Now I get an error message like:
bash: /c/Users/USERNAME/AppData/Local/Microsoft/WindowsApp/julia: Permission denied

Not really a show stopper, but extended the usability of shell> mode from Windows. Otherwise, shell mode is sort of useless in Windows. If someone knows how to fix this problem, I would be very grateful :-)

@DilumAluthge
Copy link
Member

not really a show stopper, but a mild inconvenience. It seems that now I lost the ability to run julia in Windows from bash.

This seems like a pretty big bug to me. I frequently use Bash on Windows, and I would definitely want to be able to run Julia in Bash.

@davidanthoff @staticfloat Any ideas what might be going on?

@staticfloat
Copy link
Sponsor Member

Sounds like the file doesn't have executable permissions. Try chmod +x ./julia from bash?

@LilithHafner
Copy link
Member

Oh, and we need to change code signing from my personal cert to the JuliaComputing one as well before we really declare this done.

OT: Is there a JuliaLang cert we could use instead?

@DilumAluthge
Copy link
Member

Sounds like the file doesn't have executable permissions. Try chmod +x ./julia from bash?

Even if this works, shouldn't Juliaup automatically set the correct permissions?

@el-oso
Copy link

el-oso commented Feb 24, 2023

Forgot to mentioned that I already tried to do chmod +x was the first thing that I tried. First of all, reports Permission denied as well. I already looked into it, but since I don't really know how this works I left the question a bit open.

From what I can see juliaup also installs a "fake" julia executable that is the one that does the multi-plexing. The specifics on how this is achieved in Windows are beyond me. The files that are installed in the "WindowsApp" folder are not real files, instead they are just some sort of links. This linking mechanism is not available from my bash and that's why the Permission denied message is raised.

Edit: Found that they are called Execution Aliases.
https://stackoverflow.com/questions/58296925/what-is-zero-byte-executable-files-in-windows

@el-oso
Copy link

el-oso commented Feb 24, 2023

Found a workaround that is not too bad. Type winpty julia or winpty juliaup and that works fine. Those can be made as an alias in your .bashrc

@ebenitez78
Copy link

I do not have access to Windows Store (employer police) thus I wanted to try this way. But I do not have AppInstaller either, and as far as I know, I can install it only from the Windows Store. Is there a third way to install juliaup?

@davidanthoff
Copy link
Collaborator

@dvetsch75
Copy link

I do not have access to Windows Store (employer police) thus I wanted to try this way. But I do not have AppInstaller either, and as far as I know, I can install it only from the Windows Store. Is there a third way to install juliaup?

I am in the same situation.

@davidanthoff
Copy link
Collaborator

Just FYI, I'm working on a traditional MSI installer as another alternative.

@davidanthoff
Copy link
Collaborator

I have a new MSI installer option for situations where the Windows Store and App Installer don't work on Windows. Would be great if some folks could try this! Be warned, this is experimental/prerelease at the moment, though.

64 bit version: https://julialang-s3.julialang.org/juliaup/winmsi/Julia-v1.11.18-x64.msi
32 bit version: https://julialang-s3.julialang.org/juliaup/winmsi/Julia-v1.11.18-x86.msi

By default this will install per-user, so not require admin permissions. You can also install systemwide by running:

msiexec /i Julia-v1.11.18-x64.msi ALLUSERS=1

The main drawback of this is that there is no auto-update for Juliaup itself. To update Juliaup, one will have to download a new version of the MSI installer and then run that. I might be able to later automate this a little bit more, but I don't think we'll ever be able to get the complete silent auto-update feature we have everywhere else. But hey, this is meant as a last-resort option for folks on locked down servers etc, so hopefully this is ok.

Oh, and what this is installer does is: 1) drop the binaries onto the user system, 2) add a start menu shortcut and 3) add things to the PATH.

In any case, test reports would be great!

@dvetsch75
Copy link

I have a new MSI installer option for situations where the Windows Store and App Installer don't work on Windows. Would be great if some folks could try this! Be warned, this is experimental/prerelease at the moment, though.

This has been working for me with no issues for a few weeks.

@GunnarFarneback
Copy link
Contributor

Tangentially this installer avoids a crash when using julia itself to call out to juliaup on Windows, see JuliaLang/julia#51461.

@gitboy16
Copy link

Hi, I was just wondering is there a portable version of juliaup?

@LilithHafner
Copy link
Member

A cross-platform fat binary that runs curl -fsSL https://install.julialang.org | sh (or a Windows equivalent) seems like a reasonable file to distribute.

@davidanthoff
Copy link
Collaborator

I was just wondering is there a portable version of juliaup?

Turns out I'm compiling one already as part of the build, just not putting it anywhere :) I actually have a need for this myself, so I'll probably start to attach those to the GitHub releases. That won't have any auto-update mechanism, though (of itself, it will of course update Julia versions).

@davidanthoff
Copy link
Collaborator

https://github.com/JuliaLang/juliaup/releases/tag/v1.12.5 now has portable binaries. I haven't tried them, though :)

@jkhamphousone
Copy link

jkhamphousone commented Jul 10, 2024

As requested in the README.md, I am reporting success of the installer. It flawlessly worked for me.

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd4843 (2024-06-04 10:41 UTC)
Build Info: Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 12 × AMD Ryzen 5 PRO 5675U with Radeon Graphics
WORD_SIZE: 64 
LIBM: libopenlibm 
LLVM: libLLVM-15.0.7 (ORCJIT, znver3) 
Threads: 1 default, 0 interactive, 1 GC (on 12 virtual cores)```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.