this post was submitted on 01 Jan 2024
160 points (81.5% liked)

Linux

48008 readers
877 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

https://mullvad.net/en/help/install-mullvad-app-linux

Trying to install VPN and these are the instructions Mullvad is giving me. This is ridiculous. There must be a more simple way. I know how to follow the instructions but I have no idea what I'm doing here. Can't I just download a file and install it? I'm on Ubuntu.

you are viewing a single comment's thread
view the rest of the comments
[–] Chobbes@lemmy.world 5 points 10 months ago (1 children)

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@feddit.uk 1 points 10 months ago (3 children)

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@lemmy.ml 7 points 10 months ago* (last edited 10 months ago) (2 children)

If you stick with it you'll eventually start to understand what all the jargon means.

  • sudo is kind of like "run as admin" in windows. It runs whatever command as root(admin) instead of as your user. To use it you just add sudo in front of the command. Ex. "apt-get update" becomes "sudo apt-get update"

  • apt-get is the command that controls your Ubuntu Repository. "apt-get update" basically checks for updates for everything on your computer. Then "apt-get upgrade" downloads and installs all those updates. And "apt-get install <app/package name>" is how you install apps that are in your distros Repository.

  • A Repository is basically an app store for your distribution. Each Linux distribution usually has their own. And they have different software(apps) available in them. If a app you want is not in your repo there are different options to install it. That was probably the hardest part for me to understand when I started. But now days the easiest option is to use snap or flatpak to install something that's not in your distros Repository.

  • As far as I understand, a package is just another way of saying app or software program. There might be a technical difference. But when you download a package you're basically just downloading the program/software/app.

  • There are also package dependencies which is the other software that is required to run the software you're trying to install. When you run "sudo apt-get install ". You will see a list of packages that will be installed. This includes all the dependency packages. Which are the packages that are needed to run the one that you're trying to install.

Some linux distribution try to give you a GUI for everything. But its definitely worth learning how to do stuff in the terminal. Once you learn it you'll realize why it is so much better than a GUI.

[–] Chobbes@lemmy.world 3 points 10 months ago (1 children)

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@lemm.ee 1 points 10 months ago

It never hurts to start with help man

[–] intensely_human@lemm.ee 3 points 10 months ago (1 children)

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@lemmy.ml 2 points 10 months ago (1 children)

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

[–] intensely_human@lemm.ee 2 points 10 months ago

I realized there’s quite a bit more metadata that a package provides to its package management system. Here’s an example package definition, in the programming language Ruby: https://github.com/thoughtbot/factory_bot/blob/main/factory_bot.gemspec

It defines, among other things:

  • author
  • license
  • dependencies
  • version
  • name
  • description
  • link to project webpage
[–] intensely_human@lemm.ee 0 points 10 months ago

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