<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohamed Baig</title>
    <description>The latest articles on DEV Community by Mohamed Baig (@mbbaig).</description>
    <link>https://dev.to/mbbaig</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F762968%2F967fe974-f284-476e-8b86-8234a01baf9b.png</url>
      <title>DEV Community: Mohamed Baig</title>
      <link>https://dev.to/mbbaig</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mbbaig"/>
    <language>en</language>
    <item>
      <title>Linux basics: how to pick a distribution? I'll explain a clear process for picking the best distribution for you</title>
      <dc:creator>Mohamed Baig</dc:creator>
      <pubDate>Fri, 23 Dec 2022 06:01:20 +0000</pubDate>
      <link>https://dev.to/mbbaig/linux-basics-how-to-pick-a-distribution-ill-explain-a-clear-process-for-picking-the-best-distribution-for-you-15kp</link>
      <guid>https://dev.to/mbbaig/linux-basics-how-to-pick-a-distribution-ill-explain-a-clear-process-for-picking-the-best-distribution-for-you-15kp</guid>
      <description>&lt;p&gt;In the world of Linux there are many, many distributions. With all of this choice, it is understandable that a new user would be easily confused. As the Linux challenge from LTT shows there aren't a lot of good articles out there to help the new comers.&lt;br&gt;
So, let's answer the question of how to pick a the right Linux distribution for you.&lt;br&gt;
If you are unfamiliar, I discussed what a distribution in a previous article. Similar ideas may come up here as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Distributions
&lt;/h2&gt;

&lt;p&gt;There are three types of distributions, long term support, rolling release, and short term support (not the official name, I just decided to call them that) distributions. Short term support distributions can be a good middle ground between long term support and rolling release. Let's get into the details of each.&lt;/p&gt;

&lt;p&gt;Long term support (LTS) distributions are exactly that, they are supported with security updates for a long time. Usually three to five years. Some server based distributions are supported for even longer. These types of distributions lock-in the application, and library versions they ship. So you will not get the latest and greatest software. But if you don't need that, and you need an extremely stable system, then this is the kind of distribution you want. The best part modern packaging systems like Flatpak is that you can still get the latest applications with a stable, LTS base operating system.&lt;/p&gt;

&lt;p&gt;Rolling release distributions are the complete opposite of LTS distributions. They update all applications and libraries very frequently and they make sure latest and greatest software is available. This type of distribution will also have the opposite pros and cons than the LTS distributions. For example, you get the latest software but that comes at a cost of stability. There is testing that happens to make sure nothing breaks in a rolling release distro. This testing does ensure that rolling release distributions remain stable for most users. However, there will be breakages. Sometimes the distribution breaks because of a bug, other times the breakages are intentional, where some manual changes/deletions would be required for the upgrading to the latest release.&lt;/p&gt;

&lt;p&gt;Short term support releases are the middle ground for the LTS and Rolling release distributions. This is the most common type of distribution. These types of distributions have a new release every six months or so. And generally support a new release for nine to 12 months. With this type of distribution you get a new release every six months, which contains software updates, new development and features, and these changes are generally better tested. There some distributions that keep most software updated even between six month releases. These distributions can also bet considered semi rolling release distributions. They try to capture the best of both LTS and rolling release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions to ask yourself
&lt;/h2&gt;

&lt;p&gt;What are my hardware needs/requirements?&lt;br&gt;
Your hardware needs should be your top priority for picking a distribution. After all, if your hardware isn't supported by the distribution you pick, than you will not have a good time with Linux. If you have the latest/new hardware (CPU, GPU, Wifi, Sound, etc) than you need to the make sure your distribution keeps the Linux kernel, firmware, and drivers up-to-date. For this use-case, rolling releases, like Arch Linux, Manjaro, or OpenSuse Tumbleweed, usually work well. But if you looking for more stability pick a short term support distribution that keeps the Linux kernel updated between releases, like Fedora Workstation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I make sure my hardware is  compatible with my Linux distribution?
&lt;/h3&gt;

&lt;p&gt;Most Linux distributions include a live session when you try to install them. This is the perfect time to try out everything. In the live session you will get most of the functionality you get post installation. Some installers drop you straight into the live session and then provide a shortcut to the installation application. Others provide a try or install options at the beginning. If you're wondering how you can even install a Linux distribution: I covered it in a previous article, check it out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need the latest and greatest software?
&lt;/h3&gt;

&lt;p&gt;If the answer is yes than a rolling release, like Arch or OpenSuse Tumbleweed is the best option for you. A good alternative is a short term support distribution like Fedora Workstation, and KDE Neon are good keeping packages up-to-date in between release cycles. Otherweise, if the answer is no, than an LTS release like Ubuntu LTS, Linux Mint, or Debian are for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Am I okay with proprietary software or only want open-source software?
&lt;/h3&gt;

&lt;p&gt;If you need to use proprietary software, specifically multimedia codecs or drivers, than your primary concern needs to be popularity. By the numbers, the most popular Linux distribution is Ubuntu. There is a big advantage to being the most popular, Ubuntu is often the first choice for support when companies are looking to support Linux. Steam was only available on Ubuntu to begin with. Although there are some sources that say it's popularity is waning. General rule for this question, is pick a distribution that has active, relatively large community.&lt;/p&gt;

&lt;h3&gt;
  
  
  What if I don't want to tinker and just need to get work done?
&lt;/h3&gt;

&lt;p&gt;Most mainstream Linux distributions are going to come with batteries included. Meaning you'll get a browser, office suite, audio and video players, and PDF viewer included. With Linux in general you don't even have to worry about drivers for the most part (But still make sure your hardware is compatible, see the first question). You still have a to worry about Nvidia drivers, since they are the only major hold out. Most distributions do make those drivers easy to get these days. There is either dedicated driver utility or you will be able to get straight from the software store. If you have all AMD or all Intel, you don't have to worry about drivers. So you'll be fine with most mainstream distributions, however, short term support release distributions will give you the best experience over all.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which distribution is best for gaming?
&lt;/h3&gt;

&lt;p&gt;General rule for gaming is that you should have the latest Kernel and the latest display drivers. For Nvidia users, most distributions package and update their Nvidia driver some time after Nvidia's official release. So most distributions will offer you regular updates for the Nvidia driver. For AMD and Intel, the story is a little bit different, these drivers are baked into the Linux kernel and have an addition package called mesa. These two components combine to give the most updated, open-source, driver for both AMD and Intel. So you will need a distribution that keeps these two components updated on regular basis. Typically a rolling release distribution, or a short term support distribution will do the job.&lt;/p&gt;

&lt;p&gt;Of course this is not an exhaustive list of all the questions you may have. Rather, I hope you get the idea between which type of distribution to pick for your use case. When it comes to the hundreds of the distributions out there, I would suggest to only look at the mainstream distributions if you're beginner. These include Ubuntu, Fedora, Linux Mint, Pop!_OS, OpenSuse, Manjaro, ElementaryOS, and others. When you more proficient with Linux, and would like to learn more, then you get into more involved Linux distributions like Arch, or Gentoo. For now I hope that was helpful.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Linux basics: common terminology of the Linux world</title>
      <dc:creator>Mohamed Baig</dc:creator>
      <pubDate>Sat, 02 Jul 2022 13:10:41 +0000</pubDate>
      <link>https://dev.to/mbbaig/linux-basics-common-terminology-of-the-linux-world-17jk</link>
      <guid>https://dev.to/mbbaig/linux-basics-common-terminology-of-the-linux-world-17jk</guid>
      <description>&lt;p&gt;There is often confusion among Linux beginners about a lot of the technologies and terminologies that Linux veterans might refer to in the forums around the internet. This is can be an problem because forums are often the only way to get support with an issue a user might be facing on their PC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Distro
&lt;/h2&gt;

&lt;p&gt;Distro is short for distribution. Distributions are collections of packages, and configuration that combine to make a usable operating system. The differences in distributions comes down to the default applications, and configuration that they ship with. Otherwise, almost everything can be replicated on most other distributions. Often when someone is considering trying out a Linux operating system, they start with a search for best distributions for their use case. But that kind of a search often leads to a fringe OS that may not have an active community or a great support system. I'll explore better questions to ask in a future post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kernel
&lt;/h2&gt;

&lt;p&gt;The Kernel is the core of the whole operating system. All operating systems, including Windows, and macOS, have a kernel. People widely confuse Linux as the operating system itself. A distribution is synonymous with operating system. The kernel provides vital low level functionality like hardware drivers, CPU scheduling, and memory management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desktop Environment
&lt;/h2&gt;

&lt;p&gt;Desktop environments are a sub-set of distribution components that create a usable WIMP environment. Examples of desktop environments are Gnome, KDE, or XFCE. There are of course more desktops environments in the Linux world. And more are being developed every day. Most popular distributions customize or ship the vanilla version of these desktop environments to provide a complete OS experience.&lt;br&gt;
Window Manager/Display Server&lt;/p&gt;

&lt;p&gt;The window manager can either be a component of the desktop environment or individually installed in a system. It does exactly what it says. It manages everything to do with windows. Drawing, placement, resizing, updates, etc are all part of the window manager functionality. Gnome's Mutter, and KDE's KWin are examples of window managers/display servers. An example of an individual window manager is i3.&lt;/p&gt;

&lt;h2&gt;
  
  
  Display Manager
&lt;/h2&gt;

&lt;p&gt;A display manager is responsible for showing the login screen and allowing the user to login. Display manager can be confused with window managers. Some examples of display managers are, GDM (Gnome Display Manager), SDDM (Simple Desktop Display Manager), or LightDM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Script
&lt;/h2&gt;

&lt;p&gt;A script is simple a file of code that a user can execute. Scripts are very powerful and can do everything from install a program to ruin your entire system. Many fixes proposed in the various distributions forums out there ask the user to run a script to solve a problem. This is very problematic in a couple of ways. The user has may have no idea what the script does or they might lack the knowledge to properly evaluate the script code. And the script itself could be malicious. If a solution to a problem requires a script, be very careful when you run it. Make sure to have a backup.&lt;/p&gt;

&lt;p&gt;These scripts are run inside of a shell most commonly using a CLI. We'll discuss these in the next sections.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;

&lt;p&gt;CLI stands for command line interface. This is the command prompt that was common during the old DOS days. And this is still very common today on Linux based operating systems. Programs written for the CLI are generally considered to be for the advance users. Except they are just like any other program, they just require typing out the command to interact with them. In-fact these programs can be much more powerful because of the way Linux/Unix CLI works. These programs are largely designed to work together. The output of one command can be fed as the input for another. This method can be used to chain many commands together to create a pipeline. These pipelines are the real power of the CLI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shell
&lt;/h2&gt;

&lt;p&gt;The shell is the environment in which programs are run. There are graphical shells like Gnome. There are also CLI shells like BASH, Zsh, or Tcsh. These environments can provide vastly different features and properties for the user. Even in the CLI, where these is just a simple text prompt, can provide various completion, listing, colouring, and display features. BASH is the most common CLI shell used in Linux distributions and Gnome is the most common GUI shell.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to install Nextcloud using Ansible and Terraform?</title>
      <dc:creator>Mohamed Baig</dc:creator>
      <pubDate>Sun, 17 Apr 2022 01:05:21 +0000</pubDate>
      <link>https://dev.to/mbbaig/how-to-install-nextcloud-using-ansible-and-terraform-5a1a</link>
      <guid>https://dev.to/mbbaig/how-to-install-nextcloud-using-ansible-and-terraform-5a1a</guid>
      <description>&lt;p&gt;So I have been working on removing Google services from my life. Some major services include GDrive, Calendar, Gmail, and Google Photos. Of course trying to host all these myself will be expensive right? It actually doesn't have to be. Nextcloud is all in one solution that helps with most of above out-of-the-box. Email is the odd-man-out but I will taking a look at that in a future post.&lt;/p&gt;

&lt;p&gt;Nextcloud is an excellent open-source solution for self hosting files in the cloud. Not only does it provide storage, sharing, and search functionality, but also provides a calendar, contacts, mail, and much more through the market place. There are even capabilities to edit office documents in the browser, just like google drive. Without further delay, let's install Nextcloud.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ℹ️&lt;br&gt;
I will be installing Nextcloud to Digital Ocean. However, you can install Nextcloud on your cloud of choice.&lt;br&gt;
Creating the infrastructure&lt;br&gt;
Using Terraform&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before we create the infrastructure, here is what the project structure looks like. For now we will just be working in the nextcloud.tf file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── nextcloud.tf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We will be creating the infrastructure using Terraform. Terraform is a great tool that allows us to automate infrastructure management. We will be using the following Terraform spec to create a project, a server, a file storage bucket, and an alert.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform {
  required_providers {
    digitalocean = {
      source = "digitalocean/digitalocean"
      version = "~&amp;gt; 2.0"
    }
  }
}

# Set the variable value in *.tfvars file
# or using -var="do_token=..." CLI option
variable "do_token" {
  type = string
}

variable "do_spaces_access_id" {
  type = string
}

variable "do_spaces_secret_key" {
  type = string
}

variable "ssh_key_id" {
  type = number
}

variable "alert_email" {
  type = string
}

# Configure the DigitalOcean Provider
provider "digitalocean" {
  token = var.do_token
  spaces_access_id = var.do_spaces_access_id
  spaces_secret_key = var.do_spaces_secret_key
}

resource "digitalocean_droplet" "[server_name]" {
  image  = "ubuntu-20-04-x64"
  name   = "nextcloud-server-1"
  region = "tor1"
  size   = "s-1vcpu-2gb"
  monitoring = true
  ssh_keys = [var.ssh_key_id]
  tags = ["document", "nextcloud"]
  droplet_agent = true
  graceful_shutdown = true
}

resource "digitalocean_spaces_bucket" "[bucket_name]" {
  name = "com.sfisoftware.documents"
  region = "nyc3"
} 

resource "digitalocean_project" "[project_name]" {
  name        = "Documents"
  description = "Project for housing documents."
  purpose     = "Document hosting"
  environment = "Production"
  resources   = [
    digitalocean_droplet.nextcloud_server.urn, 
    digitalocean_spaces_bucket.sfisoftware_documents.urn
  ]
}

resource "digitalocean_monitor_alert" "cpu_alert" {
  alerts {
    email = [var.alert_email]
  }
  window      = "5m"
  type        = "v1/insights/droplet/cpu"
  compare     = "GreaterThan"
  value       = 70
  enabled     = true
  entities    = [digitalocean_droplet.nextcloud_server.id]
  description = "Alert about CPU usage"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the init command in your project directory to download and install any providers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should change the resource names to your liking. Make sure you have API access to your cloud of choice. For me I have an API token in my environment which I will be using. Also, do_spaces_access_id and the do_spaces_secret_key are for the S3 like bucket access. This bucket can be used from within Nextcloud for easy expandable storage. Now let's run the following command to start the creation process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform plan \
    -var "alert_email=$ALERT_EMAIL" \
    -var "do_token=$DIGITAL_OCEAN_TOKEN" \
    -var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" \
    -var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" \
    -var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"

Code block for Terraform plan command

Now the plan is created let's apply it to the cloud.

terraform apply \
    -var "alert_email=$ALERT_EMAIL" \
    -var "do_token=$DIGITAL_OCEAN_TOKEN" \
    -var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" \
    -var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" \
    -var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will get a prompt to approve the change. You have to type yes to continue. At the end of this command, we will have a virtual machine, an S3 like bucket, an alert/monitor all assigned to a new project.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ℹ️&lt;br&gt;
If you want to destroy the infrastructure and start again just use the following command&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform destroy -var "alert_email=$ALERT_EMAIL" -var "do_token=$DIGITAL_OCEAN_TOKEN" -var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" -var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" -var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to install Nextcloud?
&lt;/h2&gt;

&lt;p&gt;Now that our infrastructure is setup, let's create the relevant Ansible files. Run the following command to create the nextcloud-role .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ansible-galaxy init nextcloud-role
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the command is done, create the following files manually: playbook.yaml in the root of the project, docker-compose.yaml.j2 in the templates folder under the nextcloud-role, and requirements.yaml in the root again.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── nextcloud-role
│   ├── defaults
│   │   └── main.yml
│   ├── files
│   ├── handlers
│   │   └── main.yml
│   ├── meta
│   │   └── main.yml
│   ├── README.md
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   │   └── docker-compose.yaml.j2
│   ├── tests
│   │   ├── inventory
│   │   └── test.yml
│   └── vars
│       └── main.yml
├── nextcloud.tf
├── playbook.yaml
├── requirements.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your project folder should look like the above. Now copy/paste the following content into requirements.yaml and then run the command to install dependencies.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
roles:
  - name: geerlingguy.certbot
    version: 5.0.0

  - name: geerlingguy.docker
    version: 4.1.3

  - name: geerlingguy.nginx
    version: 3.1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ansible-galaxy install requirements.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the dependencies have been installed, it's time to create the main task. Open up the tasks/main.yml file and paste the following inside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
- name: Create docker-compose file
  template:
    src: docker-compose.yaml.j2
    dest: /root/docker-compose.yaml

- name: Deploy Nextcloud stack
  command: docker-compose up -d

- name: Run Nextcloud cron every 5 minutes
  ansible.builtin.cron:
    name: "Nexcloud cron"
    minute: "*/5"
    job: "docker exec -u www-data root_app_1 php cron.php"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All we do with the above tasks is copy the Docker compose file to the remote server, start the Nextcloud instance using docker-compose, and create a CORN job that runs Nextcloud's background jobs.&lt;/p&gt;

&lt;p&gt;Next, it's time to create the docker-compose.yaml file. We're going to use the Jinja2 templating format so the full file name will be docker-compose.yaml.j2. The following are the contents of the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb:10.7.3
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_ROOT_PASSWORD') }}"
      - MYSQL_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_PASSWORD') }}"
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:22.2.6
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_PASSWORD') }}"
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the compose file we specify the database to use, and the version Nextcloud to be used. At the time of writing, 22.2.6 is the latest production ready version. You can update this version number with whatever the latest version is. We also specify here the various database, and user information. I'm using environment variables to specify the sensitive values. Take note that the port Nextcloud is running on is 8080. Don't worry, we will be proxying and securing the Nextcloud instance with Nginx and Certbot.&lt;/p&gt;

&lt;p&gt;Lastly, it's time to create a playbook.yaml in the root of the project. Copy/paste the following into the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;---
- hosts: all
  vars:
    certbot_admin_email: "{{ lookup('env', 'ALERT_EMAIL') }}"
    certbot_create_if_missing: true
    certbot_create_standalone_stop_services: []
    certbot_certs:
      - domains:
          - [DOMAIN]
    nginx_upstreams:
      - name: nextcloud
        strategy: "ip_hash" # "least_conn", etc.
        servers:
          - "localhost:8080"
    nginx_vhosts:
      - listen: "80"
        server_name: "[DOMAIN]"
        return: "301 https://[DOMAIN]$request_uri"
        filename: "[DOMAIN].80.conf"
      - listen: "443 ssl http2"
        server_name: "[DOMAIN]"
        filename: "[DOMAIN].443.conf"
        extra_parameters: |
          location / {
            proxy_buffering    off;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Scheme $scheme;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   Host $http_host;
            proxy_set_header   X-Forwarded-Proto https;
            proxy_pass         http://nextcloud;
          }

          ssl_certificate     /etc/letsencrypt/live/[DOMAIN]/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/[DOMAIN]/privkey.pem;
          ssl_protocols       TLSv1.1 TLSv1.2;
          ssl_ciphers         HIGH:!aNULL:!MD5;
  roles:
    - role: geerlingguy.certbot
    - role: geerlingguy.docker
    - role: geerlingguy.nginx
    - role: nextcloud-role
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the playbook file we specify which Ansible roles we want to run and which variables they should use. At the top we specify some Certbot variables. Make sure to set your email for Certbot SSL alerts. Then we set our Nginx upstream, which is our Nextcloud instance, and a couple of vhosts for Nginx. Notice the upstream is using the Nextcloud port 8080. The SSL configuration is pointing to the standard Certbot installation location. Make sure to change all the occurrences of [DOMAIN] with your Nextcloud domain.&lt;/p&gt;

&lt;p&gt;Now let's run our playbook.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ansible-playbook -u root -i "[SERVER IP]," playbook.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change [SERVER IP] to the IP of the VM that was created using Terraform. Make sure to include the comma in the parameter, otherwise it will throw an error.&lt;/p&gt;

&lt;p&gt;If all goes well you should have your very own working installation of Nextcloud. Which you can customize and explore to your heart's content.&lt;/p&gt;

&lt;p&gt;All the files mentioned in this can be found at Github link below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mbbaig/nextcloud-ansible-terraform"&gt;Github Repo&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hackandslash.blog/#/portal/signup/free"&gt;Subscribe&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextcloud</category>
      <category>ansible</category>
      <category>terraform</category>
      <category>certbot</category>
    </item>
    <item>
      <title>Linux Basics: How to install Linux?</title>
      <dc:creator>Mohamed Baig</dc:creator>
      <pubDate>Mon, 29 Nov 2021 17:26:09 +0000</pubDate>
      <link>https://dev.to/mbbaig/linux-basics-how-to-install-linux-11aj</link>
      <guid>https://dev.to/mbbaig/linux-basics-how-to-install-linux-11aj</guid>
      <description>&lt;p&gt;So last time we explored the question: What are Linux distributions? Now that we know Linux distributions are different operating systems in their own right, and hopefully you've picked out which distribution is right for you, let's explore how you can install a distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you install
&lt;/h2&gt;

&lt;p&gt;Before we look at the installers themselves, let's address some confusing and intimidating topics. First, if the very concept of changing your operating system is foreign to you, i.e. you've done it, this will seem like a scary process. You will read words like, wipe disk, or All your data will be deleted, all of this true but doesn't have to be scary. It's a good idea to backup all of the files you'd like to keep on a separate USB drive. Windows also has a backup and restore utility built-in that can be used to create an full system image, for a complete operating system restore. In addition to terms like system image, you will also encounter terms like ISO, ISO file, bootable disk, bootable USB, or live USB. The ISO files are essentially just operating system files that can be used to create an operating system installation device. This device is referred as a bootable disk/USB, or live USB. That's essentially it. You will download an ISO and create live USB, you don't need to know anything else about this.&lt;/p&gt;

&lt;p&gt;Second, there is a possibility of creating a setup with Windows and Linux on the same system, but, because of the complexity, it is out-of-scope for this article. This form of installation is called dual booting. We may cover this use case in a future article.&lt;/p&gt;

&lt;p&gt;Finally, while there are many distributions out there, the installing experience is largely the same, with some notable exceptions. If a distribution has a graphical installer, it should mostly follow the same logical steps. So even you're not picking the distributions that I wrote about before, you should be able to get through the installation process with little to no issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Downloading the correct file
&lt;/h2&gt;

&lt;p&gt;When you visit the download pages of the various distributions out there you will see several options, and maybe more than one download button. It's not a trap! Linux Distributions are just not great at making the experience accessible for the masses. Ubuntu does a better of job of this than most. You'll see pages like the ones below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EpnHsn_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n55pujxrl5hk4ym4lc7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EpnHsn_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n55pujxrl5hk4ym4lc7e.png" alt="open suse download page" width="880" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R0K_s4Cd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3dui116vcjpys38im4g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R0K_s4Cd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3dui116vcjpys38im4g.png" alt="fedora download page" width="880" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1dzHmvcL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ysj5vlqt7oh5nthm6xm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1dzHmvcL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ysj5vlqt7oh5nthm6xm.png" alt="ubuntu download page" width="880" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While the labels from openSUSE, and Fedora can be confusing, you don't have to worry about most of them. If you have a computer that you bought in the last few years, all you need to do is look for either x86_64 or AMD 64 and click that download button. openSUSE gives you two options for each architecture, that's what all the different labels are, the offline option is for when you don't have an active internet connection. Generally better to donwload that one. Fedora provides less options than openSUSE so there is less confusion. Again you just need to look for x86_64 and click that download button. Ubuntu provides even less options, but creates a different kind of confustion. At the top it prominently features the long term support (LTS) version of the operating system. This basically means you get security updates for fives years after release. The one below that is the latest release of Ubuntu. They follow a year and month based naming system so 21.10 was released in October 2021. For the latest and greatest software and hardware support, that's the one you want. If you have older hardware, LTS is the way to go.&lt;/p&gt;

&lt;p&gt;You are by no means limited to these three options. I'm just using these as a diverse set of examples. &lt;/p&gt;

&lt;h2&gt;
  
  
  How to create a live USB
&lt;/h2&gt;

&lt;p&gt;Now that you've selected your distribution, and downloaded the ISO. It's time to create live USB. Make sure to pick a good size USB. Greater than 4GB is recommended. Although there is no reason to buy a 4GB USB these days.&lt;/p&gt;

&lt;h3&gt;
  
  
  Etcher
&lt;/h3&gt;

&lt;p&gt;Etcher is a simple tool that makes it quick and easy to create a live USB. You simply have to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;    Plug-in a USB&lt;/li&gt;
&lt;li&gt;    Select the ISO file of your distribution&lt;/li&gt;
&lt;li&gt;    Click flash&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Etcher will do that rest.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fedora Media Writer
&lt;/h3&gt;

&lt;p&gt;Fedora Media Writer is also a great choice for creating a live USB. Obviously it has built-in support for downloading, and creating live USBs for Fedora. It also provides the ability to download the various Fedora "spins". And it has the option to create a live USB using a custom image. If you are creating a non-Fedora live USB, then just:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;    click on the custom image option&lt;/li&gt;
&lt;li&gt;    pick your custom image&lt;/li&gt;
&lt;li&gt;    Make sure your USB is plugged in&lt;/li&gt;
&lt;li&gt;    Select your USB from the drop down menu&lt;/li&gt;
&lt;li&gt;    Click the write button&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Shameless plug
&lt;/h2&gt;

&lt;p&gt;If you like content on this content, I write more articles like this semi regularly on my blog.&lt;/p&gt;

&lt;p&gt;Blog: &lt;a href="https://hackandslash.blog"&gt;https://hackandslash.blog&lt;/a&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  Installing Distributions
&lt;/h2&gt;

&lt;p&gt;Now that you have a live USB, it's time to install.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;    Shutdown your computer&lt;/li&gt;
&lt;li&gt;    Plug in your live USB into your computer&lt;/li&gt;
&lt;li&gt;    Press the power button on your computer&lt;/li&gt;
&lt;li&gt;    As the computer is booting up, keep pressing the F12 key to enter the boot options menu (This may be different depending your manufacturer so check online if F12 doesn't work)&lt;/li&gt;
&lt;li&gt;    Select you live USB from the boot menu&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A note about newer machines. These computers have a security feature called Secure Boot. This may prevent you from booting off of your USB. Fedora and Ubuntu will work even with Secure Boot on. But other distributions may not. Look here if you wish to disable Secure Boot
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;We're going to be taking a look at three different installers from three different distributions. The installation experience is largely the same when it comes to other distributions so I'm only covering the three main different ones here. First up, Ubuntu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ubuntu Installation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JEq3X5KT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9vhi124yazrkavrurgn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JEq3X5KT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9vhi124yazrkavrurgn.png" alt="Ubuntu install boot screen" width="720" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your first greeted by the above screen. You don't have to worry about the other options and if you wait about five seconds you will be taken to the default Ubuntu option anyway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FFW7MVST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q77mwxqi023qvjm1tlwr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FFW7MVST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q77mwxqi023qvjm1tlwr.png" alt="ubuntu install step 1" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the first screen you'll see a Try Ubuntu button. This will basically boot into a live environment which will be the same as the final installed operating system. At this point this is a great way to check if all your hardware will work with Ubuntu. There is an installation shortcut on the desktop in the live environment. Which take you through the same installation as when you press on the Install Ubuntu button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yhZx6pIm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ccy6fdwdlbhwc5otxgw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yhZx6pIm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ccy6fdwdlbhwc5otxgw.png" alt="ubuntu install step 2" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, you'll select the keyboard layout. Generally the installer is pretty good at detecting the keyboard layout. It provides a list of many different options which can be intimidating if you don't know what you're looking at. But if you have a standard QWERTY keyboard you can stick with the default selection. Make sure to test your keyboard in the text box.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xRcXNPqd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yt5cqs9qjxh2u1ts17q6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xRcXNPqd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yt5cqs9qjxh2u1ts17q6.png" alt="ubuntu install step 3" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now comes the installation package. Normal installation will give you most things you need out of the box. Pick minimal only if you want to install specific software after installation. Also make sure to check the "Download updates while installing Ubuntu" and "Install third-party software..." check boxes. The later will be needed for the proprietary software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EKBQZyb6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7th83giufspgb91wu89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EKBQZyb6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7th83giufspgb91wu89.png" alt="ubuntu install step 4" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the installer, depending on your current setup, will give you some options. Above you see only two options because this is an installation on an empty SSD. If you have Windows already installed or another Linux distribution, this installer may give an option to install along side those operating systems. For our purposes we will just pick the erase everything option and continue. The "something else" option is for advanced users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8LxFFJaz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2lzadjayvwq93oh2a81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8LxFFJaz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2lzadjayvwq93oh2a81.png" alt="ubuntu install step 5" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This screen is pretty simple. Just pick your timezone and continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oxNobbLg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7n8n0q299utpt0ti3nyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oxNobbLg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7n8n0q299utpt0ti3nyk.png" alt="ubuntu install step 6" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the last screen is where you will create you user. Simply provide your full name and change the different generated options if you like. Make sure to create a strong password. You can select whether you want to login automatically. Active directory is for domain based login, most people don't have to worry about it.&lt;/p&gt;

&lt;p&gt;Once you click on continue the installation will begin. You will get a slideshow of various features and apps that Ubuntu has. Once the installation is finished you will be prompted to reboot. If the installer prompts you to, remove the USB and hit enter on the keyboard. Once you reboot you will see a brand new Ubuntu install.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fedora Installation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cgwapjRY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56czjenp0irtg6brw3l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cgwapjRY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/56czjenp0irtg6brw3l5.png" alt="fedora boot screen" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fedora presents a similar screen to Ubuntu's. Simply wait five seconds and it will boot into the live USB. Fedora tests the media integrity before booting up as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---r_rEJKY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aahy5bdctv5oxt8ditq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---r_rEJKY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aahy5bdctv5oxt8ditq5.png" alt="fedora install step 1" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similar to Ubuntu you a try before you buy option. Although Fedora does boot directly in the live environment. The "Try Fedora" button will simply close the open installer. There is a shortcut in the activities section at the top left corner to run the installer again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WLOQRhgu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhp4pyq69sm4uf8uwj89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WLOQRhgu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhp4pyq69sm4uf8uwj89.png" alt="fedora install step 2" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The installer starts off with a similar language and keyboard selection screen as Ubuntu. Again usually pretty good at detecting the keyboard layout.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1ePinxLs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i97o4q7ovtiye1oon6av.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1ePinxLs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i97o4q7ovtiye1oon6av.png" alt="fedora install step 3" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Fedora installer is more parallel and streamlined than Ubuntu's. The keyboard and date/time are automatically selected. You can click on them and change them if you like. The main selection is for the disk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y6Af6QrG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3ramrd9vnshsa8vlqoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y6Af6QrG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3ramrd9vnshsa8vlqoy.png" alt="fedora install step 4" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you click on the "Installation Destination" button, you'll be greeted with the above screen. This is where a lot of people get confused with the Fedora installer. If there is only one disk, that disk is automatically selected. If that is the case for you, you can simply click done here and the entire disk will be used for the installation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nhmnWPJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7v1ack7sfi5uepq9mb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nhmnWPJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7v1ack7sfi5uepq9mb1.png" alt="fedora install step 5" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you click on the "Begin Installation" button, the installation will start and about 10 to 15 minutes it should be finished. Fedora has a great post installation setup, for user creation, and acclimating the user to the desktop environment. You'll given a tour of the desktop features once you reboot.&lt;/p&gt;

&lt;h2&gt;
  
  
  openSUSE Tumbleweed Installation
&lt;/h2&gt;

&lt;p&gt;The openSUSE installation is the most detailed of all three. It starts out similarly where you have pick the boot option. Make sure to select the boot from USB option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PpTvVLyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4s2it46nzoqyp75vu20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PpTvVLyF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4s2it46nzoqyp75vu20.png" alt="open suse install step 1" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenSUSE's installer first performs some automatic tasks to update itself and make sure there is network connectivity. This can be a bit confusing as it starts very quickly just doing things. Once it's done you'll see the Welcome screen above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mtq0RXOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2vz2svtpg0f89i9usfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mtq0RXOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2vz2svtpg0f89i9usfd.png" alt="open suse install step 2" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Starting the installation it performs some automatic tasks again. Then it gives you a choice to add additional repositories. The repositories are the source of the software catalog for the software store.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RDji_EWp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9tf012u9l70i7hg0mlry.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RDji_EWp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9tf012u9l70i7hg0mlry.png" alt="open suse install step 3" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don't need to select the "Sources" or the "DEBUG" repositories. Just the first three options should be fine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DtwvmRoa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bx1rvkbz1jlv9xlgsdv7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DtwvmRoa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bx1rvkbz1jlv9xlgsdv7.png" alt="open suse install step 3a" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The installer will take some time to add these repositories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W3RjMn9L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wki12ckue4f59a6xz1fz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W3RjMn9L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wki12ckue4f59a6xz1fz.png" alt="open suse install step 4" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenSUSE is the only distribution on the list that provides you with different options for your desktop. We will explore these in detail in a later article. For now here is some simple guidance. If you're familiar with Windows, pick KDE Plasma, if you're more used to MacOS or if you want simple uncomplicated desktop, pick Gnome, and if you have an older computer with less RAM or CPU power pick Xfce. The rest you don't need to worry about.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6-JaJAmC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/148q20c2e5h55j6m3wmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6-JaJAmC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/148q20c2e5h55j6m3wmi.png" alt="open suse install step 5" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Disk screen shows the suggested partition that the installer will create. If you're an advaced user, you can customize by picking from the drop down menu below. For now we'll keep the suggested setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--orqI5X_N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50z8rqojs9jg0oobla3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--orqI5X_N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/50z8rqojs9jg0oobla3t.png" alt="open suse install step 6" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again pick your timezone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--crqBImGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgzvhfzxqlgyn08weito.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--crqBImGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgzvhfzxqlgyn08weito.png" alt="open suse install step 7" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create your user. The "Automatic Login" option is pre-selected. Uncheck it if you plan to have multiple users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZE7OUDs8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkst9u98jyszxw8a6bm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZE7OUDs8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkst9u98jyszxw8a6bm3.png" alt="open suse install step 8" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, the openSUSE installer shows a summary of what will be installed and asks for confirmation one last time. After you click install and the process completes, you can boot into your new operating system that will be always up-to-date.&lt;/p&gt;

&lt;p&gt;Well that about covers it for these three installers. Most other distributions you'll find will have some variation of the above steps. There are some notable exceptions. Arch Linux for example does not have a graphical installer. Arch provides command line tools to installer the distribution. I may cover that in a later article once we've covered the basics.&lt;/p&gt;




&lt;h2&gt;
  
  
  Subscribe
&lt;/h2&gt;

&lt;p&gt;I write content like this and more so please consider supporting me by subscribing to &lt;a href="https://hackandslash.blog"&gt;my blog&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>linux</category>
      <category>ubuntu</category>
      <category>fedora</category>
      <category>opensuse</category>
    </item>
    <item>
      <title>Linux basics: What are Linux distributions (distros)?</title>
      <dc:creator>Mohamed Baig</dc:creator>
      <pubDate>Sat, 27 Nov 2021 00:33:41 +0000</pubDate>
      <link>https://dev.to/mbbaig/linux-basics-what-are-linux-distributions-distros-3ila</link>
      <guid>https://dev.to/mbbaig/linux-basics-what-are-linux-distributions-distros-3ila</guid>
      <description>&lt;p&gt;The world of Linux is large and complex. It's highly competitive world of distributions, desktop environments, window managers, display managers, init systems, and ideologies to name a few. With this series of blog posts, I will be going to through all the basics of the Linux world and trying to explain, as best I can, what each concept or component is.&lt;/p&gt;

&lt;p&gt;One of the first questions new users may ask themselves is what is a distribution. So let's explore that and answer that question.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a distribution?
&lt;/h2&gt;

&lt;p&gt;A Linux distribution is a collection of various software, modules, and configuration. Usually a distribution also has it's own purpose and philosophy. There are many distributions that use the Linux system as a core piece of their system. Even the kernel can vary in functionality from distribution to distribution. Everything from the default included software, to the the Linux kernel is customized the respective distribution.&lt;/p&gt;

&lt;p&gt;There are numerous Linux based distributions out there. DistroWatch lists the top 100 based on the clicks on it's website. But that is not an exhaustive list. Even this image is not an exhaustive list of distributions because there are more created everyday. However, this image is pretty comprehensive. It shows something very important, that most of the distributions are derivatives of a few main distributions. Even though the main distributions are popular in their own circles, there are some derivative distributions that have reached greater mainstream acceptance. Distribution like Ubuntu, Fedora, ElementaryOS, OpenSuse, Arch, and Manjaro are just a small number of them that bring their own unique take on a Linux based operating system.&lt;/p&gt;

&lt;p&gt;You can think of Linux and the various distributions that use like a car make and model. For example, Toyota is Linux and a corolla can be distribution. The simile may not be perfect but it does clarify the idea behind distributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not exactly one-size-fits-all
&lt;/h2&gt;

&lt;p&gt;The philosophy and goal of the distribution can affect which one you pick. Often Ubuntu is the default answer to the question, which distribution should I install. There are some good reasons for this. Ubuntu is the more popular distribution so if you encounter a problem, someone else most likely also encountered the problem and can help. The Ubuntu community is the largest. However, Ubuntu's goal is a mass market appeal so the direction of the distribution is decided by that goal. There are several failed/abandoned projects in Ubuntu's history. Although, those projects have their own communities maintaining them now. There are other distributions that try to provide a specialized experience. These distributions have very active communities, although not as large as Ubuntu.&lt;/p&gt;

&lt;h2&gt;
  
  
  General use
&lt;/h2&gt;

&lt;p&gt;If you're use case is simply some document writing, checking emails, web browsing, or watching videos or movies, then there are many well supported distributions out there. If you're coming from Windows there distributions like ZorinOS, Linux Mint, or Manjaro that try to provide a very similar experience. ZorinOS in particular is designed to provide the closes Windows-like experience as possible. There is going to be software that you don't get like Microsoft Office. There will be open-source equivalents like Libreoffice or OnlyOffice. The order in which I mentioned the districutions above, is the order from beginner to advanced. For Windows users who are beginners, I generally recommend Zorin because it provides a very similar experience while hiding the complexities. And it is based on Ubuntu which means it get's the benefits of the large community. If the user is a bit more advanced and ready to explore a little more about how Linux works, Linx Mint is great option. Mint exposes a little more of the Linux inner workings and settings. Manjaro is for advanced Windows users who are comfortable tinkering with the OS should they need to. Manjaro is based on Arch so all software will be up-to-date and there might be some breakages that would need to be fixed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QrsA8Itk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l26ue12g6qk88vabl6tt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QrsA8Itk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l26ue12g6qk88vabl6tt.png" alt="Elementary OS logo" width="880" height="128"&gt;&lt;/a&gt;&lt;br&gt;
‌&lt;br&gt;
For MacOS users the Linux world provides a lot of options as well. Although there aren't any perfect copies of all MacOS functionality, there are many that come very close. ElementaryOS is great for beginners and provides a similar look and feel to MacOS. There are however some differences, Elementary provides an application grid at the top left corner and there is no equivalent to spotlight search. But for beginners ElementaryOS is a great introduction into Linux. For a little more advanced users, there is Ubuntu. It provides a similar experience to MacOS, although there are learning curves like launch bar being on the left hand side. For these advance users there are ways to move the launch bar to the bottom and other changes that can be made to make the OS more like MacOS. Ubuntu provides a good base for tinkering. For users that are more adventurous and not afraid to deep dive into settings, I would recommend KDE Neon. This distribution combines the stability of the Ubuntu base with the latest technologies for the desktop. And the most advanced MacOS users can go in change the look of this desktop to be a stones throw away from MacOS.&lt;br&gt;
‌&lt;/p&gt;

&lt;h2&gt;
  
  
  Media editing
&lt;/h2&gt;

&lt;p&gt;Media editing is an area of turbulence in the Linux world. Everything from the lack of hardware acceleration in some cases, to the lack of studio grade software like the Adobe suite, leaves a lot to be desired for the media editing professionals. However, for the amateurs, casuals, and hobbyists there are good quality, and free options out there to get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--96iBSmW2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mggy60fa7uhl5gc4xj4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--96iBSmW2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mggy60fa7uhl5gc4xj4.png" alt="Ubuntu studio logo" width="880" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ubuntu Studio, and Fedora Design Suite are two great options. While they both provide very similar software out of the box, their goal is where they differ. Ubuntu strives to provide a stable system, so it tends to have older versions of software in many cases. Fedora strives to provide be on the cutting edge. While this goal provides Fedora users with the latest software, even between releases, there can be some instability in this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bzu5ymGV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkndv8u0yqo8dwhm47e7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bzu5ymGV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkndv8u0yqo8dwhm47e7.png" alt="AV Linux logo" width="300" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other than the distributions mentioned above, there is a AV Linux MX Edition. This distribution is tailor made for audio/video work and includes every editing they possibly can right out of the box. Some advantages here are custom compiled packages for this relatively small distribution. It is more suited for advanced users, however, so make sure to watch some tutorials before trying it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--izsakL49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/km9bx8yt8p47sv5cdrgp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--izsakL49--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/km9bx8yt8p47sv5cdrgp.png" alt="Fedora Linux logo" width="880" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this area I consider nearly all distributions to be top notch. There are some standout distributions for their dedication to making latest software packages available, while maintaining stability, and providing flexibility. My opinion here is biased because I use this distribution as a daily driver. Fedora Workstation is one of the best distributions for developers for all the reasons mentioned. It packages the most recent development tools and keeps them maintained and updated throughout the life cycle of any release. Tools like NodeJS or OpenJDK that have LTS (long term support) releases, are provided as LTS by default. Fedora actually goes one step further with the concept of modular repositories. With this modularity Fedora actualy provides multiple supported versions of different software and tools. Packages like NodeJS, PostgreSQL, and MariaDB, have multiple supported versions within these modules. Different versions of each can be installed simply by switching to that module and installing the package. This makes Fedora one of the most useful distributions out there. There is no need to install an external resource to get the latest version or an older version of the tool.&lt;/p&gt;

&lt;p&gt;Sample output of sudo dnf module list&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8YvEkQ4m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znrml1xv9p88nqct5t5n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8YvEkQ4m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znrml1xv9p88nqct5t5n.png" alt="terminal window" width="880" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p8h2zEhp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9h666y88mb5mu27f7xx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p8h2zEhp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9h666y88mb5mu27f7xx4.png" alt="open suse logo" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another great options for developers is OpenSUSE Tumbleweed. This is the rolling release version of the excellent OpenSUSE. Rolling release means that, once installed, there is never a big release that the user has to upgrade to. For example, you never have to go from Tumbleweed 5.0 to Tumbleweed 6.0. All packages are kept up-to-date and released continuously. This has the added advantage of the latest hardware support, and the latest development tools. Tumbleweed also provides multiple versions of tools, albeit in the same repository. So you have to make sure you specify the version when installing a package. Similar to Fedora, it has out-of-the-box support for Flatpak and Flathub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5akRgC-z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h00zg3j3w6srpypt0frz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5akRgC-z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h00zg3j3w6srpypt0frz.png" alt="arch linux logo" width="880" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, for the most brave of users there is Arch Linux. This famous/infamous distribution has a very specific way of doing things. Arch encourages it's users to understand the underlying systems starting from the installation. While Arch does provide helper scripts to install the system, it does not offer any graphical installer. However, it does offer something that is universally considered, in the Linux community, as an amazing source of information, the Arch Wiki. While other distributions have Wikis as well, the Arch Wiki is usually better maintained, and often contains information not available in other Wikis. Arch is also a rolling release distribution, so it bring all of the advantages of tumbleweed. Arch strives to keep things simple, so when you install you system there will be no customization of the desktop at all. All software is packaged and shown as without any theme or custom icons. Arch is not for the faint of heart but once installed you get a solid system and a much better understanding of how it works.&lt;/p&gt;

&lt;p&gt;I'm planning to make this a series of blog posts. So subscribe to learn more about basic, intermediate, and advance Linux functionality. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>linux</category>
      <category>opensource</category>
      <category>distributions</category>
    </item>
  </channel>
</rss>
