For a Windows user emigrating to Linux Mint (or any other distribution of Linux, for that matter), an early learning curve is how to install apps.
Installing apps in Linux Mint depends upon understanding two things:
- the primary framework in which Linux Mint is distributed, updated and supported; and
- the secondary framework in which vendors distribute, update and support their software.
For all Linux distributions, understanding the theory of the above frameworks is slightly essential. Windows operates the same frameworks, but in a very different way, and the primary framework is functionally invisible to the user, especially in Windows 10.
Language: translating Windows into Linux
To understand how the Linuxverse manages software collectively, a Windows user needs to learn the framework of software delivery in Linux and its (typical) language.
Let’s teach the language by explaining the Windows framework in Linux language:
- Windows has several distributions: Windows XP, Windows 7, Windows 8, Windows 10.
- Each distribution has various editions, e.g Windows 8x32, Windows 8x64, Windows 8.1x32, Windows 8.1v64.
- Windows has only one distributor: Microsoft.
- The distributor publishes updates from its repository, Windows Update.
- Each distribution allows other vendors to develop software that can be installed on any distribution of Windows.
- Some vendors manufacture device drivers which the distributor will either absorb into its repository Windows Update, or otherwise link to trusted sources of device driver software.
- Device drivers are written by hardware manufacturers for particular distributions and editions of Windows. This means that, in principle, there are multiple versions of the same device driver for each combination of distribution, edition and hardware. Each version of the device driver software is a package.
- “Third party” vendors manufacture end-user software - also called packages - which shall never be part of the repository Windows Update, but which the vendor operates its own update framework for its software. As such, these vendors offer their own repositories, known as personal package archives (PPA).
- Referring to files, very, very crudely, *.deb is the Linux Mint equivalent of *.msi. But the function of a *.deb file in Linux is fundamentally different to that of *.msi in Windows, such that the comparison is basically misleading!
- Functionally, the registry in a Linux-based system is comparable to the Windows Registry, but the scope is very different. In Linux, the registry is a function of the operating system, not the apps that run in it. In Windows, everybody and anybody can write garbage to the registry.
Now let’s refine the terms above, to unbundle them from the assumptions that come with Windows.
- Linux-based systems have many distributions. Where they diverge is a fork. The development teams on each prong of the fork will be different people, with different ideas, different motivations and different attitudes. By contrast, Microsoft alone controls the code of Windows. There is no equivalent of Microsoft in the Linuxverse.
- When Linus Torvald released the Linux kernel in 1991 under GNU’s General Public Licence (wiki), the Linux kernel was doomed to be free, i.e. impossible for a monopolistic software house to lock down and actively to exclude competitors to create their own rival Linux distributions. Consequently, development of Linux was not commercially viable for any private investor, unless they wanted to play the really, really, really long game. Not a sensible strategy in the fast-moving technology sector.
- Linux Mint is thus a hybrid. It rests upon a distribution on Ubuntu Linux, but it bundles in such a wide range of other software - precisely to create a Windows-like environment, even allowing Windows software to run on Linux Mint - that it is functionally a distribution in its own right. (But don’t tell the purists that: their rage will be enough to create yet more forks, and we’ll end up with Linux Pepper, Linux Salt, Linux Pakrika etc ad nauseum).
- As a consequence of all of these various distributions floating around the world, any package said to be “for Linux” is actually mis-sold. It is imperative for the end-user to understand the family tree of their Linux-based machine, because it is the core distribution around the Linux kernel that matters. For Linux Mint, end-users need to seek Ubuntu Linux packages.
- Windows Update is “hard-coded” into every distribution of Windows. Windows will also update only Windows; third-party software needs to run its own update procedures. By contrast, Linux Mint “soft-codes” its repository’s addresses into Linux Mint (the user can change them!!), along with addresses for the underlying Ubuntu. The user can also add additional repositories depending on the user’s needs. When Linux Mint is instructed to do an update, it will update all repositories at once, notwithstanding the impact of each update.
Common to both Windows and Linux, the installation process copies files from whatever source into the appropriate folders on the installation machine. The installation process might also run scripts that (re-)configure other files on the machine so as to link the new software into the runtime processes of the machine.
Checking the software for its authenticity
A Unix user - including Linux users - ought be in the habit of checking software before they install it. Windows users never do this, because there is no reliable means by which Windows users could do this, even if they had the knowledge/wit to do so.
The idea behind a repository is for the distributor of that software to publish checksums in a trusted third location. A hash calculation on the packages inside the repository should agree to the checksum stored in the trusted third location. The user then knows that the software matches that intended for distribution by the distributor.
So all the user then needs to do then is to trust the vendor…! See also this discussion.
How to install and update software in Linux Mint
Finding the right functional software
Some software vendors - mainly the major vendors - tend to manufacture Linux equivalents of Windows software, e.g. Google Chrome, Mozilla Firefox and so on. It’s not universal: for example, Google manufactures no direct Linux equivalent of Google Drive.
Where there is no obvious Linux equivalent, then Googling (or Binging, or Yahoo!ing, etc) “alternatives to …” should bring up some results.
For Linux, think “open-source” and think “community”.
Finding the right source of the software
The first place to look for any software is Linux Mint’s own repository. Linux Mint has gone to great lengths to bridge the gap between the Linux kernel, the functional Ubuntu base and the full graphical user interface that non-technical users normally need to do anything.
Out-of-the-box, Linux Mint Xfce contains the following major apps accessible via the Mint menu (Windows: Start menu), all of which are graphical user interfaces:
- Text editor;
- GIMP image editor (like Windows Paint only more complicated);
- Thunar File Manager (functionally like Windows Explorer).
Linux Mint Xfce also contains nearly all the comparable utilities available in Windows, again all as graphical user interfaces. For Windows users of a certain age (think XP!), Linux Mint presents the utilities as separate apps. By contract, Windows 10 bundles the utilities within Windows itself.
- User profile (“About me”):
- Appearance, Desktop Settings, Desktop, Display (Windows: personalisation, or personalization in America);
- Archive Manager (Windows: no equivalent, the user needs to download something like 7-Zip)(there’s one for Debian and Ubuntu Linux distributions, too);
- A backup tool for user data (Windows: no equivalent, although in Windows 10, Microsoft is pushing its OneDrive);
- Bulk Rename (Windows: no equivalent, only a clumsy bulk rename service within Windows Explorer, or the user needs to use the MS-DOS command prompt, or write some sort of insanely complicated script in the powershell);
- Catfish file search (Windows: embedded into Windows Explorer);
- Character Map;
- CompizConfig Settings Manager, plus a number of other settings apps (Windows: all embedded into one Control Panel between Windows 95 and Windows 7, then embedded into dumbed-down, excessively blunt settings embedded into Windows 8 and Windows 10);
- Desktop sharing (Windows: Remote Help & Support);
- Dictionary (Windows: no equivalent, user needs MS Office);
- Disk Usage Analyer (Windows: Windows Explorer has some comparable features, but the Windows user would need to download Treesize);
- Document Viewer, Image Viewer (Windows: Preview);
- Driver Manager, Printers (Windows: Devices & Printers, part of Control Panel);
- Firewall Configuration (Windows: Windows Firewall, without the advanced bits);
- Input method, Keyboard, Languages (Windows: Locales and Regional Settings);
- Media Player, Rhythmbox, VLC Media Player (Windows: Windows Media Player);
- Mouse & Touchpad (Windows: part of Control Panel);
- Network, Network Connections (Windows: part of Control Panel);
- Panel (Windows: Task Bar settings/options);
- Passwords and Keys (Windows: no equivalent);
- Pix (Windows: Photos) (basically a viewer, not quite Picasa);
- Run (yes, they did indeed include Run, ideal to Windows Run…)(must have had a sense of humour that day);
- Settings Manager (Windows: Control Panel);
- Simple Scan (Windows: no immediate equivalent, the user needs to download the device driver and then the application software). On this test machine for Linux Mint, Simple Scan found the networked HP printer-scanner and it just worked with no additional input by the user!
- Software Manager, Synaptic Package Manager (Windows: Add & Remove Programs);
- System Reports (Windows: system logs);
- Task Manager (Windows: Task Manager);
- Time & Date (Windows: Locale & Regional Settings);
- Timeshift (Windows: system restore points, crudely anyway);
- Tomboy Notes (Windows: no equivalent, user needs to download alternative);
- Transmission (Windows: no equivalent, user needs to download alternative);
- Update Manager (Windows: Windows Update);
- USB Image Writer & Stick Formatter (Windows: Windows Explorer);
- Users & Groups (Windows: part of Control Panel).
Quite a list!
Graphically: Software Manager & Synaptic Package Manager
Linux Mint’s Software Manager presents itself rather like Google Play, or the iTunes Store, or the Windows Store. Synaptic Package Manager is much more technical, less colourful.
In both cases, they read the config files at /etc/apt/, get data from sources listed therein and present the results to the user.
Synaptic is the more powerful of the two, because it allows the user to define additional repositories and personal package archives.
Graphically: Update manager
Update Manager works in the same way as Windows Update. It checks repositories for updates and flags them to the user. Unlike Windows 10, it asks the user to prioritise which updates to take. Update Manager provides good explanations behind the “impact rating” for each update.
Graphically or command line: manual download and installation
It is possible to download a *.deb file from the internet, like a Windows *.msi or a Windows *.exe.
A Windows user won’t see the problem with this, so won’t see the risks involved either. Trustworthiness and safety always depends upon being transparent and playing the game by the rules. So if an app offers no repository for updates, then the user needs to question why. An app available only as a *.deb file is thus already suspicious.
But there are going to be cases where a *.deb file is unavoidable. A *.deb file typically unpacks itself, runs a script to copy the files and adjust configuration files in Linux to add a repository for future updates.
Command line interface
Linux Mint uses the APT command to manage the installation of apps, the best summary is the Linux Mint forum.
Software installed on Gandalf
Because my test project is to integrate Linux Mint to my data world so that I can migrate from Windows, I need Linux Mint to participate in a cross-platform library of user data.
I've already established that this migration cannot be as sudden as moving house, followed by years of decoration. This migration needs two workstations on different platforms to synchronise data.
For testing purposes, I've installed:
- Google Chrome;
Google Chrome was dead simple to install. After first installing the keys, Google offers its own download script, which installed the software and updated the repository files in Linux Mint.
KeepassXC and Grive were less straightforward, because the results did not match expectations. Those lessons will be separate blog posts.