Automatically installing new versions on Linux

On Linux, Logic 2.x detects when a new version is available, and downloads it into /tmp/LogicUpdates, and pops up a notification—but I still have to manually move it to the binary directory. Since the /tmp/ directory is volatile (ramdisk, deleted on reboots), I can’t keep it there; I chose to copy it to my private bin directory ~/bin.
Also, I want to call Logic as Logic, not as Logic-2.3.45-master.AppImage, so I create a symlink.
I use this script to find the correct file: it uses a complicated loop to get the latest version, because 2.3.4 sorts as later than 2.3.45.
All this could be simplified if I didn’t try to keep all intermediate versions, and just overwrote ~/bin/Logic with the latest content of /tmp/LogicUpdates----I wanted to keep versions earlier in the 2.x cycle because of bugs, but it’s pretty solid now.

Could a similar script be just folded into Logic so that I can update it from the notification window?

mv --no-clobber /tmp/LogicUpdates/*.AppImage .
unset -v latest
for file in *.AppImage ; do
[[ $file -nt $latest ]] && latest=$file
done
chmod +x $latest
ln -sf $latest Logic

@przemek.klosowski Thanks for bringing this up. Our update system could certainly be improved, especially on Linux. In case you didn’t want to keep earlier versions anymore, overwriting ~/bin/Logic with the latest content of /tmp/LogicUpdates would be what we recommend.

It’s happened rarely in the past, but we’ve caught update-breaking bugs quickly and have released an update within the same day. In addition, for large and potentially risky updates, we tend not to include it as part of our auto-updater for some time.

I’ll add this to our discussion list to see if we can include similar behavior, and perhaps include a one-click solution that could do all of this from the auto-updater window.

@przemek.klosowski,

We intentionally left out auto-update support for Linux because of the wide variety of ways our application is deployed on end user machines. A lot of customers like to leave our software in a read/execute only directory, which would prevent our application or its child processes from updating itself. I was curious if you’ve used any other applications that you think have a good auto-update experience on Linux.

At the moment, Chrome isn’t even able to auto-update on my Ubuntu 20 install, and I can’t figure out why :slight_smile:

It might be nice to provide a separate update script, that could be manually run (or automatically run at login) that checks for updates, downloads, and installs it if available.

We have some users who install our application in a read/execute directory, some who install it via a number of different package managers, folks who need to deploy the software as part of a stock machine image with very unusual permissions, etc. There is just a lot more surface area to deal with. Something else I’d really love to make work on Linux, but is also pretty challenging, is registering our application to open *.sal files on double-click. Also a headache…