35

I'm sure it's not about laziness or anything like that but I fail to understand why developers of even mainly consumer facing apps don't make any sort of installation wizard where you go next-next-finish. The same apps usually have installers for Windows and Mac OS so why not Linux?

Is there any technical reason for this trend or is it just convention?

EDIT (23-09-2014): This question was not asked to start a Windows vs Linux flame war. I have used all 3 major operating systems and apart from Linux, the other two (Windows and Mac OS) both have installers. I have not installed Oracle yet but whatever I have needed to install, I never saw any GUI installer for Linux.

Yes, I know that Linux has package managers so the developers don't "need" to make the installers. But there is still a huge amount of software that is either outdated in the default package managers, or simply not available. Plus, since Linux is sold as an alternative to Windows for casual users (Ubuntu is trying hard in this domain), it would make much more sense to just give the users what they are familiar with.

Take for example, setting up a LAMP stack. Those are all open-source software in the default repositories, but can you set-up everything in one go without a script? Now look at the WAMP server in Windows. You just run an installer and it installs multiple software in such a way that they work well with each other. Then it sets up good defaults and stuff. Installers can do that, package managers don't. Yes, you can find a script for that online, but where? And which one?

Installers aren't some obsolete technology from the past. They are still useful, and 95% users are already comfortable with them.

Arsalan Ahmad
  • 491
  • 1
  • 4
  • 6
  • Do you mean when compiling from source? – edmz Sep 21 '14 at 08:40
  • 1
    No, there are so many ways to install software on linux. Sometimes, you download something, move it to an executable path. Sometimes, you download an archive then run some bash files that set up the program etc. There are many other ways users have to follow to install their favourite programs on linux. My question is, why not a next-next-go GUI installer? – Arsalan Ahmad Sep 21 '14 at 08:49
  • That's for lazy people. There are some GUI installers, but they're (imho) useless. – edmz Sep 21 '14 at 09:19
  • 2
    looking at the answers, can we agree that this lack of installers is really based off convention? Or maybe let's say a take at what the perceived userbase might find more appropriate. – Arsalan Ahmad Sep 21 '14 at 09:42
  • 12
    There is **no** lack. Windows is ___not___ Linux. Linux is ___not___ Windows. – edmz Sep 21 '14 at 10:22
  • 1
    @Arsalan00: when you write "there are so many ways to install software on linux" you are talking about programs *not* included in a package management system, right? You should add this to your question to make it more clearer. – Doc Brown Sep 21 '14 at 12:20
  • 27
    @Arsalan00 You're missing an important point. There is usually a GUI for package managers (Ubuntu Software Center, Synaptic, YaST, etc.). – alexia Sep 21 '14 at 15:41
  • 30
    I could never understand a point of such wizards, 99.99% of users will blindly click "Continue" anyway, so a silent, non-interactive installation makes much more sense. – SK-logic Sep 21 '14 at 16:48
  • 4
    I think everything depends on what you are used to. I am used to Linux. When I am on Windows, I wonder why installing programs is so user-unfriendly. – emory Sep 21 '14 at 17:34
  • 3
    To me, the question would make more sense when turned around... – Volker Siegel Sep 21 '14 at 17:34
  • 2
    Related **inverse**: [**Why don't developers use automatic installation on Windows?**](http://programmers.stackexchange.com/questions/256864/why-dont-developers-use-automatic-installation-on-windows?lq=1) – Volker Siegel Sep 21 '14 at 17:57
  • 1
    @VolkerSiegel I'm cross-posting this comment because maybe the original asker might want to chime in: "asked the wrong way around" is really an opinion. I don't think that it's fair to fragment the answers to that question with this inverse because you don't like how it was asked (and a bit pedantic _imo_). Any answer that ends up here will simply be the inverse of a valid answer to the other. I feel the appropriate response if you feel the question is backwards is to add your own _answer_ that explains why you feel that way, and then answer the question from that viewpoint. – Selali Adobor Sep 21 '14 at 18:15
  • Some of them do. For example, installing Oracle on Linux is easy once you manage to make GUI installer working. – Free Consulting Sep 21 '14 at 21:52
  • 7
    @DebugErr You're offended by a simple joke. No offense was intended. – Michael Hampton Sep 21 '14 at 22:38
  • 1
    When the application is not packaged, the wizard is called `./configure; make; make install`. – Sparhawk Sep 22 '14 at 01:10
  • 2
    @MichaelHampton ty. I met some self-proclaimed Linux 'professionals' however who really thought they are the sh..and anyone using other stuff is dumb, as if it was a religion – Ray Sep 22 '14 at 06:34
  • 6
    It's one of the many signs that Linux in any of it's current flavors is only meant for servers and other specialized environments, not for consumer usage. Normal people are completely overburdened even by apt-get or unfamiliar "software centers". You should give those people an .exe to click on, not a .tar.gz or page long guides on how to get basic software to work. I am sorry for upsetting anyone with my opinion. – ASA Sep 22 '14 at 13:32
  • 2
    @Traubenfuchs: Any distro that uses RPMs essentially does just that. You want to install VLC or Nvidia drivers on OpenSuse? You double click the .rpm and watch a nice friendly wizard add it's repositories to your package manager and then get the program for you. – Magus Sep 22 '14 at 14:29
  • 2
    Please! I think most of these comments should be flagged. This question was asked SERIOUSLY and many times I asked the same. Even when I got tired of windows (most of the times I need python/git/nodejs/... many tools which are a pain in the *** on Windows), I never understood why linux installations (of single programs - I don't mean installing any kind of stack) require multiple steps per programs. Even having a click-click-finish interface is better since the installer is actually telling you what to do (doesn't matter whether it is a console (enter-enter-end) or gui installer). – Luis Masuelli Sep 22 '14 at 14:46
  • 1
    It's simple, Linux developers and users doesn't like waste their time, they want to focus on the real stuff which matter most to use their time in the most efficient way. – kenorb Sep 22 '14 at 15:11
  • 1
    Linux systems are intended to run as servers (theoretically for years without human interaction) and may omit all graphical environments from the standard install. So every installation process should be non-interactive or easily controlled by external scripts or configuration management utilities (e.g. CPanel, [Puppet](https://en.wikipedia.org/wiki/Puppet_(software)), etc.) – kenorb Sep 22 '14 at 15:12
  • This is partly true, that developers doesn't make installation wizards. Usually there are installation wizards for larger or commercial products (such as Java, Open Office, Adobe products, Chrome), especially with these more complex apps which for your convenience it provides start-up settings, components to select or simply by law to accept the license. – kenorb Sep 22 '14 at 15:12
  • 1
    The question is: Why installing software for few minutes by interactive step-by-step process, if you can install it via [Advanced Packaging Tool](https://en.wikipedia.org/wiki/Advanced_Packaging_Tool) literally by few second? – kenorb Sep 22 '14 at 15:16
  • I might be biased here, but what is it with this SE site and closing useful questions with reasons that make no sense.How could it be any more clear what was asked here? And for some reason, this same question, inverted in a way that opens more opportunities for off-topic discussion, is clearer – Selali Adobor Sep 22 '14 at 17:48
  • Comments are not for extended discussion; this conversation has been [moved to chat](http://chat.stackexchange.com/rooms/17351/discussion-on-question-by-arsalan00-why-dont-developers-make-installation-wizar). –  Sep 22 '14 at 17:54
  • If you wish to further discuss the validity of this question, please either move to chat or better yet, [meta]. –  Sep 22 '14 at 17:55
  • The problem here is that the poster has clearly never used a modern linux desktop system such as UBUNTU, MINT SUSE etc. If he had ever used such a system he would know that there are simple easy to use GUI based package management systems that are much much easier to use than the windows installer mess. Down voting as the poster clearly does not want to here the answers but merely wants his prejudices confirmed. – James Anderson Sep 23 '14 at 02:13
  • 3
    @James Anderson - not all are user friendly and not everyone has a free choice. Say you have to run Scientific Linux. If you want to use the new features of some recently updated software you can guarantee the package manager only has a copy 3 versions out of date. Even compiling from source you'll still need to manually update a dozen dependencies, which will most likely break other software you may have installed. 1 outdated package == wasted day. Windows installers may be bloated masses of congealed fat, DirectX redistributables and copies of Bink video, but they are vastly more convenient. – DeveloperInDevelopment Sep 23 '14 at 04:35
  • 2
    @JamesAnderson I'm sorry you took the question that day. I have used modern linux distributions (mostly ubuntu), and I know about the Ubuntu Software centre. But, for me it's pretty common that the software I want isn't in the software centre. Take Java for example, or any popular closed-source program. If I am fortunate, I will find an RPM, but many times, they just give a whole bunch of files in a tar.gz and expect me to run a shell script to launch that program (intelliJ IDE for example). Then there are make files and multi-step apt-get commands. – Arsalan Ahmad Sep 23 '14 at 13:27
  • @Arslan00 -- the closed source providers generally speaking are shooting themselves in the foot. They have licensing terms which make it difficult for the Linux distribution builders to create packages legally. Yet they do not provide packaging themselves. Why bother with intelliJ when Eclipse comes as standard. – James Anderson Sep 24 '14 at 02:14
  • "Take for example, setting up a LAMP stack. Those are all open-source software in the default repositories, but can you set-up everything in one go without a script?" - On Ubuntu specifically (I don't know if it's in other distros' repositories), yes: `sudo apt-get install lamp-server^` (the caret is important) (I also don't know if it shows up in the GUI software center) – Izkata Sep 25 '14 at 17:11
  • 1
    There are lots of Linux wizards. You easily recognise them from the bushy beard. – Kheldar Mar 11 '15 at 09:42
  • Steam and Opera allows for downloading DEB-packages for Debian/Ubuntu systems. – Thorbjørn Ravn Andersen Dec 30 '17 at 05:30

8 Answers8

63

Developers just need to provide a package for a distribution. Each distribution then has a way to install this package. This way can be in a terminal (apt-get) or via a graphical interface, e.g. Ubuntu Software Center.

The beauty is that developers just have to care about building a proper package; the distribution makers take care of the rest, and each package installation has the same process.

Florian Margaine
  • 6,791
  • 3
  • 33
  • 46
  • 15
    +1 ..."each package installation has the same process." – Uwe Plonus Sep 21 '14 at 10:03
  • 7
    Well, the developers just have to care about building a proper package for every single distribution they want to support, so they will need one or more different RPMs, debs, build scripts for ports, etc. Package managers are great, but trying to support all the systems as a developer is hard. That's why most of the people maintaining packages for distros are not actually the upstream developers. – Alan Shutko Sep 21 '14 at 14:59
  • 1
    Well that's another matter entirely :-) but yes, this is a problem. It has been tackled with projects such as fpm though. – Florian Margaine Sep 21 '14 at 15:36
  • 13
    A serious downside of this approach is the packages being (in some cases seriously) out of date. On Windows I can install the latest version wherever I can; on Linux I have to use (install, and understand!) a version control client to obtain the source, and different compilers or Make/CMake/etc. to build it. – marczellm Sep 21 '14 at 20:11
  • 4
    Many projects *do* provide the latest stable version without the need of source control (unless you want the latest *development* version...). You will still need to compile them however, because it's impossible to create a binary that just works out-of-the-box for every *nix-like OS (unlike Windows, which is a very stable and homogenous platform). Fortunately, compilers are very easy to set up and install on Linux compared to on Windows. – Rufflewind Sep 21 '14 at 20:19
  • 2
    This doesn't really answer the question since it doesn't explain the reason. You did nothing but reiterate a fact. – API-Beast Sep 21 '14 at 21:55
  • 3
    @API-Beast it completely answers the question. Developers don't *have to* make wizards, this cumbersome task is handled by the distributions. – Florian Margaine Sep 22 '14 at 07:31
  • 1
    @marczellm The need to build from source is indeed a problem under Linux, but is not caused by the lack of "wizard-like installers". Using packages does not automatically require the use of the distro-provided package download infrastructure; so companies can also provide their own packages for download, alongside the setup.exe programs they provide for Windows. See for example the Opera download page at http://www.opera.com/download/guide/?os=linux . The build-from-source problem itself is explained by Rufflewind very well. – oliver Sep 22 '14 at 08:55
  • 1
    "Fortunately, compilers are very easy to set up and install on Linux compared to on Windows" I'd say that's an opinion, and irrelevant when you consider the fact you can't expect the majority of people who use clicks-and-done installers on your other platforms to start setting up compilers (or even going into a terminal) to get your program working. After all, Linux also gets pushed as being excellent for casual users [by Linux users at least]) – Selali Adobor Sep 22 '14 at 11:42
  • @DanFromGermany because linux didn't exist in 1990? ;-) On a more serious note, the first distributions (e.g. slackware) came with a package manager. – Florian Margaine Sep 22 '14 at 14:31
  • @FlorianMargaine If you have ever developed for Linux you know that is utter nonsense. First of all, the distribution repositories have maintainers, if your application is closed source you won't ever get included in those and even if it is open source it might take a few years of extensive usage before it get's included in any major distribution. OSS isn't some kind of fairy land. Don't even get me started on incompatibilities and maintenance. – API-Beast Sep 22 '14 at 16:29
  • 1
    @marczellm Your comment is a non-sequitur. There's no reason to think that the Windows Installer is anymore up-to-date than the repo packages. – Wesley Wiser Sep 22 '14 at 17:46
  • 2
    @WesleyWiser Repositories are managed by third parties, as a developer you can't just submit a new version. A Windows installer is created by the author of the application itself, thus is always up to date. – API-Beast Sep 22 '14 at 18:50
  • 1
    @API-Beast It's only as up-to-date as they bother to package it. I don't know of too many projects that make installers for each commit. – Wesley Wiser Sep 22 '14 at 18:56
  • @WesleyWiser Packages are usually for stable versions, not for development versions. – API-Beast Sep 22 '14 at 22:30
  • Although the Windows packaging support is inferior, the user experience is superior. Often with Linux I feel the package is missing a crucial feature. After googling a while I release apt has an old version. Figure out how to add the repo that is up to date. Google the command to update just a single package because I can never remember it). Pretty much impossible for casual users who dont know the CLI. I hope packaging can be unified across distros, and made much more simpler (I have never uninstalled any package successfully, I have to format the whole pc). I love Linux. – run_the_race Mar 30 '20 at 10:38
42

Because they don't need to. Linux distributions usually have working package management systems, unlike Windows, where every single application has to re-implement installation and updating over and over and over and over again.

Jörg W Mittag
  • 101,921
  • 24
  • 218
  • 318
  • 7
    Yet, most non-techy people I know would prefer to download an installer and run the wizard rather than open up a terminal and type a command. This package manager thing is great for us geeks but it really bothers a common PC user who started using PCs after Windows 98 era. – Arsalan Ahmad Sep 21 '14 at 15:32
  • 44
    @Arsalan00 Think about Linux model as AppStore - it's the same model really. You could ask why there are no wizards for Android or iOS. – Maciej Piechotka Sep 21 '14 at 15:35
  • 2
    Jörg's point still stands. Users are just conditioned to tolerate a deficiency in Windows. Linux package managers are a technically superior solution. Still, nothing prevents an independent developer from posting some RPMs on a web page. Users should be able to download and double-click to open it. – 200_success Sep 21 '14 at 15:41
  • 5
    Android and iOS are far far more restrictive in the way they operate and in the way that they let the apps operate. Linux is the polar opposite of that. Mobile OSs enforce conventions, Windows seems to recommend conventions (program files folder, registry, etc. ) while Linux is more configuration than convention. – Arsalan Ahmad Sep 21 '14 at 15:41
  • @Arsalan00: Setting aside that [this](http://blogs.gnome.org/aday/2014/07/10/sandboxed-applications-for-gnome/) [changes](http://en.wikipedia.org/wiki/Windows_Store), I wasn't talking about what applications can do and about sandboxing - just installation model. And installation model on Linux is almost the same as in Windows Store/AppStore/Play Store. – Maciej Piechotka Sep 21 '14 at 15:57
  • 2
    @Arsalan00: I haven't needed to type single shell command to install a program in Linux in a decade. `dselect` has existed for ages, so have `aptitude` and Synaptic. The Ubuntu Software Center is slightly newer but also several years old. – Jörg W Mittag Sep 21 '14 at 19:43
  • 9
    Uh... if Windows doesn't have a "working package management system", then what is [Windows Installer](http://msdn.microsoft.com/en-us/library/cc185688(v=vs.85).aspx)? I've never heard of developers having to re-implement this, at least not in the last 10-15 years. – Aaronaught Sep 21 '14 at 23:42
  • 5
    @Aaronaught And I've lost count of the number of Windows programs which _don't_ use Windows Installer or something based on it, and are therefore needlessly difficult for IT to manage. – Michael Hampton Sep 21 '14 at 23:56
  • @MichaelHampton: Do tell. As I said, I can't recall seeing a single one in the last 10-15 years. Even some of the ridiculous candy-apple installers like Asus AI Suite still uses MSI under the hood (as evidenced by its appearance under Add/Remove Programs). What highly-essential IT or business software does not use Windows Installer at some level? – Aaronaught Sep 21 '14 at 23:59
  • 2
    @Aaronaught MATLAB comes to mind. Adobe CS before CS5. There are certainly others I've long since forgotten since I moved to the Linux side. And, _anything_ can create an entry in Add/Remove Programs; it's just a couple of registry entries. It's not limited to Windows Installer. – Michael Hampton Sep 22 '14 at 00:05
  • As Aaronaught said, Windows has had a common package installer with silent installation support for 15 years. The ones that don't use MSI, and that depend heavily on wizards, are usually fishy, trying to install a lot of junk along with the application itself (including the lovely Java and Adobe Acrobat Reader installers). From something people were used to we came to something where you really want to pay attention to what's shown to you. It really isn't Windows or MS to blame - it's the application salesmen. – Luaan Sep 22 '14 at 08:04
  • Proprietary software definitely lives outside of this, and they *do* come with wizards. I also install TeXLive manually since the distribution packages tend to lag behind uncomfortably. – Raphael Sep 22 '14 at 11:42
  • @Arsalan00 - *nix is full of conventions, which maybe are configurable, but changing them would likely cause problems. Such as use of /usr/bin /usr/local/bin – mcfedr Sep 22 '14 at 14:43
  • 2
    @Aaronaught: as far as I know, Windows Installer *still* doesn't do dependency resolution properly (e.g. automatically downloading and installing IIS when installing DotNetNuke) and it *still* doesn't do automatic updating properly. Those are the absolute *minimum* features I would expect from a working package management system in 1994. In 2014, I would expect a whole lot more. – Jörg W Mittag Sep 22 '14 at 18:06
  • 1
    @JörgWMittag: You're just taking the piss now. There were *no* package management systems in 1994 that did this across the board. There may have been some highly unreliable ones in 2004. It's not Microsoft's or Windows' fault that software publishers mess this up; IIS has been [completely scriptable since Windows Vista](http://www.iis.net/learn/install/installing-iis-7/installing-iis-from-the-command-line) (ironically, using the aptly-named [Package Manager](http://technet.microsoft.com/en-us/library/cc749465(v=ws.10).aspx)). And for application package management, NuGet is pretty mature. – Aaronaught Sep 23 '14 at 03:58
  • 2
    @JörgWMittag: Windows has even had [chocolatey](https://chocolatey.org/) for a while now, for people who really want that style of package management. It's not very popular, and that's for a reason. – Aaronaught Sep 23 '14 at 04:01
23

Most closed-source, non free-as-in-beer software for Linux does come with installation wizards. So does some closed-source, free-as-in-beer software, at least until most major distributions pick it up. For open source software, package managers are a clearly superior solution.

So what about the early stages before open source software gets picked up by the major distributions? Why don't developers create installation wizards during that phase?

First of all, a lot of open source developers plain don't care about distribution. They write software for themselves to use, and put it out there in case it is useful to others, but they see packaging for distribution as someone else's problem. If it's liked enough, someone will take upon themselves the task of getting it into their favorite distribution.

The open source developers who do care about distribution are still better off working within the package manager system, because that's where their customers are. Linux users don't typically search the web looking for software. They search their package manager first. Failing that, they search the "community maintained" repositories, like Ubuntu's PPAs or Arch's AUR. If you aren't in those places, your software most likely won't get noticed, and if it gets noticed, it's less likely to be trusted.

Foregoing those existing distribution channels is sort of like deciding superbowl ads are too expensive, so you're going to host your own football championship and advertise on there instead. It may be less costly, but it's also less effective.

As far as customizing the configuration goes, for software like a web server that's traditionally easier to handle with a config file, which makes the configuration easier to share, back up, and restore.

For client software like a web browser, it's much better to create a configuration wizard that appears the first time a new user runs the software, rather than do it at installation time. The main reason is Linux is a multi-user operating system, so you want to customize it per user anyway. This also makes it easier to rerun the configuration wizard later, for whatever reason, without having to keep the installation program around to reinstall the entire software. This type of wizard is fairly common in Linux software.

Karl Bielefeldt
  • 146,727
  • 38
  • 279
  • 479
14

Linux distributions (as well, I think, as BSD-flavoured Unices) have a user-friendly interface to program installation, via so-called package managers (or ports management in the BSD case): pacman for Arch, dpkg for Debian/Ubuntu, and so on.

These package manager provide a way to install programs by means of uniform configuration files. Once the program you need is packaged according to your distro's package manager you can simply run its install command over the selected package (with occasional user-specific customizations, though often none at all) and the manager does the rest.

Package managers are usually more user-friendly than Windows' program-specific installer processes, just for the uniform way programs are packaged for installation. They usually also allow you to query the package manager database for the program you're looking for, see its dependencies.
They also support centralized update of the packages.

Nadir Sampaoli
  • 420
  • 3
  • 10
  • 3
    user-friendly is a subjective term. IMO, most computer users are very reluctant to use command-line tools and would find it easier and more comfortable if they could just use a wizard. Even if it takes more time. – Arsalan Ahmad Sep 21 '14 at 15:30
  • 1
    `dpkg` and APT are used in both Debian and Ubuntu. `apt-get`, `apt-cache` and `aptitude` are wrappers on top of `dpkg`. `dpkg` is rarely used directly, one use case I can think of is installing a package from a `.deb` file. – alexia Sep 21 '14 at 15:42
  • 16
    @Arsalan00 there usually is a graphical user interface for package managers, like Ubuntu Software Center or yumex. Package manager != terminal. – Florian Margaine Sep 21 '14 at 15:44
  • @Arsalan00 if you use Ubuntu, just go to http://www.opera.com/download/guide/?os=linux, download Opera for Ubuntu, and double-click the downloaded file. There is no terminal involved at all. – oliver Sep 22 '14 at 09:06
13

I've often asked myself, and others this question, and I'd like to address a point I often see brought up before I get to why Linux sees fewer installers:

Linux distributions provide package managers.

However, I wouldn't say that a Linux distribution's package manager is a replacement for an installer for, in part, the following reasons:

  • These package managers aren't standardized in operation

    A package manager is a bit like providing your binary and letting the end-user choose the installer. They can choose the terminal, or they can choose a tool with a more advanced GUI, but it doesn't afford you the same level control of the process as with a "traditional" installation wizard.

    An example of what I mean by control is documentation. You can't give your end-user instructions like "Click Next, and you should see ". You can give command-line instructions for a specific tool, but then you're not only relying on the fact the user has that tool, but also losing most of the benefits of an install wizard (after all, most wizards are providing a front-end for simple command line instructions and kicking off scripts).

    This also ties into aesthetics. Now you're depending on your end-users distribution to provide an intuitive/appropriate interface. While you are fully aware of that fact, it's not unreasonable for a more casual user to complain if double clicking your file (installer in their view) opens up an ugly package manager, does nothing at all, or worst of all opens up a terminal window. (The experiences I've had with users and their aversion of the "dos prompt" / "black and white box" / "Thing that's going to delete all their files if they look at it funny" could probably fill a book)

  • Package formats aren't standardized across platforms.

    There are tools to convert between systems like rpm and deb, but it's not reasonable to expect your end-user to convert your packages if you're using them in a situation where an installation wizard would be provided on another platform (i.e. clicks-and-done). Providing up-to-date packages for an additional package format can be rather straight forward if you have a rudimentary build system, but you're still adding a new binary that needs to be supported.

    That's also adding a new binary people have to choose from depending on their platform (it sounds minor, but I'm sure someone here can attest to having to explain x86 vs x64 before [yes, there are ways to deduce the right platform from the browser, but then you're getting into even more complicated, and harder to support, procedures])

  • Package managers are "nicer" to open-source software.

    This isn't saying that you can't share closed-source software with a package management system, it can definitely be done. But once you try to share close-source software on Linux distributions you run into a wall as far as your options for getting your software into common repositories is concerned. Things like PPAs or the openSUSE Build Service are out, and even the Canonical Partners repositories aren't enabled by default.

    That means, unless you provide your own repository, you can't many of the major features of package management systems, including automatic updates. In my opinion, this is the most important benefit across most platforms that use these systems (e.g. iOS, Android, and Windows Store).

    And even if you provide a repository (another job of variable triviality), you still need to get users to set it up (which is another layer of support, another set of non-standard approaches, and another diversion from the original point of the installer)

Now, having said all that, I still haven't addressed the original problem, why installers are less common on Linux in spite of these factors (amongst others). The original question asks if it's technical, or based on convention, and it's based on both in part.

If you look at the above factors I've mentioned, they also make things more complex for a "wizard-like" installer. For example, would your wizard include multiple package formats to install? How do you handle look-and-feel across distributions? The list goes on, and one thing that that packages do afford you is that none of this will be your concern (for better or for worse) as long you provide the right packages. And depending on the nature of your project, you can start to take advantage of those more "specialized" resources, like submissions of apps to the Ubuntu Software Center. This would all relate to the technical.

But the aspect that I personally find to be the driving force is convention. (I hope I've buried this deep enough that the people who downvoted that other answer to oblivion have stopped reading..)

I feel that poster had a point, but might have stated it too bluntly, and not actually provided objective reasons for that point. If you examine the differences I stated for a package manager and an installer, I wouldn't be surprised if you found most of them to be nearly non-issues (maybe even bordering on pedantic). But (excuse what I hope is viewed as legitimate use of an ad hominem argument) we're also users on site for programmers. I see Linux distributions pushed as an excellent Windows alternative for casual users (amongst many other things obviously). Not providing a commonly defined clicks-and-done procedure that all of these users can use really isn't ideal imo.

But at the same time, I don't find that many things in Linux to be especially ideal for that group either. Sure some distros have GUI-based package managers, but that means these people have to start looking into how to use a separate tool, on that isn't strictly focused on your program's installation (compare this and this to this).

Naturally you can use the GUI to do a majority your average casual user needs to do, especially with certain distros (ironically the things those distros are doing aren't always embraced in the open source community [look at complaints about Ubuntu and it's "walled garden"]) But I don't think it's deniable that Linux conventions favor someone who's comfortable with a CLI, or at the very least not deathly afraid it's appearance means they did something horribly wrong.

I'm not saying that this is what they aim for, but it's really what I see those conventions do. And package management systems in Linux seem to be following that. After all, most of their "downsides" nearly non-existent if your end-user is more comfortable with the underlying concepts.

Installers on most other platforms aren't really affected by that, and are designed so, to quote a comment on the question, "99.99% of users [can] blindly click "Continue". The problem with package management is getting those users to a "Continue" button, letting them know what that "Continue" button is (I've seen users get tripped up by tools that said press enter with other text), and letting them know when they've hit that "coast on clicking the "Continue" button" stage.

Selali Adobor
  • 639
  • 4
  • 14
  • This is a great answer, and it explains the problem from the casual user's point of view. – Arsalan Ahmad Sep 22 '14 at 04:59
  • 1
    "Package formats aren't standardized across platforms." – All LSB-compliant distros (which is most of the major ones) support the LSB package format, which is a subset of RPM with all features removed that cannot easily be mapped to DEB. The command line tools, APIs and ABIs for LSB RPM are standardized as well. – Jörg W Mittag Sep 22 '14 at 18:17
  • @Jörg W Mittag I would hardly call LSB compliance standardized. On Debian, "LSB compliance" is using the Alien tool I mentioned in my post (and it's limited). And again, we're not comparing install scripts to packages. It's comparing installation wizards (that let even the most casual user install software without ever seeing the dreaded black box) to package managers. Requiring the use of a tool like Alien isn't providing the same process as providing an install wizard. – Selali Adobor Sep 22 '14 at 18:28
  • @AssortedTrailmix: the LSB package format is deliberately designed to be processable by Alien. And the end-user never needs to interact with Alien, the LSB package manager on Debian takes care of that. Also, building install wizards is explicitly cared for in the LSB. If the installer wizard links only against LSB libraries, then it can run on all LSB systems, and it can call the LSB package manager, because that is standardized, and it can install a package, because that is standardized, and in the end you will end up with a DEB in the DPKG database on Debian and an RPM on SuSE. – Jörg W Mittag Sep 22 '14 at 18:41
  • I understand that, but I guess I didn't understand your point. Aren't you just confirming what I said? My point was that an installation wizard and a package manager aren't the same. I wasn't suggesting that an installer can't use a package manager. It seems you're agreeing with the my view, but getting caught up on the rhetorical question "For example, would your wizard include multiple package formats to install?" – Selali Adobor Sep 22 '14 at 18:47
9

To large extends it's both. The Linux distribution model is closer to AppStore/Play Store then traditional Windows/Mac OS X one - and even those platform are moving there from what I've heard.

The convention is that it's simpler. Most arguments for the AppStore/Play Store applies to Linux as well:

  • Automatic updates. Having 20 programs update separately on Windows is disruptive and inefficient. User needs click though Java/Flash/Adobe/... updates on boot.
  • Single, trusted, repository. Do you check if you download via secure connection? Or you haven't download from an Reader update from get.adobe.com.hackers.example.com/setup.exe? Even if you do most users, especially not power users, don't. Instead you go to software centre or similar program in Linux and get a trusted copy.

Furthermore there are following benefits, which may not apply to AppStore/Play Store:

  • Not every Linux has GUI - think http server - yet most distros supports such configuration. Ok. Not everyone needs one but sooner or later someone will want to use it for whatever reason.
  • The ABIs of libraries on various distros may differ. Not going into details having an installer would put responsibility of the program working on you instead of people maintaining a package in repository.
  • Connected with previous one - you need to manage dependencies somehow. Bundling is considered improper for a reason - in such case you need to ensure that you have updated the library to version without a bug - for example you didn't include openssl 1.0.1f into your bundle. Practise shows that people do include outdated libraries with known security vulnerabilities.
Maciej Piechotka
  • 2,465
  • 2
  • 18
  • 19
  • 5
    +1 _"Having 20 programs update separately on Windows is disruptive and inefficient."_ – IQAndreas Sep 22 '14 at 06:20
  • I'd say calling dialogues disruptive or inefficient is a little much. If a program has a poorly designed update system that's badgering users as soon as they log-in and not providing an option of silent updates it's mostly that program's fault. That being said, I don't find many programs doing it (most of them are programs that don't have a traditional start-up procedure), and the end result is arguably more manageable than one prompt listing _every single thing_ that needs to be updated. – Selali Adobor Sep 22 '14 at 10:41
  • And "single, trusted, repository" is somewhat misleading. It's really only partially applicable if you're writing software that can end up there. Proprietary software doesn't easily end up in the _well supported_ default repositories for common Linux distributions. Even the repo for canonical partners on Ubuntu (which entering is a non-trivial), is disabled by default and considered to be insecure by many as security risks in software hosted there have been known to go unpatched much longer than the same software based on other update methods. – Selali Adobor Sep 22 '14 at 10:58
6

Usually, the installation doesn't need interaction with a user (most apt-get packages for example), or can be scripted. This makes it very easy to automate in order to deploy a piece of software on many machines. Instead of doing things through the wizard, you do those same things through scripting or through configuration files.

Given that in Linux world, terminal comes first, and the GUI is optional, it becomes obvious why do they lack actual installation wizards.

Windows, on the other hand, is very user-oriented. Most MSI files can easily be deployed in unattended way, in the same way Windows installation can be unattended (how easy/difficult is to get WAIK to work is a different subject). This also means that a bunch of applications for Windows are not based on MSI, and are not scriptable. Among enterprise-scale application, Adobe products, for example, are known for being rather difficult to install in a scripted way.

Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
  • 1
    That's an easy problem to solve. Many windows installers have a silent option and are pre-filled with good defaults so that the user doesn't have to do anything other than just press next buttons. – Arsalan Ahmad Sep 21 '14 at 08:52
  • 5
    I hate pressing next just because the developers failed to do it in a simpler way. – Silviu Burcea Sep 21 '14 at 09:23
  • @Arsalan00: the "user doesn't have to do anything *other than*..." breaks automation. If the user has to do *anything*, it cannot be automated. Ideally, you should be able to turn a machine on and let it boot through PXE, install an OS and then install and configure everything you need, with no user interaction whatsoever. With Linux, you can do that (except maybe a few applications, but I haven't encountered any so far). – Arseni Mourzenko Sep 21 '14 at 12:01
  • 1
    @MainMa your edit really hits the nail. If the developers want, they can make their installers scriptable or silent. But the wizard system really helps the novice user get introduced to what the setup is about, and wizards inform the user like package managers can't. Plus offline installs are something that is a major necessity for many people. – Arsalan Ahmad Sep 21 '14 at 15:35
  • 2
    @Arsalan00 usually package managers can ask questions if they really need to. Offline installs are possible with package managers, just download the package first, just as you do when you download and install file. And last, it's more userfriendly, most novice users should not care about "where do you want to install this" etc. it should "just work". – iveqy Sep 21 '14 at 15:44
  • In addition to what @iveqy said, most package managers also have a package cache. – alexia Sep 21 '14 at 15:46
  • @Arsalan00 but software installation ain't rocket science. Installer basically just copies a bunch of files into some location. In most cases there's absolutely no need to "get [users] introduced to what the setup is about". In OSX users just drag apps to Application folder. In Linux, in theory, users could just double click on rpm package. – el.pescado - нет войне Sep 22 '14 at 10:27
-1

The target audience is different. Unix, and Unix-like systems, were usually used by professional programmers, sysadmins, engineers and serious hobbyists who customized each system to their needs. Any "installation wizards" would only limit their choices instead of giving access to all the variables they need. And the ones now out there still do.

Windows is not targeted at professionals in the same way and, thus, has more general purpose installers geared toward "users" who only want the thing installed. Linux is garnering more of these user-types who would probably appreciate such a thing but, possibly, most distros still have the professional in mind.

Rob
  • 709
  • 7
  • 10
  • 4
    An installation wizard let you customize more than a package manager that is usually used on linux. – iveqy Sep 21 '14 at 13:35
  • @iveqy Any text config file will give you far more abilities than any installation "wizard" ever will. If such wizards could do better, they would exist, but they don't. – Rob Sep 21 '14 at 15:03
  • 4
    that's true, but editing text config files is not a part of the installation process of most package managers. Typical the questions on a windows installation process is "where do you want to put this", a package manager already decides this in the linux enviroment and "which components of this program do you want to install", and that has already been decided by the package maintainer in the case of package managers. You can see that a package manager is more userfriendly since it's used for android and iphone, (app store and google play). – iveqy Sep 21 '14 at 15:41
  • @iveqy I just realized we've gotten off topic. This has nothing to do with what I originally said and that you still don't see such wizards is further evidence of what I said. – Rob Sep 22 '14 at 02:38