https://mullvad.net/en/help/install-mullvad-app-linux
Trying to install VPN and these are the instructions Mullvad is giving me. This is ridiculous. There must be a more simple way. I know how to follow the instructions but I have no idea what I’m doing here. Can’t I just download a file and install it? I’m on Ubuntu.
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 <package name>”. 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
removed by mod
You seem nice