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.

iusearchbtw,
@iusearchbtw@lemmy.sdf.org avatar

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: github.com/mullvad/mullvadvpn-app/releases

Critical_Insight,

That’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.

bizdelnick,

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.

Critical_Insight,

I’m giving Linux a chance because people here recommended that I do and now you’re telling me to use Windows.

bizdelnick,

I don’t recommend using anything new to you unless you are ready to learn it. If you are, welcome aboard!

southsamurai,
@southsamurai@sh.itjust.works avatar

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.

Fecundpossum,

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.

giloronfoo,

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.

be_excellent_to_each_other,
@be_excellent_to_each_other@kbin.social avatar

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.

Nibodhika,

Same reason you don’t download installers for your phone, why don’t you think it’s confusing there?

pmk,

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.

Chobbes,

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.

Critical_Insight,

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.

Unmapped, (edited )

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.

intensely_human,

A “package” goes beyond library or app, basically by being part of a package management system:

  • I has a version number in a standardized format, which package managers can use to reason about dependencies
  • It declares its own dependencies, with version constraints. It will have entries like “In order to run I need a copy of jsonReader version at least 0.12.1”

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.

Unmapped,

Your analogy makes a lot of sense. I think that knowledge will be useful. Thanks.

intensely_human,

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: github.com/thoughtbot/…/factory_bot.gemspec

It defines, among other things:

  • author
  • license
  • dependencies
  • version
  • name
  • description
  • link to project webpage
Chobbes,

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.

intensely_human,

It never hurts to start with help man

intensely_human,

My recommendation for learning this stuff is ChatGPT, ideally version 4

where_am_i, (edited )

for ffs, please, ban this troll.

And if you’re a real human, I have a recommendation: buy a dictionary. Once you can read simple words, move to coffee maker manuals. From there to children’s books. And so, maybe one day, you will be able to figure out how to read a basic “getting started with ubuntu” article or something. You just switched to a complete different operating system and act so entitled as in “where is the start menu, this OS is so confusing”.

The Linux community isn’t toxic, it’s the average non-linux user being as dumb as rock. And on top of that is also lazy.

Critical_Insight,

You seem nice

erwan,

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.

risencode, (edited )

I just don’t get why on windows and mac I can download the app from their site, install it and it just works

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.

freeman,

I don’t understand. If I go to their site at 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.

where_am_i, (edited )

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.

library_napper,
@library_napper@monyet.cc avatar

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

iusearchbtw,
@iusearchbtw@lemmy.sdf.org avatar

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.

ursakhiin,

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.

bizdelnick,

Yes, it is. You can achieve the same usung GUI of course, but this would be more difficult to describe because there are multiple GUIs and they change with new distro versions.

This is more convenient than “downloading and intalling” a file because you don’t have to track updates manually, the package manager will do this for you. You have to read something about what package manager is and how does it work. It is the main concept of all linux distros except LFS.

bizdelnick,

This wiki article contains the information you need. It can seem too long, but I highly recommend to read it.

intensely_human,

I have never regretted time spent reading documentation.

funkajunk,
@funkajunk@lemm.ee avatar

Open the terminal and copy and paste the commands found in their install guide for Ubuntu:


<span style="color:#323232;"># Download signing key 
</span><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;">
</span><span style="color:#323232;"># Add the stable repository
</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;">
</span><span style="color:#323232;"># Install 
</span><span style="color:#323232;">sudo apt update
</span><span style="color:#323232;">sudo apt install mullvad-vpn
</span>
MyNameIsRichard,
@MyNameIsRichard@lemmy.ml avatar

Normally you’d just run sudo apt install … but in this case you are adding a new repository so you have to follow the extra steps of adding the signing key and so on first.

Wulpo,

AFAIK, most distros will also have a package manager/software center where you install flatpaks (or snaps if you are on ubuntu). Think of flatpaks akin to mobile apps where everything needed is all together in one package. Not all apps will be flatpaked though, and VPNs tend to be nearly always direct binaries due to needing some higher level permissions than what flatpaks will allow.

Essentially, what im saying is no, not all apps need to be manually installed, but some might need to for one reason or another. And sometimes, knowing a little about how some of these apps are installed might actually help you understand linux a little more (it has in my case)

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.

luthis,

Can’t I just download a file and install it?

Yes, there are instructions on the page for that, the section is titled ‘Installing the app without the Mullvad repository’

luthis,

As a side note, dealing with adding repos and keys and all that is something I will never miss from apt. I use Arch and installing things is usually as simple as… well let me check.


<span style="color:#323232;">$ yay mullvad
</span><span style="color:#323232;">...
</span><span style="color:#323232;">2 aur/mullvad-vpn-bin 2023.6-1 (+86 1.36) 
</span><span style="color:#323232;">    The Mullvad VPN client app for desktop
</span><span style="color:#323232;">1 aur/mullvad-vpn 2023.6-1 (+126 2.10) 
</span><span style="color:#323232;">    The Mullvad VPN client app for desktop
</span><span style="color:#323232;">==> Packages to install (eg: 1 2 3, 1-3 or ^4)
</span><span style="color:#323232;">==> _
</span>

And it’s option 1. So easy. Type 1 and press enter and you’re done.

TrickDacy,
@TrickDacy@lemmy.world avatar

I find having these options confusing and I am not a newb

user224,
@user224@lemmy.sdf.org avatar

Usually the *-bin version just means it downloads the already compiled binaries instead of compiling the program on your computer.

You should also always check the PKGBUILD for something suspicious. AUR packages are put there by users, and are not verified.

TrickDacy,
@TrickDacy@lemmy.world avatar

Interesting. Thanks.

be_excellent_to_each_other,
@be_excellent_to_each_other@kbin.social avatar

Both options will install the Mullvad client from the AUR. (If you use an arch derivative, that already tells you some things. If you don't, then you are missing some context.) The first option will install from binary, the second will compile from source. Which you choose is up to you.

If you blindly chose one over the other because you didn't know, worst case you end up being impatient if it takes awhile to compile from source.

amju_wolf,
@amju_wolf@pawb.social avatar

No, worst case you install actual malware. Anyone can upload to the AUR, not just trusted users.

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)).

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.

bbbhltz,
@bbbhltz@beehaw.org avatar

You can achieve this through graphical utilities.

Self-updating apps aren’t a big thing on Linux, so the Windows way isn’t an option…

The signing key is important for security reasons, so you definitely need to add that. After adding the repo you can just use Synaptic or whatever app store thingy Ubuntu uses.

Most of the time you shouldn’t need to fiddle with the command line and the apps you will need are available through the Software Centre and the entire process will work like on Windows.

For me, Linux was the first operating system I used that had an app store or software centre and I was pretty glad to not need to…

  • open a browser,
  • navigate to a site,
  • (hope it is the right site…)
  • download a binary executable,
  • open a file explorer,
  • launch the binary,
  • click through a list of options and agreements,
  • and finally delete the binary.
SmoochyPit,

Asking why something is the way it is makes you more of a “Linux user” than many.

You make a valid criticism; there’s definitely a learning curve to installing software if you choose to do it that way (since it’s not similar to other OSs), and it’s not automatically explained to new users by using the OS.

Here’s the understanding of it I’ve come to, if you’re interested:

Like others have said, the .deb file would be the equivalent of an .exe file on Windows. Like many .exe files, unless they include an auto-updater, they won’t automatically update.

A key difference I would like to point out is that Linux package managers often update and manage parts of the OS in addition to extra software. Windows and macOS both update their OS separately.

“Ubuntu Software Center” is similar to the “Microsoft Store” on Windows and the “App Store” on macOS. Like those, it’s user friendly and provides automatic updates, but it also doesn’t have every app. You can ensure those apps are safe because the company behind the OS verifies them.

“apt-get” is the default package manager for Ubuntu. That is the tool doing the heavy lifting underneath, and what those commands Mullvad gave are for.

Mullvad could have provided a script to download and run that executes those commands for you, but then you wouldn’t know what it’s doing, especially with it needing admin permission. With how security-oriented Mullvad’s brand is, I think that’s one potential reason they explain the steps and have the user do it instead.

bizdelnick,

the .deb file would be the equivalent of an .exe file on Windows

Not .exe. If you want to find an equivalent, .msi is the closest.

Nibodhika,

This is one of the hardest walls for people to jump over mentally, from scavenging the internet for binaries to using a package manager.

I think ideally one should understand what they’re doing, I think that if you did you would realise it’s not hard, just different from what you’re used to. Usually you install things using the graphical package manager, of which there are a lot, since I don’t know which one you are using nor have I used any of them in a long while, I’ll use the terminal as an example (same reason the site uses terminal commands), but all of this is almost assuredly possible via GUI.

To install things you usually do sudo apt install , this is a huge advantage on Linux, it works similar to your phone in that everything gets updated together but also it installs dependencies separately, which means that instead of having 10 copies of the same library for 10 programs that use it (like on Windows) you get a single one, which is part of the reason binaries are smaller on Linux.

The problem with this approach is that some programs are NOT listed there, the only programs there are the ones the maintainers of your distro (Ubuntu in this case) can review and approve. So you can have a lot of different solutions for this:

The first and most obvious for Windows users is to download the .deb from the website and just run that like you would a binary on windows, i.e. double-clicking it, or from the terminal you can run sudo dpkg -i . This works, but you lose the advantages of a package installed via your package manager, i.e. you would get the same experience as on windows, so it’s not ideal.

The second way is the one they’re describing, essentially you’re adding a new repository to the package manager, that the people who wrote the program are maintaining (instead of Ubuntu guys), this is a two step process, sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc that command is downloading the file https://repository.mullvad.net/deb/mullvad-keyring.asc and putting it in /usr/share/keyrings/mullvad-keyring.asc, this is needed because repositories are not trusted by default, that would be a security nightmare, you can do this via GUI if your problem is with the terminal , just download the file and copy it to that location, it’s just harder to explain than giving you a command. Then it’s adding the repository to the repository list, the command is 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 that command has a lot to unwrap, in essence it’s editing the file /etc/apt/sources.list.d/mullvad.list and writing a line like deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=amd64] https://repository.mullvad.net/deb/stable focal main" there, but because the guy who wrote this doesn’t know your architecture (e.g. amd64) nor your version (e.g. focal) he wrote a command that gets that information from your system, you can instead write the file yourself if you know those. Then install via package manager as normal.

There’s a third way which is more recent which is install via snap/flatpak which is similar to install via package manager, except you don’t add new repos.

There’s a fourth way which is manually, usually when you compile stuff you install them manually.

I know it’s a lot to take in, but I’m of the opinion that if you understand what’s happening it makes things easier.

HuntressHimbo, (edited )

Just as an addendum to your answer. In the command writing to mullvad.list the | sudo tee /etc/apt/sources.list.d/mullvad.list is using two helpful linux utilities to modify the command. The first is the | which is called a pipe and connects the text output of one program to the text input of another. The pipe is connecting the output of echo which simply prints a string, in this case composed of the outputs of several other commands to the program tee. Tee which is given admin privileges by the sudo takes an input stream and splits it between two files. In this case those are mullvad.list and since no other was provided stdout the output pipeline of the terminal running the command.

EDIT:

In the interest of further completeness. Another utility used in those commands is the command substitution operator of sh. So when the terminal is interpretting text $(some command) gets substituted out for the text output by the command in the parentheses. It is another common way of connecting commands on the shell to allow for more flexible and powerful commands.

Kecessa,

The problem is that for most users, when their setup is completed they won’t need to play with it for a while so after that any time they need to install something new through the terminal it means losing time to find instructions again.

Nothing is learned, to the eyes of a casual users it’s just meaningless entries getting copy/pasted and it’s information getting repeated again and again and again just with slightly different entries for each program. Meanwhile “how to install a program on Windows” would basically require one page on the whole internet to cover 99% of situations: “Download the install file, double click it, follow the on screen instructions to automatically install the program”.

Nibodhika,

The problem is that for most users, when their setup is completed they won’t need to play with it for a while so after that any time they need to install something new through the terminal it means losing time to find instructions again.

Which is why it’s better to understand what you’re doing than blindly copying pasting. You won’t need to remember these since whatever you want to install if it’s not on the repos you’ll have to google it same as if you were on Windows.

Also on Windows the steps are: Download the install file, double click it, follow the on screen instructions to automatically install the program, then every week or so go back to the website, check if a new version was released, if so download it and install it again. If the configuration would be destroyed by doing this first, make a backup first, if the new version is not backwards compatible for configuration move the existing configuration changes so that you get the new default after install and can apply your changes afterwards.

That’s closer to the truth, and you need to do that weekly for every one of the dozen or hundreds of programs a person has, no wonder people don’t update their programs on Windows and become susceptible to lots of exploits over time.

Also, read my option 1, which is what most websites offer you first, i.e. download a .deb and run it which is the equivalent of Windows, with all of its downsides. For example if you go to that website that OP posted and click on downloads you can select Windows, Mac or Linux, and you can download an installer that way and be done with it. But only Linux has a better option that takes a couple more steps but saves you lots of time in the future.

Kecessa,

then every week or so go back to the website, check if a new version was released, if so download it and install it again

Don’t know what kind of program you’re running but… No.

Also if you want adoption you need to make your product easy to use and not ask them to become experts at how things work. Do you think all bike riders know how to adjust their derailer or even care to know? No, because people have other things they care about. Same guess 6 for computers, if Linux requires users to understand how to do things manually in the terminal then the “year of the Linux computer” will never happen.

atzanteol, (edited )

the “year of the Linux computer” will never happen.

It won’t, that’s fine. People who don’t want to lean anything about computers use iOS and Android now. And that’s fine. I never want Linux distros to become like that.

someacnt_,

Honestly the more I hear “year of linux will never happen”, the more I am convinced it might come. I see ppl being defensive against a new trend

MyNameIsRichard,
@MyNameIsRichard@lemmy.ml avatar

if Linux requires users to understand how to do things manually in the terminal

It doesn’t require it but it is often easier. It’s also alien when you’re new.

Nibodhika,

Don’t know what kind of program you’re running but… No.

My Linux has updates every week, which means that if I was on Windows to keep everything the same up to date I would need to check every website to see which app released this week, maybe this week Firefox had a new release, maybe next week it’s mullvad VPN, and next week is the NVIDIA driver, but if I hadn’t checked all of them I would not know which ones have a new release.

Also if you want adoption you need to make your product easy to use and not ask them to become experts at how things work

Agreed, but also you should have options so that power users can take advantage of it.

Do you think all bike riders know how to adjust their derailer or even care to know?

Do you think that bikes should not have gears since most people don’t know how they work? No, because even if you don’t understand the mechanics you can understand the general terms, and even if you don’t understand gears you can just not use them, same as a package manager. Options is always better.

if Linux requires users to understand how to do things manually in the terminal then the “year of the Linux computer” will never happen.

It doesn’t require it, you’re ignoring the fact that OP could have just clicked download and download an installer same as he would on Windows. But if you can use the terminal and understand package managers you can use Linux in a way that Windows is impossible, if you can’t you can still use Linux in the same way you would windows with all of the sales downsides.

woelkchen,
@woelkchen@lemmy.world avatar

Many, perhaps even most, installation guides for software use commands because the graphical alternatives can vary wildly between desktops and distributions. So using commands in guides is usually the more likely to work.

That said, what Mullvad does is stupid. The downloadable deb and rpm files should just initialize the update repository. That is what Google does with their Chrome download. Basically download the file, double click on it, confirm installation. That’s it. Users don’t need to do that manually for Chrome.

Luckily, there are only a few cases remain for this type of installation. Most regular things should be either in your distribution’s regular repository or on Flathub.

techognito, (edited )
@techognito@lemmy.world avatar

If you go to: mullvad.net/en/download/vpn/linux

And click the “download .deb” button (It says underneath “Works on Ubuntu 20.04+, Debian 11+ (64bit only)”. As long as your Ubuntu is up-to-date, this will work fine)

you get a file (“MullvadVPN-2023.6_amd64.deb”) you can run just like on Windows (similar to MullvadVPN-2023.6.exe)

opening the file should open a GUI for installing the file

Keep in mind, to update Mullvad VPN, you would need to download a newer .deb file (after an update is released). It shows the latest version above the download buttons, below the “Mullvad VPN for Linux text” This is the same as how it is on Windows

Edit: This is not intended as good advice, just a simple way to install Mullvad VPN. The smartest solution would be to add the repo.

2nd Edit: While this is how Mullvad provides their software, it is never ideal to install random .deb packages or add third party repos without being sure that the ones who provided the package/repo is trustworthy.

where_am_i,

No, you don’t. Bad advise. Use repos.

Adanisi, (edited )
@Adanisi@lemmy.zip avatar

And please explain how using the .deb from Mullvad, is worse than using a repo (also from Mullvad) which provides you that same .deb??

techognito,
@techognito@lemmy.world avatar

Only thing I can think of is by adding the repo you get updates with your system. This makes it more secure by having patched software.

Adanisi,
@Adanisi@lemmy.zip avatar

You’d be right, but this program has an auto-update mechanism anyways.

techognito,
@techognito@lemmy.world avatar

It might not be good advice, but that was not what OP asked for.

My comment was meant as a beginner-friendly way to install Mullvad VPN on Ubuntu, and not unsolicited advice telling them to learn something that should not be needed for daily computer usage. And while adding the repo might be the better solution, that would require the use of the terminal, and as multiple people have proven to me, that wouldn’t be a friendly way to introduce Linux to someone just starting out.

You don’t teach someone to swim, by dropping them in the middle of the pacific.

0xtero, (edited )

As others have already pointed out, a lot of Linux software is installed from repositories in a standard way, and once you do that, it updates automatically.

However, as you’ve already discovered, there’s more than one way to install Linux software. Repositories are still the most common way, but installing single .deb’s (Debian based distributions) or .rpms (RedHat packaging format) is still there and there are more like Snap, Flatpak and Appimage. You can also often just download the source and compile it yourself. It’s a very diverse ecosystem, not like the controlled worlds of WIndows and Mac.

In this case you can download the .deb file, and pretty sure you can even install it through the file manager, just like in Windows (I don’t use Ubuntu, but I think it will just start GUI installation if you double-click on a .deb file).

But lot of things in Linux are still done through the terminal, like changing configurations and, yes, installing things.

Getting used to it takes a while, especially if you’re not used to modern Windows administration through PowerShell.

The important part is trying to figure out what each of the commands do and that the output actually means. Software that supports Linux normally has very clear instructions (like in this case), but it does require willingness to change habits, technical curiosity and some trial and error (patience). It’s not quite as polished experience as the commercial OS’s. There’s still a lot of rough edges for the user.

Good luck on your Linux journey!

  • 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 20480 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 143360 bytes) in /var/www/kbin/kbin/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php on line 260