this post was submitted on 01 Jan 2024
159 points (81.4% liked)
Linux
48372 readers
1573 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The instructions on that page make it so that every time you run a system update, mullvad automatically updates as well. If you're happy doing the updating yourself, you can download the
deb
file from here: https://github.com/mullvad/mullvadvpn-app/releasesThat's even more confusing.
I just don't get why on windows and mac I can download the app from their site, install it and it just works but on Linux I have to do everything thru terminal. It's not that I can't get it done but it just seems insane to me that it has to be this difficult.
You don't have to do everything through terminal. You can use synaptic for example. What you have to do is to learn new concepts. If you want to do everything like in windows, use windows.
I'm giving Linux a chance because people here recommended that I do and now you're telling me to use Windows.
You should try Linux because you want to and find it interesting to learn. If you are doing it because other people told you to, you are going to have a bad time.
Linux isn't Windows with different branding. Things work differently, and if you take the time to understand why you'll usually see the logic eventually, even if you may not to agree with it. I think folks are bristling a bit at your implication that things are hard on purpose somehow. Many experienced users find the terminal easier to use and more efficient; it shouldn't shock anyone (including you) that it's going to feel awkward when you don't understand it yet.
Howtos tend to use the terminal because it's likely to work the same for everyone regardless of what other choices they've made with desktop environment, etc.
You can do nearly everything with a GUI if you choose.
I don't recommend using anything new to you unless you are ready to learn it. If you are, welcome aboard!
Learning about package management, and repositories, is part of the Linux experience. It's worthwhile to dive into the documentation and figure it out.
There is a learning curve, but the rewards are more software independence.
I think a better way for the other user to have stated this, is learning Linux, while difficult at times, should be a fun and rewarding experience. I’m about a year in, and this is all easy stuff to me. One year ago? I would have been as frustrated as you are. But I persevered, I learned, and I got a sense of accomplishment out of becoming competent. I don’t really need to ask too many questions now, because the more I figure things out, the easier it gets to figure things out.
If you’re not into that, Linux might not be for you. But I hope it is, I hope you persevere and keep learning and find the same satisfaction from it that I have.
Look at it like this.
When you got your first smart phone, be it android or iOS, you didn't know where anything was, so there was a learning curve.
But, in the same way as phones, there are built in "stores". Those stores are called repositories, and they're accessible in more than one way. You don't actually have to use the terminal, it's just usually faster since you really don't type much more than you would entering a search in whatever GUI interface comes with your distro. Indeed, you can actually set up the commands in a notepad, change the package name each time, and copy/paste the commands, and you're only a couple of seconds slower than opening the package manager, searching, scrolling to find what you want, clicking to install... See what I'm getting at?
Windows isn't really faster than that. You have to go to a site, download, find the exe or msi in your download folder, then click in the various pop-up windows. And you can find .deb files that do the same thing as an exe or msi, just not for every program, because they're an unnecessary pain in the ass. It's extra steps.
I promise you, comparing the way Linux works now, and the learning curve it takes to the learning curve on windows back when it was a new experience (and I'm talking windows 95, the previous msdos shells were worse than that), Linux is way easier. And don't even get me started on how shitty a user experience DOS was. Jfc, I'm dyslexic, and it was a nightmare. Windows 95 wasn't a big jump better in dyslexia land, but it was at least better than DOS.
If you were used to something like mac only, and had never used windows, the transition would be similarly annoying. And, for me at least, dealing with installs on windows is more of a pain in the ass now that I'm used to package managers.
I did a clean install of Windows 7 on my media PC (and yes, you valiant security friends, it's air gapped) maybe two years ago. From start to finish, including programs, took me about five hours.
My laptop that I run Linux mint on? An hour, start to finish. The only differences in the programs installed are in specifics, not in types. I plugged in my live drive, hit install, and was ready to start installing programs in maybe twenty minutes. My media pc is an old gaming PC, btw. Tons of ram, ssd, etc. The laptop is an old thinkpad. So it wasn't like the laptop was better hardware lol.
Which seems tangential, but it's pointing to the underlying ease of use once you're used to the system. I've being doing windows installs since the nineties (and a little before, but only in classes), so it isn't like I'm not experienced. I've only been doing Linux installs since about 2015.
Hell, my very first Linux install was Ubuntu on my dad's old computer just to make sure I didn't screw a box up that was in use. Even that, going from Ubuntu being ready to go, and having the programs set up to use was only maybe two hours, and that was mostly looking up the very process that's been described by others in this thread and copy/pasting things in for each program.
So don't get discouraged. If you end up really not liking it once you get past the learning curve, that's okay, windows will still be there. You can go back to it. But, if you're like me at all, once that learning curve is past, you won't enjoy the extra hassles windows puts in the way.
IF you want it to work like windows. It's up to you, people here are giving you the options to choose whichever suits you.
Welcome to the community. As you can see, there are some that are quite helpful and others that are ... less so.
I agree with you that there should be a better way to do that. It's been a while, but I'm pretty sure the Chrome deb file handled all of that for you. I've always been confused why every company that sets up their own PPA didn't do that.
I don't know about Mac, but on Windows the Mullvad app doesn't auto update. If you want to do it Windows style you can look for deb files (which are like installers) or AppImages (which are like standalone executables).
Most pieces of software give terminal instructions for Linux because different people might use different package manager frontends, but literally every Linux user has a terminal. It might seem daunting at first, but giving users commands to run in their terminal is a lot more simple than trying to walk them through repo management through the GUI, or just telling them to figure it out themselves.
On Mac it doesn't autoupdate, but prompts you to Download the new version when it's available
On windows you can use Winget to install update
winget install -e --id MullvadVPN.MullvadVPN
That's what the instructions are guiding you to do.
If you hate the terminal then maybe Linux simply isn't for you? That's completely okay you know. Use the tool that's right for you.
Same reason you don't download installers for your phone, why don't you think it's confusing there?
I can totally understand why the terminal seems confusing and scary right now, but it’s actually awesome for this kind of stuff because you can just copy and paste commands to do pretty much anything to your computer. Using a GUI often means having a bunch of screenshots that you have to follow manually to do something that a single command can do. Once you’re used to the terminal for these kinds of things GUIs can seem barbaric. Of course it seems scary before you know much about it because it seems like the fucking matrix, and you should only run commands from sources you trust (because they can do anything)… But it’s worth giving a chance, I think.
For this particular instance… often you can just download an application on Linux from a website and run it, but this is almost never the preferred way of doing things. Usually you install applications from your package manager, which is kind of like an App Store (but free), and the advantage of this is that 1) you don’t have to hunt down sketchy executables on the internet, you have a vetted source of safe packages from your distribution, and 2) you can easily update all of your packages. Having a one stop shop for all of your applications (or at least most) is really great, but it can be a little annoying when something you want isn’t in the official repos (like this), though it’s usually a fairly rare occurrence.
What annoys me the most with installing apps this way is that I have already installed several and while having been succesful I still have no clue what any of this does. What is sudo? What is apt-get? What is repositorie? What is package? I just don't know what any of this does and blindly following instructions isn't teaching me anything. When I try to looks for explanations or tutorial videos I'm just met with more jargon that I don't undestand. GUI is really intuitive for me as it helps me to visualize what's actually happening but playing around with terminal is really abstract and confusing. If I'm met with an error I'm completely stuck then. Only troubleshooting I can do is to make sure I typed the command correctly.
If you stick with it you'll eventually start to understand what all the jargon means.
sudo is kind of like "run as admin" in windows. It runs whatever command as root(admin) instead of as your user. To use it you just add sudo in front of the command. Ex. "apt-get update" becomes "sudo apt-get update"
apt-get is the command that controls your Ubuntu Repository. "apt-get update" basically checks for updates for everything on your computer. Then "apt-get upgrade" downloads and installs all those updates. And "apt-get install <app/package name>" is how you install apps that are in your distros Repository.
A Repository is basically an app store for your distribution. Each Linux distribution usually has their own. And they have different software(apps) available in them. If a app you want is not in your repo there are different options to install it. That was probably the hardest part for me to understand when I started. But now days the easiest option is to use snap or flatpak to install something that's not in your distros Repository.
As far as I understand, a package is just another way of saying app or software program. There might be a technical difference. But when you download a package you're basically just downloading the program/software/app.
There are also package dependencies which is the other software that is required to run the software you're trying to install. When you run "sudo apt-get install ". You will see a list of packages that will be installed. This includes all the dependency packages. Which are the packages that are needed to run the one that you're trying to install.
Some linux distribution try to give you a GUI for everything. But its definitely worth learning how to do stuff in the terminal. Once you learn it you'll realize why it is so much better than a GUI.
Oh good, you wrote basically the exact response I was going to give!
The only other thing I would mention is… if you don’t know what a command is, you can and should look it up! You can use the internet, but you can also try “man sudo” or “info sudo” and do a bit of reading. It might not make sense at first, but you’ll start building up a vocabulary really quickly.
It never hurts to start with
help man
A “package” goes beyond library or app, basically by being part of a package management system:
I think that might be it.
Just in the same way both rice and bread come in a package at the grocery store, and both of their packaging has nutrition info, UPC barcode, and net weight printed on it. The packaging itself allows these goods to be distributed through a particular system.
The barcode is part of the packaging standard, and then the “package management” processes of retail use that barcode for their own inventory management, checkout, etc.
Your analogy makes a lot of sense. I think that knowledge will be useful. Thanks.
I realized there’s quite a bit more metadata that a package provides to its package management system. Here’s an example package definition, in the programming language Ruby: https://github.com/thoughtbot/factory_bot/blob/main/factory_bot.gemspec
It defines, among other things:
My recommendation for learning this stuff is ChatGPT, ideally version 4
You seem nice
One reason is that different distributions of linux do things slightly different. Would it be better if there was only one linux os? For some devs of third party software, probably, but diversity and freedom to fork software has been good to linux, and no one could decide what everyone else should use anyway.
So, each distribution takes the available software and package it to fit their distro specifics, and those packages go into their repositories. The benefit of using official repositories is that someone has gone through the trouble of making sure it will work on your system safely. There's accountability and hopefully a bug tracker etc. When you download from a random website you have to trust them instead. Then... you have companies working outside of this model, usually they provide a flatpak or their own third-party repositories. Then you get all these extra steps, but it's not how most distros prefer to handle software.
On Windows and Mac, you are doing a number of things implicitly that you don't realize.
When you download from their site, you are expected to verify the integrity and validity of the install file yourself. You also have to take ownership of installing any dependencies yourself.
With the instructions mulvad is providing you, you are connecting to a repo and apt does all that for you.
Some installs don't require dependencies, but some do. Long term, this style of install tends to be a lot simpler, you just have to learn it.
But more importantly and as others have stated. Linux is different. If you aren't interested in learning a new workflow, you should stick with something familiar. That's a choice you should make not because others said it but because you want it.
You can, it's up to the software vendor to make it simple.
Most of the software are FOSS and can be installed directly from your package manager. That works like the iOS app store/Android Play Store except it existed 10 years before mobile stores.
Google Chrome is an example of proprietary software (so not in distributions repos) that is as easy to install on Linux than Windows. Because Google managed to get a deb that will also update your repos.
Bottom line, most of the time it's way easier to install software on Linux than Windows (as easy as on iOS) but occasionally it's slightly more complex.
I don't understand. If I go to their site at https://mullvad.net the obvious choice to download their software is to click at 'Downloads' at the top of the page. It already autodetected I am running Linux and has me on the Linux tab.
Sure there are two download options but the first one says it works on Ubuntu and the second says it works on Fedora. You get a file you can just double click and install. Windows installation works the same way. You download a file and double click it.
You don't have to use the terminal you don't really have to know more about sudo than you need about Windows UAC, you don't have to know what a package or .deb is anymore than what a win32 executable or an Windows' .msi file is.
People giving you more complicated answers either did not check the website (because they presumed you did) or if they did they think you want more features such as auto-updating which in Windows also requires a more complex install than downloading a file and opening it.
Because it's an asinine practice from which windows is moving away through winget, and which made the open source community to write a package manager for mac from scratch -- homebrew.
And if you think about it for a second, you will realize that it doesn't exist on Android and iOS at all. E.g. 99% of users only install from a centralized repository called "appstore" and nobody is ever downloading an executable installer.
Basically, you're uninformed, and blatantly defending your uneducated way of installing software.
Homebrew is extremely insecure. It doesn't verify package signatures, so its just as bad as the "just donloaf some sketchy untrusted binary off a website" approach