New Linux user here. Is this really how I'm supposed to install apps on Linux?

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.

rufus, (edited )

More or less: yes.

It’s copy and pasting 5 lines into the terminal and hitting enter. It’s not that hard. If it’s not worth the 15 seconds of ‘work’ you probably don’t need the software that badly.

And it’s not the default. Usually you shouldn’t add random software sources and download software from some websites. Your Linux package manager should be the source for software. (Software Manager / Store / Synaptics, … whatever Ubuntu calls it) It installs software with one or two clicks with the mouse, the software there is tested and tied into the rest of the systems and tens of thousands of packages are available. No malware guaranteed, and updates are handled automatically.

And with other Operating systems it’s also ridiculous: You need to find the website of some software, avoid malware and copycats that advertise similar software with ads, click download, click ‘yes’ I accept a download with a harmful extension. Then you need to open the file manager and double click on it. Then a window opens and you need to click ‘next’. Accept the terms. Give permission to install and maybe remove a few ticks and choose a location. I’d say it’s about the same amount of work and the downside is it doesn’t necessarily handle updates and security fixes.

I think Ubuntu doesn’t have Mullvad available in their own repository. I took another approach and imported their settings/profile into the VPN/network manager that is available per default on many Linux distributions. No install required at all. But importing the settings isn’t easier, so YMMV here. And I think you have to create a profile for each and every country/endpoint which is a bit cumbersome, depending on what you’re trying to do with the VPN.

Critical_Insight,

It’s copy and pasting 5 lines into the terminal and hitting enter. It’s not that hard. If it’s not worth the 15 seconds of ‘work’ you probably don’t need the software that badly.

Telling people to just run random code they found on the internet and don’t understand is really bad advice.

rufus,

That statement is certainly true.

But how do you think you install software on Windows? You download a random installer from the internet and double-click it. The installer is an executable file and runs some code on your computer to set up the software. I’d argue it’s exactly the same.

In the one instance you copy and paste code and run it. In the other instance you execute an installer that also contains the random code. And you can’t even have a look what happens.

The real issue is: You have to trust the vendor. If you don’t trust Mullvad, don’t run their 5 lines of code. But you then also shouldn’t install their software and not run their windows installer. I don’t see a way around this ‘trust’ issue.

The proper way of course would be a standardised process that also confines the software into containers with minimal permissions. Something like Android Apps. In theory you could add a default update process so the vendor just needs to define an update server in the (apk) installer file. Google didn’t do this, but they want people to use their Play Store. And I don’t think we have a permission system that is actively used on any of the major desktop operating systems, anyways.

lvxferre, (edited )
@lvxferre@lemmy.ml avatar

It’s less complicated than it looks like. The text is just a poorly written mess, full of options (Fedora vs. Ubuntu, repo vs. no repo, stable vs. beta), and they’re explaining how to do this through the terminal alone because the interface that you have might be different from what they expect. And because copy-pasting commands is faster.

Can’t I just download a file and install it? I’m on Ubuntu.

Yes, you can! In fact, the instructions include this option; it’s under “Installing the app without the Mullvad repository”. It’s a bad idea though; then you don’t get automatic updates.

A better way to do this is to tell your system “I want software from this repository”, so each time that they make a new version of the program, yours get updated.

but I have no idea what I’m doing here.

I’ll copy-paste their commands to do so, and explain what each does.


<span style="color:#323232;">sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc
</span><span style="color:#323232;">echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mullvad.list
</span><span style="color:#323232;">sudo apt update
</span><span style="color:#323232;">sudo apt install mullvad-vpn
</span>

The first command boils down to “download this keyring from the internet”. The keyring is a necessary file to know if you’re actually getting your software from Mullvad instead of PoopySoxHaxxor69. If you wanted, you could do it manually, and then move to the /usr/share/keyrings directory, but… it’s more work, come on.

The second command tells your system that you want software from repository.mullvad.net. I don’t use Ubuntu but there’s probably some GUI to do it for you.

The third command boils down to “hey, Ubuntu, update the list of packages for me”.

The fourth one installs the software.

Critical_Insight,

Thanks for the explanation. However trying to run the first command gives me sudo: curl: command not found

So I’m stuck right there in the first step lol

Ludrol,
@Ludrol@szmer.info avatar

<span style="color:#323232;">sudo apt install curl
</span>
Oha,

sudo apt install curl

SpicySquid,

That should be easily solved with: sudo apt install curl

pmk,

curl is a good tool to have in general, you can install it with sudo apt install curl

TrickDacy,
@TrickDacy@lemmy.world avatar

Wow, interesting. You may be able to install curl to fix that like this:


<span style="color:#323232;">sudo apt-get update
</span><span style="color:#323232;">sudo apt-get install curl
</span>

Can’t hurt to try

NekkoDroid,
@NekkoDroid@programming.dev avatar

I would have guessed that Ubuntu would install it by default since its a very common way to get stuff from the internet (when in the terminal), but apparently not (the other option is wget which is most likely installed, but that uses a different way to get the stuff).

You should be able to install curl with sudo apt install curl

drctrl,

My fresh Debian install didn’t have that too and I thought it came with the installation

ikidd,
@ikidd@lemmy.world avatar

Debian doesn’t even come with sudo, git or curl by default. It’s kind of minimal on purpose.

apprehensively_human,

It always throws me off on a fresh install when I can’t sudo

Matriks404,

I didn’t know that any distribution comes with git preinstalled.

intensely_human,

sudo apt install curl

user224,
@user224@lemmy.sdf.org avatar

Hmm… ProtonVPN team solved this in better way. They put the repo configuration stuff into DEB file, so it’s just a matter of double clicking it and clicking install on Debian-based and Ubuntu-based (I know Ubuntu is Debian-based) distros and then installing the ProtonVPN client through either GUI or CLI package manager, whichever you wish to use. More newbie-friendly.

Unfortunately, I also just learned they dropped support for Arch Linux :(

We’d love to support the new app for arch Linux but honestly we’re understaffed and don’t have the bandwidth to be supporting the same distros that we did before with the previous client (4 packages before vs 10 packages now). If anyone from the community is willing to make AUR packages for themselves and publish/maintain them we’re totally fine with that, as long as people keep in mind that it would be an unofficial version because we currently don’t support arch Linux with the new v4 app.

Also if anyone’s interested: boards.eu.greenhouse.io/proton/jobs/4140067101

0xtero,

Hmm… ProtonVPN team solved this in better way. They put the repo configuration stuff into DEB file, so it’s just a matter of double clicking it and clicking install

I was wondering how they’d solve signature checking and key installation - and looking at their page they seem to recommend skipping checking package signatures which, to be honest, isn’t a super good practice - especially if you’re installing privacy software.

Please don’t try to check the GPG signature of this release package (dpkg-sig –verify). Our internal release process is split into several part and the release package is signed with a GPG key, and the repo is signed with another GPG key. So the keys don’t match.

I get it’s more userfriendly - and they provide checksums, so not a huge deal, especially since these are not official Debian packages, but the package signing has been around since 2000, so it’s pretty well established procedure at this point.

XTL,

Any instructions that say sudo curl should be thrown out immediately.

bjorney,

Is curl so untrusted that you would prefer to use 3 commands (one which still needs root permissions) instead?

XTL, (edited )

The point is that an HTTPS request does not need root permissions. Other steps might, and that’s indeed high risk.

bjorney,

The curl that ships with apt is ubiquitous enough that I trust doing sudo curl xxx yyy more than enough if it means avoiding typing curl xxx /tmp/yyy && sudo mv /tmp/yyy yyy

governorkeagan,

I love this community because of responses like this.

umbrella,
@umbrella@lemmy.ml avatar

to be fair all of that should be a flatpak you click once to install

lvxferre,
@lvxferre@lemmy.ml avatar

Frankly in this case even a simple bash script would do the trick. Have it check your distro, version, and architecture; if you got curl and stuff like this; then ask you if you want the stable or beta version of the software. Then based on this info it adds Mullvad to your repositories and automatically install it.

umbrella,
@umbrella@lemmy.ml avatar

nowadays they always come across as lazy to me, when a bunch of options are available to make installing software on linux painless.

lvxferre, (edited )
@lvxferre@lemmy.ml avatar

I like them, even for software installation. Partially because they’re lazy - it takes almost no effort to write a bash script that will solve a problem like this.

That said a flatpak (like you proposed) would look far more polished, indeed.

umbrella, (edited )
@umbrella@lemmy.ml avatar

oh i meant devs who provide packages but don’t bother with install scripts.

bash scripts are fine when they exist.

lvxferre,
@lvxferre@lemmy.ml avatar

Ah, got it. My bad. Yeah, not providing anything is even lazier, and unlike “lazy” bash scripts it leaves the user clueless.

AbsoluteChicagoDog,

The comment section here is a perfect example of why people don’t use Linux

csm10495,
@csm10495@sh.itjust.works avatar

+1 there is something nice about just downloading and double clicking an exe.

Maybe they should have a common file format for all distro that extracts, etc. for the current distro. I thought that was flatpak, but idk.

bjwest,

They have the .deb at the top of their download page, no need to install the PPA repository if you don’t want. You can’t get any more than “just downloading and double clicking an exe deb” than that on Ubuntu.

I will admit though, I wish there were an easier way to install PPAs.

sailingbythelee,

You got that right. So many contradictory comments for such a simple question.

That said, Linux for home use is a hobby and hobbyists expect a certain level of interest and basic commitment to learning. Also, the Linux community is a bit anti-Windows. So, coming on a Linux forum and complaining that a simple Linux task is too hard, basically because it isn’t Windows and you didn’t bother to read any documentation, pushes ALL the Linux nerd buttons, LOL.

Imagine going on a boardgame forum to complain that some super popular game is dumb because it isn’t like a video game, and too complicated even though you didn’t bother to read the game rules.

AbsoluteChicagoDog,

As a board game hobbyist, that happens all the time. Our community generally makes an effort to direct them to games with a lower weight and easier rules and encourages them to keep playing to grow the hobby.

That’s not at all what happens with Linux.

mr_pip,
@mr_pip@discuss.tchncs.de avatar

Can you recommend any good forums to look for board games?

AbsoluteChicagoDog,

BGG is all you need

sailingbythelee,

Don’t they just make a joke about Patchwork and move on?

LifeCoffeeGaming, (edited )

Hello new Linux user! So yes, your correct when installing apps on Linux sometimes you might need to do it via command line other times you’ll get a nice install file you can double click. It’s really down too the software manufacturers on how they choose to package it.

In general with Linux you’ll find there’s still a lot of command line usage compared to Windows or osx. On those platforms for most users they would barely touch a terminal except in some kind of bug fixing emergency.

Some distros come with their own app store built in (like the windows or osx app store) and allow you to install a bunch of apps via the gui.

What version of Linux did you go for out of interest? Some are much more beginner and use friendly than others.

Critical_Insight, (edited )

I’m on Ubuntu 23.10 (I think)

There indeed is an app store from where I installed few apps before. I need to check if they have Mullvad there. I do much prefer installing apps thru a GUI. While I know how to follow instructions and copy & paste these commands into terminal, it’s frustrating as I have no idea what any of these does. I might just aswell be unknowingly installing a keylogger or something.

dust_accelerator,

I have no idea what any of these does. I might just aswell be unknowingly installing a keylogger or something.

This actually applies to windows GUI installers just the same. You really don’t know what you’re installing either, although you do usually give it administrator permission to make changes to the system. In some way it’s even worse, it’s “running commands” and hiding it from you.

UnRelatedBurner,

I’d say learn the commands, but another way is to copy paste it into chatGPT, it’ll tell you what the command does.

XTL,

That is a good mindset and you should hold on to it. Of course a gui can install a keylogger for you just as easily if not more so.

Trusted install sources, usually called repositories, are the way. Chances of malware exist, but they would require some spectacular shenanigans or conspiracies to set up.

notsofunnycomment,
@notsofunnycomment@mander.xyz avatar

With a GUI you also don’t know what it does. Its the same situation, you just click a button that runs the code instead of copying and pasting the code in the terminal. (And I would say the latter is safer because it is more transparent (for those who want to figure it out)).

Aria, (edited )

Yes. I’m genuinely unsure how it could be any easier. It’s just add the repo and install.

But I suppose it’s a lot if you don’t know what anything means, so I’ll try to explain it at a super basic level. Sorry if this is patronising, I can’t ascertain your experience level so I have to make an assumption.

The first thing it asks you to do is:

sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc

Hm. Okay so I guess before even deciphering the command, you have to know how Linux works. So on Linux, the first word is the name of the application you want to use, and everything afterwards is stuff that you pass along to the application. It’s up to the application to program in the behaviour for interpreting the words that come after the first word. So “sudo” is the name of the application you’re using, and all that other stuff is stuff you’re telling Linux to tell that other application.

Okay, so what is sudo? sudo is short for Super User Do. It’s an application that does something (sudo) as the super user (sudo). Super User is like admin on Windows. So it’s for when you want to make system level changes or want to override permission limitations. In the past, or at a basic level, you would switch user, make the change, then switch back to your personal user. But with sudo you can borrow the permissions of the super user for the purposes of that one command and everything works smoother that way.

The way you use sudo is you run the application by typing sudo, then you type in a second application and what you want that application to do, then sudo starts that other application and gives it the instructions you asked to be passed on. The second application in this case is curl.

For example, on Windows you might do sudo photoshop open C:userswinuserdocumentsrestrictedfile.psd to open a file in Photoshop that the Windows admin decided you aren’t allowed to open.

Let’s look at the command again.

sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc

Sudo is to get super permissions and doesn’t actually tell you what the command does. The application that is actually being run in this command is curl. curl goes to a url and sees it. So it basically just means download whatever is at this URL. Here the URL is https://repository.mullvad.net/deb/mullvad-keyring.ascAll that other stuff in this command is technically curl specific, so you have to check how curl works to know what it does. But it does follow Linux conventions very closely, therefore a normal Linux user who has never used curl could still guess what it does with 100% accuracy and would probably use it correctly for the first time without checking how to use it. If you want to learn how to use it, you can use the included manual program man, by typing man curl, and as a convention, almost every Linux application will tell you how to use it if you use the -h or --help flags by typing curl -h or curl --help.

In this case, curl takes flags, these are -fsSLo, that’s 5 different flags. A flag is like a mode switch for an application, it’s specified with adding a hyphen and the trigger word. The hyphen is useful because an application like curl might want a file path /usr/share/keyrings/mullvad-keyring.asc and a URL https://repository.mullvad.net/deb/mullvad-keyring.asc, so by adding the hyphen, the application knows that fsSLO is not part of the file path, but is instead specific instructions you’re giving the application. This is a normal convention on Linux, similar to how Windows applications normally program the X button in the corner to close the window.

For curl specifically, by default curl doesn’t save the file, it just displays it in the terminal. So the most basic version of the command would be curl https://repository.mullvad.net/deb/mullvad-keyring.asc and nothing else. Let’s look at what the flags do.
-f is for fail.
-s is for silent. Both of these just change the behaviour of curl to give you less feedback and information. Mullvad probably chose to do this to make it more beginner friendly, ironically.
-S is for show error. There’s a difference between lower and upper case. Show error means that even though curl was asked to be quiet and not show what it’s doing, it should still let you know if there’s an error.
-L is for location, it’s to allow redirects. Mullvad chose to include this option so that the old instructions still work if the URL changes in the future or perhaps if you have a common typo in your command.
-o (output) writes the downloaded file to disk at the specific location. /usr/share/keyrings/mullvad-keyring.asc. The -o flag is the only one in this list that actually matters and changes what the application does. The rest is just there to be beginner friendly, but I think Mullvad made a mistake in including them personally, as I think they add to the confusion instead.

As a standard Linux convention, flags can either be a single hyphen and a letter or two hyphens and a word or a hyphenated sentence. These are conventions and up to the application, but for curl and most applications you’ll use, both work. Similarly, curl and most applications let you use a single hyphen and then all your flags in a row, or separate them with spaces and new starting-hyphens. curl -f --silent -S -L --output file.txt https://lemmy.ml for example.

Okay, so hopefully now you can read it a bit better. Let’s look at it again.

sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc

Wtf is that file and why do you need it in that folder? It’s downloading their encryption key to the folder where apt (a different application we haven’t encountered yet) looks for encryption keys. You need this for cryptographic verification. It’s a safety measure, and more important for security software like Mullvad. It’s not mandatory for adding repositories.

So with this command, you borrow the super user’s permissions and you download a file and put it in a folder.

Okay, next part.

echo “deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/mullvad.list

Okay, this one is actually pretty complicated! Similar to above, how they added all those superfluous flags that make curl quieter, this is another case of the mullvad help-article-writers choosing to make the experience of copy/pasting the commands more seamless by sacrificing legibility.

But let’s go through it anyway. It’ll be a super quick crash course in how to use Linux.

echo “deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/mullvad.list

Echo is an application that repeats whatever you type at it. If you run echo hi it’ll output hi into the terminal. Deb is an application that installs .deb packages. These are like .msi files on Windows. It’s specific to Ubuntu and certain other Linux distros. The stuff that follows echo is a command. deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main, if you run it on its own, it does something. But because you wrote echo first, it’s only words that are being printed in the terminal. We’ll look at what it’s supposed to do in a minute. After that part, comes a pipe |, this is very important, then a second command. sudo tee /etc/apt/sources.list.d/mullvad.list.

Okay, we’ll break this down backwards. sudo you already know. It’s just an application that starts another application. In this case tee. tee is an application that takes whatever you give it and writes it to a file. It’s called tee because it’s like a t-split, it both writes to a file and to the terminal at the same time, so you can monitor what’s being written. It’s specifically designed to be used with a pipe.

Wtf is a pipe? A pipe | is a built in Linux function that let’s you take the output from one application and feed it to another. In this case, the stuff you had before the pipe was a echo command. So the output is what you asked echo to echo back to you. deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main". That means that tee is writing this command (without the echo part in front of it, because that’s your command, not the output from an application) into the file located at /etc/apt/sources.list.d/mullvad.list. Tee by default overwrites whatever was already in the file, and in this case, a mode-switch flag wasn’t used to ask it to not do that. So if that file already existed (which it doesn’t), it would now be deleted and replaced with what you echo’d into it. deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main".

What is /etc/apt/sources.list.d/mullvad.list? That’s a file that belongs to apt. apt is your package manager, we’ll loop back to that. The /etc folder is somewhere applications put their files, rather than where the user is supposed to put their files. Having the user’s files separately like that helps with knowing which files you care about when it comes to backups and system migrations and things like that. So inside /etc, apt gets it’s own folder, and inside that folder it created sources.list.d, and inside that folder, you’re now creating a file for mullvad. In this file is the definition of the new repository you’re adding.

[Cutting this up to two parts because API limit]

Aria, (edited )

[Part two]

Two questions:

What is a repository?
What’s the stuff that goes in the file? Why is it a command and why is it so long?

I started answering the second question, so we’ll continue with that and loop back to what apt and repositories are for the next and final command.

echo “deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/mullvad.list

So echo just means “repeat what you’re given”. Then deb is the Ubuntu equivalent to msi. Then you’re telling the deb application where to find the encryption key you installed earlier, and you’re telling it which arch (short for architecture, it’s the hardware configuration of your computer) you’re interested in. When it says $ and then stuff in parenthesis like that, that stuff gets computed and substituted. So you’re not literally asking for the architecture $( dpkg --print-architecture ), but instead something like arch=amd64. dpkg is an application that keeps track of what .deb packages you have installed. With the flag --print-architecture, it’s switched to a different mode where instead of it’s primary purpose, it’s telling you what system architecture you’re using. Then it’s the URL for the repository. The URL is also variable, part of the URL will get replaced later. $(lsb_release -cs). lsb stands for linux standard base, and lsb_release is just an application that says which Linux distro you’re using. The reason this ‘standard base’ is used rather than the specific distro and version, is because it’s meant to simplify the very large diversity of Linux distributions and versions down to the minimal number of possible versions that actually have some level of incompatibility with each other. So it would say your specific major version of Ubuntu, but it wouldn’t say exactly which patch you’re on. Someone who’s not using Ubuntu, but using something that from a compatibility standpoint is fully Ubuntu compatible, might also report as a Ubuntu version when using this application. The output from this program is added to the URL. The computed result is something like https://repository.mullvad.net/deb/stable mantic minotaur main. Main just means the main branch of the application, as opposed to a special branch, like a beta-branch.

If you notice, you’re not computing these things first and then putting the result into the file, but instead you’re inserting it with variables. This will allow your system configuration to change without the need to update the repository definition.

All in all, this is a very complicated way to add a repository. On most systems, and indeed on Ubuntu, you can do this with a single application or a flag for the package manager and then a single URL. For Ubuntu it would be apt-add-repository https://repository.mullvad.net/deb/stable mantic minotaur main. But they chose to do it like this to make it easier to do once and forget.

And then finally, what is a repository? What is apt? A repository is a place that hosts software. It’s like the Play store on Android. You can use the Ubuntu repository that is standard for your Linux distribution and guaranteed to work, guaranteed to be safe, guaranteed to be respectful towards you as the user, but you can also add third party repositories. Third party developers can add their applications to the official repository, but doing so means they have to go through a quality assurance step, and that they are limited in the ways they are allowed to abuse you. For security software, this might add too much delay between when it’s critical that they provide an update, and when that update is approved for distribution to Ubuntu users. Instead they have opted to host their application on their own repository.

Apt is your package manager. It keeps track of everything you have installed, every library and component used and required by every application, and for some package managers, every file created by every application. It checks all repositories you’ve specified for updates and automatically updates all your applications. It also deals with requirements and conflicts, ensuring that you don’t have superfluous old libraries taking space, and that when you want to install something with requirements, you don’t need to manually hunt down all the prerequisites. Some package managers available on other systems will even compile applications and deal with build files for you.

A library is a set of application features that doesn’t necessarily belong to a specific application. They do common things and are used my many applications. For a Windows equivalent, you can think of the Microsoft Visual C++ Redistributable or Direct X.

And that’s everything.

sudo apt update

Sudo is to get super user permissions, and then run the application apt, apt is your package manager, and the command you’re giving to the apt application is to update it’s internal knowledge of available packages and versions. It needs to do this because it didn’t previously have the Mullvad repository.

sudo apt install mullvad-vpn

Sudo is to borrow the super user’s permissions, apt is your package manager, and you’re telling it to install, and then the name of the application you want to install is mullvad-vpn. This final step sudo apt install mullvad-vpn, sudo apt install firefox is how you install applications on Ubuntu typically. Everything before this was because you needed to add a third party source.

Phew, that’s a lot of text! So in hind-sight, it could be easier after all lol. Feel free to ask if you have any questions. It’s a lot of text, but I assure you that if I was going to explain anything about how to use Windows at this level of detail, it would be pages upon pages longer! I hope the explanation wasn’t too condescending. Good luck with learning how to use Linux.

_
Pedantic clarifications:

  • Technically, sudo is a command and not an application, but it’s made to be treated like an application. Also technically it doesn’t stand for superuser do, but all the stuff I told you is assumptions they want you to make to make it easier to use, but because it’s such a core part of Linux, it works differently on a technical level.
  • | is actually part of bash, not Linux, but most shells have | with identical behaviour.
Xer0,

Lmao, i’m sure this is just going to make OP run a mile.

MrOzwaldMan,

you’d do it too so people don’t break their system case-in-point Linus.

ulterno,
@ulterno@lemmy.kde.social avatar

A bit of physical exercise shouldn’t be too bad.

ulterno,
@ulterno@lemmy.kde.social avatar

Great stuff This is going to be useful even to someone who easily understood the commands.

AbsoluteChicagoDog,

Genuinely sure it couldn’t be easier

Instructions so long it takes up two comments

Aria,

These aren’t instructions. The instructions are 3 lines and provided by the vendor.

some_guy,

Yes. I’m genuinely unsure how it could be any easier.

I was gonna laugh, but then you included a lot of information, and thinking back to the days when I would write super long instructions for people with lotsa explaining. This is a good effort to impart knowledge and I commend you for it.

bjwest,

Yes. I’m genuinely unsure how it could be any easier. It’s just add the repo and install.

It can be much easier to install a PPA than using the command line to do so. I think it’s high time it was as easy as clicking on a (verified) “install this repo” type button on a page, and confirming, entering your sudo password from the launchpad website. I’d even be OK with building it into Discover.

Aria,

If you’re going to verify repos then you might as well just verify the packages.

brax,

sudo synaptic for a graphical package manager.

Otherwise, just use sudo apt-get if the program you want isn’t there, you may need to download the source and compile it yourself

callyral,
@callyral@pawb.social avatar

Or just download a binary if the program offers one

brax,

How do you ensure you have the right dependencies if you do that?

callyral,
@callyral@pawb.social avatar

usually it’s an appimage, i mistakenly said binary. although there are programs that offer ELF binaries, in that case you can try running it. if it doesn’t run, check the list of runtime dependencies for the program and install what is necessary using your package manager.

lefixxx,

Are you suggesting to a new user to build from source when he can’t run a couple of commands?

brax,

They asked how to do it, I wanted to make sure that they knew that an application not existing in the repo doesn’t mean the application isn’t actually available.

danielfgom,
@danielfgom@lemmy.world avatar

This is not the only way to install apps but as a Linux user there will be times when you will need to use the terminal. Might as well know that from now.

The instructions they gave are really simple and straightforward. If you struggle with that, you may want to learn a bit about the terminal.

But since you’re on Ubuntu there is a much easier way: go to Mullvad downloads page and download the deb file. Double click it and the Ubuntu App Store should open and install it. If not, open the App Store and search for gdebi and install it. Now right click the deb you downloaded, and click “open with…” and choose gdebi from the list.

It should check dependencies and give you an “install” button. Click that and wait for it to finish. Then simply launch Mullvad as normal.

In general on Linux you install apps by looking in the distro repo: either by searching the App Store or by using the terminal.

To do it from the terminal type:

  1. ‘sudo apt update’. Enter your password.
  2. After it’s updated type 'apt search [name of app] and press enter. It will give you a list of apps with that name. Eg apt search lollypop (a music player). Then if you see it listed, you know it’s in the repo.
  3. To install it type ‘sudo apt install lollypop’ and press enter. It will tell you how large it is and if you want to install it. Type “y” and press enter. It will finish it in a few seconds.

Done. Launch the app as normal.

There is also something called Flatpak’s which you can get from flathub.com You will also find instructions there on how to install flatpak on your system but typing a few commands.

Welcome to Linux. You’ll either embrace and love it or abandon it.

ILikeBoobies,

You will have to use the terminal less often than people on Windows do

It’s a personal choice

danielfgom,
@danielfgom@lemmy.world avatar

The average Windows user doesn’t know what a terminal is, let alone use it. Whereas in Linux every user knows what a terminal is and has used it at least a handful of times.

Some distros don’t have an app store, just the terminal.

ILikeBoobies,

The average Windows user knows that command prompt exists

The average Linux user comes from Android and has no clue about terminal

danielfgom,
@danielfgom@lemmy.world avatar

Bro, I’m an IT Support Technician and Sysadmin by profession. Trust me when I tell you the average user has never seen the command line.

Move a shortcut on their desktop and they freak out because they think the pc deleted all their work. No way in hell they would touch a terminal.

ILikeBoobies, (edited )

I’m aware, someone asked how to download a video so i told them just paste the url in command prompt (yt-dlp) and they said it’s not worth it

But no one I know even knows how to get to CLI on Android

GenderNeutralBro,

That page lists multiple installation methods, for multiple distros. There simplest one for you is just two steps.

  1. Download .deb installer
  2. Run apt install ~/Downloads/MullvadVPN-*_amd64.deb

It’s not that complicated. That’s just confusingly written. And caters to a wide range of users.

library_napper,
@library_napper@monyet.cc avatar

Its more secure to go through a package manager. Checking signatures is important.

GenderNeutralBro,

You can verify the signature of the manual download as well. Either way, you are trusting the files you download over HTTPS from mullvad.net. There’s no real difference, except that when you use the repo, you are trusting it indefinitely, whereas if you download the deb directly, you are only trusting it once.

Using the repo is less secure, because it opens you to future attacks against the repo itself.

library_napper,
@library_napper@monyet.cc avatar

Https is vulnerable to loads of attack. That’s why we sign packages.

GenderNeutralBro,

You’re downloading the signing key over HTTPS either way, from the same server. That’s the common point of failure.

library_napper, (edited )
@library_napper@monyet.cc avatar

That’s why you download the key from multiple distinct domains from multiple distinct locations using multiple distinct devices and veryify their fingerprints match. If the key/fingerprint is only available on one domain, open a bug report with the maintainer.

GenderNeutralBro,

Agreed.

Unfortunately, Mullvad’s instructions just have you download the key from mullvad.net and add it in with no further validation.

You can also get it from their GitHub page, at least for the individual debs. Not sure if they have the repo key on GitHub.

where_am_i, (edited )

bad advise, OP should use a repo if they have apt

edit: yes, I understand, one day I’ll get rooted by whoever hacked the VPN app’s servers

GenderNeutralBro,

There’s nothing wrong with installing a .deb manually.

Personally, I’d hesitate to add any third-party repos unless there is a very good reason. In this case, the only real difference is that you won’t get the updates automatically with sudo apt update; sudo apt upgrade without the repo. Either way, the desktop app will notify you when updates are available. There’s very little advantage to using the repo.

Adding a repo is very rarely required. It has deeper consequences than simply installing an app, and requires a higher level of trust. If you don’t understand the security implications of adding a repo (and its associated key), then my advice is: just don’t.

library_napper,
@library_napper@monyet.cc avatar

Yes, there is. You’re risking downloading malicious software.

BoneALisa,
@BoneALisa@lemm.ee avatar

What are you on about? If you are using the 3rd party repo, you are just as likely to get malware than if you download the deb directly from the wbsite. Its literally the same thing, just adding the repo means that the malware could get installed automatically and without you knowing where it came from.

library_napper,
@library_napper@monyet.cc avatar

No, you’re confusing two vectors of attack. I’m saying that if you fan trust the vendor, then you’re still at risk from downloading malicious software that was manipulated between the vendor and you (man in the middle attack), unless you verified a signature using a key stores offline (note https is still vulnerable because the keys are stored online)

BoneALisa,
@BoneALisa@lemm.ee avatar

Not untrue, and I don’t think that the possibility should be glossed over, but honestly, what do you think is more likely: this specific person getting specifically MitM’ed by a bad actor, or a bad actor taking control of a repo that hundreds of people blindly trust. I have a sneaking suspicion that OP’s threat model isn’t sophisticated enough to need to really, truly, be worrying about that.

library_napper,
@library_napper@monyet.cc avatar

This sort of thing happens dragnet. And mullvad users are definitely a group to be targeted. Dont assume OP isnt a refugee or journalist and give them bad advice that could get them killed

BoneALisa,
@BoneALisa@lemm.ee avatar

If OP is a journalist or refugee at risk of being targeted and killed, my advice is don’t use a VPN, use TOR lol.

Falcon,

The Deb and ppa will have the same content, the ppa is just automatic, assuming the owner maintains it.

bigkahuna1986,

My favorite part of this thread is everyone just saying copy and paste the commands so it will work. Like we should totally get users into the habit of running random commands off the net as root.

Icaria,

I mean I agree that this is a new user nightmare, but we’ve been conditioning people for 30 years to download and run random .EXE files as admin too.

atlasraven31,

The random Exe downloads for Windows to update drivers kills me. Users are conditioned to accept it without complaint.

pigup,

Yolo

TCB13,
@TCB13@lemmy.world avatar

This post is proof that Linux desktop isn’t as good, perfect and polished as everyone says it is. Stop living in the delusion.

ChaosAD,

Do you even use Linux?

answersplease77,

He’s using a shitty version of linux. I use Arch btw

TCB13,
@TCB13@lemmy.world avatar

Yes and I do and while it is great for infrastructure, magnitudes better than anything Microsoft ever offered as a reasonable desktop it’s a fucking a joke.

gamma,
@gamma@programming.dev avatar

You’re deluded if you think that “everybody” let alone a large minority of people say that the Linux desktop is “good, perfect and polished”.

TCB13,
@TCB13@lemmy.world avatar

That’s a new one around here ahaha

juli,

That’s what I hated as a beginner on debian/ubuntu as well. On fedora it’s straight forward. Adding repo and then isntalling the app.

bizdelnick, (edited )

Lolwhat? It is the same in any distro: adding the repo and installing the app.

iopq,

It’s not like that on NixOS

There’s no adding repos, you just put mullvad-vpn in your system packages list

vzq, (edited )

Yeah, the only odd thing is installing the signing key, but it’s there for a good reason.

That said, it’s not a great user experience, especially if you start stacking a lot of ppa’s.

risencode,

It’s the same on Debian, so I’m not sure what you mean?

TimLovesTech,
@TimLovesTech@badatbeing.social avatar

Yeah, how Ubuntu is supposed to be noob friendly and continues to be recommended blows my mind. Seems like every stupid app you want to install needs you to add a ppa that is almost guaranteed to break on the next major update. And ugh snaps …

dvdnet89,
@dvdnet89@lemmy.today avatar

Believe or not many people who know little Linux world always believe Ubuntu is the de-facto Linux itself.

quackers,

Yeah no, generally you just copypaste the software website’s instructions. Many programs can be installed through the app store (or equivalent install commands) but a lot of aoftware you just gotta copypaste the code. Many also just provide an inataller.
The meme about linux software being much easier to install is true in some cases, but mostly bullshit. even if its just sudo apt install vlc you generally still want to check the website to make sure its the best way, or you end ip with an out of date version.

Updating software on linux is better pretty much automatic without annoying popups most of the time though.

neonred,

This was terrifying to read 😨

quackers,

Yeah, well, linux is great, but people seem to rarely give the full disclaimer. So people end up disappointed, go back to windows and end up thinking you need to be hackerman to be able to use it. Or they do end up learning everything, think they’re hackerman and tell everyone in the world how linux is just sooo much better and easier because theyve been using it since 1969 or whatever.

My view: Your grandma could comfortably work on linux. It’s when you need stuff beyond the most basic aoftware that there’s a much steeper learning curve than windows. You fuck up, your system implodes. Once you’re balls deep into computers, lets say software development, linux becomes easier and more useful again. Its that middle group of average users who have the hardest time.

limeaide,

The same MFs on here that rush to tell someone that Linux is easy and intuitive are the same ones that can’t keep a small talk conversation for more than 5 mins, a social activity that humans have been doing for thousands of years.

My words might be a little broad, harsh, and even hurtful, but just a reminder that not all of us are good at learning the same things.

We didn’t all come out of the womb knowing how to socialize or use Linux, but if we look back far enough, we can all relate to the struggles it takes to learn something new, and how much it sucks when someone treats you like you’re stupid just because things sometimes don’t click

FreshLight,

Bravo! Super true :)

hardcoreufo,

Sounds like someone didn’t learn to socialize or use Linux.

lefixxx,

People here saying you can just download and run the .deb just like the .exe

Aren’t you forgetting the “add +x permission” step?

Natanael,

A deb file will “run” in the package manager process space, it doesn’t need to be executable on its own

velxundussa,

As others have mentionned downloading the .deb and running it will also work, but I feel nobody gave your a tldr of why you may want to follow those instructions instead, so here it is:

Those instructions configure your package manager (apt) with a new repository for this application.

The upside to that is that anytime you will look for updates, this app will also get updated.


It’s a bit more work up front, but it can pay off when you have dozens of app updating as part of normal system operations.

Imagine a world where windows updates would also update all your software, that’s what this is.

nix,

Also, no, this is not an ideal way to do this. Ideally every package you want is in your distro’s repos so you’d just need to do “apt install [package]”.

The reason this one isn’t is because mullvad wants to make sure you use their tested, secure, and updated version and they don’t want to maintain that for every distro. So they have you configure your package manager to use their repos.

This is relatively uncommon to come across in Debian. You’ll normally only find it in security applications or very niche ones. The Debian repos aren’t the most comprehensive but they’ll contain the vast majority of common softwares.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4198400 bytes) in /var/www/kbin/kbin/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php on line 171

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1572864 bytes) in /var/www/kbin/kbin/vendor/symfony/error-handler/Resources/views/logs.html.php on line 36