Linux

Software Management

Leerdoelen

  • We gaan leren hoe software op een systeem komt
  • We gaan leren werken met een package manager

Binary files

  • Computers werken met 1 en 0
  • Dus programma's moeten geschreven zijn in 1 en 0
  • Twee getallen stelsel is bi-nair, want bi is 2
  • Een programma in 1 en 0 heet een binary
  • Mensen zijn beter in tekst...

Source → Binary

  • Software wordt geschreven in een programmeertaal (C, C++, Java, etc.)
  • Een compiler maakt er machine-code van
  • De gecompileerde software heet een binary

Een compileer omgeving

  • GCC - GNU Compiler Collection
  • Development files (-dev of -devel packages)
    • glibc-devel wordt automatisch meegeïnstalleerd
  • GNU make
  • Ook nodig maar al geïnstalleerd binutils
    • GNU assembler
    • Linker

Het compileren

  • Uitpakken van de sources
    • tar zxvf (.tar.gz)
    • tar jxvf (.tar.bz2)
  • Lees de README !!! en eventueel INSTALL
  • ./configure
    • Test of de compilatie gedaan kan worden en hoe
  • make
    • Bouwt (compileert) de software
  • make install
    • Installeert de software
    • Standaard in /usr/local

De binary

Dat kan makkelijker

  • Als we dit allemaal zelf moeten doen...
  • ... voor elk stukje software
  • ... bij elke update

Package Management

Package

  • Bevat:
    • Precompiled binaries
    • Documentatie
    • Configuratie bestanden
    • ... en verder wat nodig is

Package installatie

  • Helaas verschillen packages en tools per distributie
    • apt, dnf, zypper, portage, pacman
    • .deb, .rpm, .tgz
  • Installatie op de commandline
    • Download package
    • Install met de juiste tool
  • Installatie vanuit een repository (App-store)
    • Downloads and installs package
    • Tools voor updaten van de software

Repositories

  • Repository – Repo – Pakketbron
    • Collectie met software en afhankelijkheden
    • Vergelijkbaar met Apple iStore en Google Play Store
  • Een distributie kan verschillende repos gebruiken
  • Repositories kunnen toegevoegd en verwijderd worden

Repo servers

  • Elke distro heeft zijn eigen repo-servers
  • En vaak ook verschillende repos
  • Organisaties kunnen ook hun eigen repo-server opzetten, wat een aantal voordelen heeft:
    • Minder bandbreedte gebruik over de Internet link
    • Eigen keuze van de beschikbare pakketten
    • Eerst testen van pakketten voordat ze beschikbaar zijn

Repo META-data

  • Naast de te installeren software is er ook META-data
  • Dit is data die iets zegt over de te installeren software
    • Hoe groot is de te installeren software (is er genoeg disk ruimte)
    • Een beschrijving (voor de gebruiker)
    • Welke versie is dit (voor de update tools)
    • De afhankelijkheden (wat moet er vooraf geïnstalleerd zijn)

Software managers

  • Hebben een lokale kopie van de repo META-gegevens
    • Informatie zoeken gebeurt lokaal
    • Informatie kan dus verouderen, verouderd zijn
  • Er kan maar 1 software manager op een systeem actief zijn
  • Veel systemen hebben automatische update checks

Debian software management

  • Tools: apt, apt-get, apt-cache, dpkg
  • Packages: .deb

Tools

dpkg
Package installer
apt-cache
Werkt op de META-data (zoeken)
apt-get
Download (META-data) en installatie (pkg) tool
apt
Overkoepelende tool

Updaten META-data

  • Je wil de latest and greatest hebben
  • Dus we updaten eerst de META-data cache
  • sudo apt update

Updaten van het systeem

  • Zorgen dat het systeem alle bugfixes heeft
  • sudo apt upgrade
  • Alleen na een kernel upgrade rebooten
    • linux-image-* upgrade
  • Voor de veiligheid kan je altijd rebooten...
    • op een server niet altijd handig

Zoeken in META-data

apt search xeyes
x11-apps/stable,now 7.7+11+b1 amd64 [installed,automatic]
  X applications

xfce4-eyes-plugin/stable 4.6.2-1 amd64
  eyes that follow your mouse for the Xfce4 panel
  • Zoek in de cache kan zonder sudo
  • Extra data over status

install uit repo's

sudo apt install cowsay
cowsay hello

Verwijderen van software

    remove
    Verwijdert de software, laat door de gebruiker gewijzigde configuratie bestanden staan
    purge
    Verwijdert de software en configuratie bestanden
sudo apt remove cowsay

Samenvatting

  • We hebben geleerd dat er repositories zijn waarin pakketten zitten
  • Op Debian kunnen we met apt werken om software up-to-date te houden
  • Op Debian kunnen we apt gebruiken om in META-data te zoeken
  • Op Debian kunnen we apt gebruiken op extra software te installeren of te verwijderen