Hyppää sisältöön

Ohjelmat

Jotta voimme käsitellä ohjelmien tai sovellusten asentamista paketinhallintajärjestelmän avulla, meidän pitää ensin selventää, mitä ohjelmalla tarkoitetaan.

Alla oleva lista on tiivistelmä Learning Modern Linux (Hausenblas 2022) -kirjan Chapterin 6 alusta.

Termi Selite
Program, ohjelma Binääritiedosto tai executableksi (chmod +x) merkattu tekstitiedosto. Jälkimmäinen alkaa ensimmäisellä rivillä olevalla shebangillä, joka määrittää, millä ohjelmalla teksti pitää tulkita konekieleksi. Esimerkki: #!/bin/bash tai #!/usr/bin/env python3.
Process, prosessi Ohjelman instanssi, eli entiteetti, joka käyttää CPU:ta tai I/O:ta.
Daemon Taustalla ajettava prosessi, jota kutsutaan myös serviceksi. Windowsissa vastaavat löytyvät Task Manager => Services. Linuxissa näitä ajaa useimmiten systemd. Katso man daemon.
Application, sovellus tai app Ohjelma ja sen riippuvuudet (eng. dependencies) kokonaisuudessaan: sen konfiguraatiot, data, asennus, poisto, ajaminen.
Package, ohjelmapaketti Tiedosto, joka sisältää ohjelmia tai applikaatioita. Applikaatiot jaellaan (eng. distribute) paketteina.
Package manager, paketinhallinta Ohjelma, joka lukee ohjelmapaketteja, ja asentaa/päivittää/poistaa ohjelman ohjeiden mukaisesti. Esimerkkejä: Pythonissa pip, Debian-pohjaisissa järjestelmissä apt, Windowsissa winget.
Repository Repositorio on kirjasto, josta paketinhallinta(järjestelmä) noutaa ohjelmat, ja johon ohjelmistonkehittäjät julkaisevat ohjelmat.

Lisäksi ohjelmat käyttävät jaettuja kirjastoja. Yksi näistä on libc.so, joka on (useimmiten GCC:n) Standard C Library, ja sisältää esimerkiksi printf-funktion. Paketinhallinta huolehtii sinun puolestasi näiden kirjastojen asentamisesta, ja niiden riippuvuuksien hallinnasta. Alla olevalla komennoilla voit tarkistaa, mitä kirjastoja jokin binääri käyttää:

Bash
$ ldd $(which useradd)