Package Managers, Desktop Environments

 

I'm Jake Prem

  • Associate Consultant
  • Microsoft Practice
  • Started in 2016

Things I like about Linux

It's pizza time!

"Hot squares of yum"

Give me a Windows pizza!

It's your standard pepperoni pizza

Give me a macOS pizza!

It's pretty similar to the Windows pizza

It costs $1000 dollars, is bezel-less

There's no headphone jack

Give me a Linux pizza!

Wait, what?

Time to go shopping!

  • Ingredients (Sauce, Cheese, Toppings, etc)
  • Stores (Where do we find the ingredients?)
  • Brands (What kinds of ingredients should we get?)

That sounds like a lot of work!

Meet Pam

  • Gives us a list of everything sold at Wholefoods
     
  • He'll pick it up for us if we tell him what we want
     
  • We can even tell him about other stores and ingredients

"Going to Whole Foods, want me to pick you up anything?"

This still sounds pretty overwhelming...

Meet Diesel

  • Knows a bunch of pizza recipes
  • He'll talk to PacMan for us and tell him what to get
  • Knows about different kinds of pizza: BBQ, Dessert, etc.
  • Knows about different kinds of ingredients: the freshest, organic, healthiest, etc.

So we can pick one of Diesel's recipes and end up with a pizza that fits exactly what we want.

Pam = Package Manager

  • Can download and manage lists of available software stored in repositories
     
  • Can download software packages listed in repositories and install them
     
  • Can install updates that are published in the repository
     
  • You can add additional repositories of available software, e.g. PPAs in Ubuntu

Diesel = Distribution

  • Various kinds catering to various needs
     
  • Different ones use different package managers
     
  • Offer different desktop environments with varying levels of support
     
  • Different philosophies
    • Debian => Stability & FOSS Software
    • Arch => Cutting edge, rolling release, customizability
    • Ubuntu => Ease of use
  • Different channels, or repositories
    • Stable, Unstable, Testing, Universe, Restricted, AUR

Distributions = Package Managers + Configuration
 

Flavors = Distributions + Desktop Environments

Popular Package Managers

and their associated distros

A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner.

Wikipedia

 

APT

  • Advanced Package Tool
  • Used by Debian and Ubuntu
  • Generally used as a frontend
    for DPKG, .deb
  • Most things will have a package
    already in Ubuntu/Deb's repos
  • If not there's probably a PPA
  • Tons of help online
sudo apt install package_name
sudo apt update --Fetches an updated list of available packages
sudo apt upgrade --Upgrades installed packages to the latest version

sudo dpkg -i -r -l

Yum, DNF

  • Yellowdog Updater, Modified
  • Dandified Yum
  • Used by Fedora, CentOS, Redhat, Yellow Dog
  • Generally handles .rpm
  • Fedora is a pretty good desktop OS
  • Good Thinkpad support
  • Lots of businesses and servers use this
sudo yum install package_name
sudo yum check-update --Fetches an updated list of available packages
sudo yum update --Upgrades installed packages to the latest version

sudo dnf remove package_name

Pacman

  • Arch Linux, Manjaro, Antergos, etc
  • Binary Packages => core, extra, community
    • Already compiled
  • Arch Build System (ABS)
  • Arch User Repository
  • Rolling release, always have the newest version of a package
sudo pacman -S package_name
sudo pacman -Sy --Fetches an updated list of available packages
sudo pacman -Syu --Upgrades installed packages to the latest version

yaourt package_name --Search for available packages matching name
                    --Then pick one to install

Package Manager Frontends

  • Synaptic
  • Yaourt

Desktop Environments

Windows

  • Whatever Microsoft gives you

Linux

  • This is one of the rabbit holes
  • X Window System (X11)
  • Some collection of desktop packages
  • Generally will have some combo of:
    • Window Manager
    • Session Manager
    • File Manager
    • GTK, QT libraries
    • Compositor
    • Toolbars, widgets
    • Default programs (sometimes)

Cinnamon

  • Comes from Linux Mint
  • Very Windows like
  • Big on ease of use.
  • Fork of Gnome 3
  • Demo

Gnome Shell

  • Default Fedora
  • Default Ubuntu as of 17.10
  • It's pretty cool
  • Lots of other DEs are built on top of Gnome
    • I.e. Unity was
  • Demo

KDE Plasma

  • The newest version of KDE
  • Windows-like
  • Extremely customization
  • Widgets, workspaces
  • Demo

XFCE

  • Light weight
  • Extremely customizable
  • Good widgets
  • Somewhat limited without a decent amount of configuration
    • E.g. often lacks basic shortcuts
  • Not very pretty by default

i3 (Window Manager)

  • A tiling WM
  • Extremely customizable
  • Often paired with XFCE
  • DEMO

Demo Time

 

  • Ubuntu,
    • APT
  • Arch
    • pacman, AUR
  • Not demoing yum
    • It's very similar to APT with slightly different commands

How do you pick?

  • Generally pick a distribution more than a Package manager
    • E.g. I like that Debian is stable and FOSS
    • I like that Fedora is similar to Redhat, has hardware support
    • Pacman/Arch is a notable exception
  • Generally pick a distro that already has good support for your desktop environment of choice

How do you pick?

  • Server? Probably Ubuntu's latest LTS
    • Stable, long term support
    • Very popular,  almost every problem already has an answer
  • Desktop?
    • Fedora generally has good up to date software and hardware support
    • Linux Mint, user friendly, should just work
    • Ubuntu Latest will have better hardware support, more up-to-date packages
    • Arch has rolling release and pacman but there is a learning curve
  • I generally use a VM on Windows
  • Manjaro i3 (Arch)
    • General use and development
  • Base Ubuntu
    • Servers
    • When I want my dev packages to match an Ubuntu server
Made with Slides.com