I tried the linux one, but I stopped when it asked for sudo.
I think people are put off when an install script they run with curl asks for sudo. It’s already a lot of trust required to run it in the first place. I understand it’s to install runtime dependencies, but I also don’t necessarily want a script messing around with my system package manager on its own – that is for me to do. Maybe linux users would often feel the same.
Instead of automatically installing runtime dependencies, the script could just download and install Slicer to a local directory like you are doing, and then at the end it can print a command for the user to use to install runtime dependencies. Then sudo should not be needed and the experience would be smoother
Ok. Updated according to your feedback. Now it does not install dependencies by default so it does not ask for sudo, it just prints a comment to the user with the command he needs to execute for the dependencies install instead
the “Downloading 3D Slicer…” display during download could display the version also
the icon it chose is completely wrong! it chose the splash screen as the icon!
when I ran it a second time, it tried to start the download all over again. it would be extra nice if the script checked whether you already have slicer in the same install location and did something differently. But I am not sure what is the best design: should it abort? offer to clean-reinstall? offer to install multiple versions side by side each with their own version-specific launcher?
Nice! What does it do when a different version is already installed? Side by side? Do the launchers then have versions in their name to distinguish them?
Sorry, I had forgotten to push the last 2 commits for the feature I showed above
What does it do when a different version is already installed? Side by side? Do the launchers then have versions in their name to distinguish them?
On Linux:
The prompt about the 3 options only fires when that same version+arch directory already exists.
A different version has a different directory name, so no collision is detected.
On macOS:
Every version installs as Slicer.app at the same path so any different version does trigger the prompt
On Windows:
Every version has its own installer and they use a different directory and provide a different desktop shortcut
Do the launchers get versioned names?
On Linux: Last version overwrites the link to Slicer
On macOS: there’s no PATH launcher at all; open -a Slicer resolves by bundle id through LaunchServices, and the script even warns that with multiple copies it may launch an unexpected one
On Windows: the launcher name is always Slicer.exe (different version live on different directories)
Bottom line: versions coexist on disk (on Linux and Windows), but the launchers are single, unversioned names that always track the most recent install — there’s no Slicer-5.12 vs Slicer-5.10 launcher to pick between.