Slicer oneline installer script

Hi all,

I have created this one-line installer script for Slicer and I’d like to receive feedback from the community.

It has been tested on Ubuntu 22 and Windows 10

Linux & macOS version:

curl -fsSL https://raw.githubusercontent.com/mauigna06/slicer-installer/main/install.sh | sh

Windows version:

irm https://raw.githubusercontent.com/mauigna06/slicer-installer/main/install.ps1 | iex

The ascii logo is beautiful

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

Could you please try again?

It worked well! I am on ubuntu 22.04

Some feedback:

  • 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?

Done

Corrected

Improved, let the user select (see picture below)

Thank you

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?

:robot: This post was written with AI assistance.

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.

Windows version of the command was failing if not executing from powershell, now that’s solved. New calling (from powershell or cmd):

powershell -c "irm https://raw.githubusercontent.com/mauigna06/slicer-installer/main/install.ps1 | iex"