Toisin kuin useat luulevat, on ohjelmien asentaminen Linuxiin yleensä huomattavasti helpompaa kuin esimerkiksi Windowsiin - Linuxissa ohjelmien asentamiseen täytyy kuitenkin suhtautua eri tavoin. Tyypillinen Windows-käyttäjä lähtee tietenkin etsimään Linux-ohjelmia ohjelmien www-sivuilta, koska niiltähän Windowsinkin ohjelmat haetaan. Linuxin tapauksessa nettisivuilta löytyvät yleensä vain ohjelmien lähdekoodipaketit, joiden asentaminen on Linuxiin perehtymättömälle paitsi varsin haastavaa, myös yleensä täysin tarpeetonta.
HUOM: Lähdekoodipaketeista asenteluun tulisi ryhtyä vain, jos ohjelmaa ei löydy oman jakelun pakettienhallintajärjestelmästä.
Aina kun uusille ohjelmille tulee tarvetta, kannattaa ensin tarkistaa oman jakelun tarjoamat paketit. Erityiset pakettienhallintaohjelmat hoitavat asennuksen siististi ja vaivattomasti. Lähes poikkeuksetta jokaisessa Linux-jakelussa on käytössä jokin pakettienhallintaohjelma sekä sen kanssa toimiva graafinen hallintasovellus.
| Linux-jakelu | Pakettienhallintasovellus |
| Debian | apt/aptitude |
| Ubuntu | apt/aptitude |
| Gentoo | emerge |
| Fedora | yum, apt |
Graafiset pakettienhallintaohjelmat ovat erittäin käteviä erityisesti aloittelijoille, sillä niitä käyttääkseen ei tarvitse yleensä osata edes Linuxin komentorivin perusteita. Pakettienhallintaohjelmat toimivat yleensä seuraavalla tavalla:
Koska pakettienhallintasovellukset hakevat tarvitsemansa ohjelmapaketit tietyiltä palvelimilta, pitää niiden tietää mitä palvelinta tulee käyttää. Useimmiten käyttäjältä urkitaan tarvittavat tiedot jo Linuxin asennusvaiheessa, joten ongelmia tämän suhteen syntyy harvoin. Tarvittaessa käytössä oleva palvelin voidaan vaihtaa joko muokkaamalla asetustiedostoja käsin tai graafisen pakettienhallintasovelluksen asetuksista. Mikäli vaikuttaa siltä, että ohjelmapaketit latautuvat hitaasti, kannattaa tarkistaa, että käytettävä palvelin on maantieteellisesti mahdollisimman lähellä omaa nettipistoketta.
Vielä joitakin vuosia tunnettiin yleisesti käsite "RPM hell". Koska rämmin tuolla suolla aikoinani itsekin, voin vakuuttaa, että käsite on erittäin istuva. Sillä tarkoitetaan ilmiötä, joka syntyy ohjelmapakettien runsaista keskinäisistä riippuvaisuuksista: kun yritti asentaa jotakin www-sivuilta haettua ohjelmapakettia, asennus keskeytyy virheilmoitukseen "Paketti xxx vaatii paketin yyy jota ei ole asennettu... asennus keskeytetty". Kun asiaintilaa yritti korjata hakemalla puuttuvan paketin, valitti se puolestaan useista omista riippuvuuksistaan, jotka valittavat taas omistaan. Siis yhden ohjelman asentamiseksi piti hakea pahimmillaan kymmeniä muita paketteja, ennenkuin sen sai asennettua. Nykyisin "RPM hell" on onneksi pääosin historiaa. Kaikkien Linux- jakeluiden pakettienhallintasovellukset osaavat itse hakea puuttuvat paketit.
Irrallisten - siis esimerkiksi www-sivuilta haettujen - ohjelmapakettien asennuksessa törmää kuitenkin lähes poikkeuksetta pakettien välisiin riippuvuuksiin. Puuttuvien pakettien noutaminen on kuitenkin helppoa: yksinkertaisinta on yrittää asentaa noudettu ohjelmapaketti ja sitten noutaa puuttuvat paketit jakelun pakettienhallintaa käyttäen. Jos puuttuvia paketteja ei pakettienhallinnasta löydy, täytyy yleensä noutaa puuttuvan ohjelman tai kirjaston www-sivuilta lähdekoodipaketti ja asentaa se.
Alla esimerkki siitä mitä käy, kun yrittää asentaa Debianissa pakettia, jonka riippuvuudet eivät täyty:
LoSan:/var/cache/apt/archives# ls -l|grep airstrike -rw-r--r-- 1 root root 42366 2004-11-27 21:32 airstrike_0.99+1.0pre6a-3_i386 .deb LoSan:/var/cache/apt/archives# dpkg -i airstrike_0.99+1.0pre6a-3_i386.deb Selecting previously deselected package airstrike. (Reading database ... 168595 files and directories currently installed.) Unpacking airstrike (from airstrike_0.99+1.0pre6a-3_i386.deb) ... dpkg: dependency problems prevent configuration of airstrike: airstrike depends on airstrike-common; however: Package airstrike-common is not installed. dpkg: error processing airstrike (--install): dependency problems - leaving unconfigured Errors were encountered while processing: airstrike LoSan:/var/cache/apt/archives#
Kun asennetaan samalla kertaa sekä itse ohjelma että sen riippuvuudet, ei ongelmia synny:
LoSan:/var/cache/apt/archives# ls -l *airstrike* -rw-r--r-- 1 root root 1876354 2004-11-27 19:47 airstrike-common_0.99+1.0pre6a-3_all.deb -rw-r--r-- 1 root root 42366 2004-11-27 21:32 airstrike_0.99+1.0pre6a-3_i386.deb LoSan:/var/cache/apt/archives# dpkg -i airstrike-common_0.99+1.0pre6a-3_all.deb airstrike_0.99+1.0pre6a-3_i386.deb Selecting previously deselected package airstrike-common. (Reading database ... 168609 files and directories currently installed.) Unpacking airstrike-common (from airstrike-common_0.99+1.0pre6a-3_all.deb) ... Preparing to replace airstrike 0.99+1.0pre6a-3 (using airstrike_0.99+1.0pre6a-3_i386.deb) ... Unpacking replacement airstrike ... Setting up airstrike-common (0.99+1.0pre6a-3) ... Setting up airstrike (0.99+1.0pre6a-3) ... LoSan:/var/cache/apt/archives#
Ohjelmien asentaminen lähdekoodista on pakettienhallinnan käyttämiseen verrattuna varsin työlästä. Poikkeuksen muodostavat tietenkin *BSD -käyttöjärjestelmät sekä esimerkiksi Gentoo Linux, joiden pakettienhallinta kääntää kaiken lähdekoodista automaattisesti. Lähdekoodista kääntäminen saattaa olla tarpeen silloin, kun:
Aivan yksinkertaisimmissa ohjelmissa ei välttämättä tarvitse tehdä mitään muuta kuin kirjoittaa make ja käynnistää sen jälkeen ohjelma komennolla ./ohjelman_nimi. Toisinaan pitää muokata tiedoston Makefile asetukset sopiviksi.
Yleensä ottaen on järkevää käyttää ohjelmien asetusten muuttamiseen ensisijaisesti jakelun omia työkaluja. Kullakin jakelulla on omat asetusten säätämiseen tarkoitetut työkalunsa, eikä niistä voi antaa yleispäteviä ohjeita. Oman Linux-jakelun ohjekirjoista, foorumeilta tai Wikistä löytyy lisätietoa.
Vaikka vaikka Linux-jakelusi mukana ei tulisikaan varsinaisia jakelun omia työkaluja asetusten muokkaamiseen, on aina mahdollista asentaa erillisiä, graafisia työkaluja asetusten muuttamista varten. Näitä ovat esimerkiksi linuxconf ja webmin, joiden avulla järjestelmän hallinta helpottuu ainakin peruskäyttäjän näkökulmasta. Yllämainittujen, melko yleiskäyttöisten ohjelmistojen lisäksi lukuisille ohjelmille on tehty konfigurointiohjelmia, joilla ohjelman asetukset saa helposti kohdalleen ilman tekstitiedostoihin koskemista. Esimerkiksi cups-tulostusjärjestelmän (ts. tulostimien) konfigurointiin on tehty lukuisia ohjelmia.
Monien ohjelmistojen, kuten cups-tulostusjärjestelmän sekä mldonkey-vertaisverkko-ohjelmiston mukana tulee webbipohjainen käyttöliittymä, jonka kautta ohjelmiston asetuksia pääsee muuttamaan. Näiden käyttö on useimmiten melko mutkatonta, eivätkä niiden ominaisuudet laahaa varsinaisen ohjelman perässä, kuten monien erillisten konfigurointiohjelmien.
Jakeluiden mukana tulevat ohjelmistot ja muut graafiset asetustusten muokkaamiseen tarkoitetut sovellukset ovat usein melko rajoittuneita. Useimmille käyttäjille graafiset asetusohjelmat riittävät, mutta kun halutaan todella hienosäätää ohjelman käyttäytymistä, pitää itse päästä käsiksi varsinaiseen asetustiedostoon.
Toisin kuin voisi luulla, ei asetustiedostojen muokkaaminen ole erityisen vaikeaa, vaikka siinä onkin riskinsä. Koko järjestelmään vaikuttavat asetustiedostot sijaitsevat lähes poikkeuksetta hakemistossa /etc, ja käyttäjän omat asetustiedostot kotihakemistossa piilotiedostoina ja hakemistoina. Piilotiedostoissa tiedoston nimeä edeltää piste ("."), eikä se näy tavallisesti hakemistolistauksessa. Kun jokin ohjelma käynnistetään, tutkii se ensin löytyykö käyttäjän kotihakemistosta ohjelman asetustiedostoa. Jos ei, se luo sellaisen esim. /etc-hakemiston asetustiedoston pohjalta. Käyttäjän määrittämät ohjelman asetukset menevät siis järjestelmän asetusten edelle: näinollen kukin käyttäjä voi muokata ohjelmien asetukset mieleisiksiin.
Yleensä ottaen on turvallisempaa muokata mieluummin käyttäjäkohtaisia kuin järjestelmänlaajuisia asetuksia /etc-hakemistosta. Käyttäjäkohtaiset asetukset voi nimittäin aina poistaa ja käynnistää sen jälkeen ohjelman uudelleen, jolloin oletusasetukset palautuvat. Mikäli muokataan /etc-hakemiston tiedostoja ja tehdään jotakin tyhmää, voi edessä olla ko. ohjelman uudelleenasennus. Koko järjestelmän rikkominen asetustiedostoja muuttamalla on joitain poikkeuksia lukuunottamatta vaikeaa. Pahimmassakin tapauksessa rikkoutuneet asetustiedostot voi korjata esimerkiksi LiveCD-linuxia avulla, jonka jälkeen täysin nyrjähtänytkin järjestelmä saadaan käynnistymään.
Järjestelmän asetustiedostoja tarvitsee muokata lähinnä silloin, kun muutokset eivät koske vain jotakin yksittäistä käyttäjää, vaan koko järjestelmää. Esimerkiksi erilaisten palvelinten asetusten muutokset vaativat muutoksia /etc-hakemiston tiedostoihin. Myös tietoturvaan liittyviä muutoksia tehdessä voi joutua muokkaaman järjestelmän omia asetustiedostoja.
Kaikista ohjelmista löytyy silloin tällöin ohjelmointivirheitä, jotka vaarantavat tietokoneen turvallisuuden. Linux-ohjelmistot eivät ole poikkeus: niitäkin on syytä päivittää usein, jotta järjestelmän turvallisuus ei vaarannu.
Koska suurin osa Linuxin ohjelmista voidaan asentaa jakelun omia työkaluja käyttäen, on koko järjestelmän pitäminen ajantasalla erittäin helppoa. Yleensä koko järjestelmän päivitys onnistuu parilla komennolla. Esimerkiksi Debian GNU/Linuxissa järjestelmä päivittyy komennolla aptitude update; aptitude dist-upgrade.
Jos Linux-jakelun tarjoamat päivitykset ovat pelkkiä turvallisuuspäivityksiä (esim. Debian Stable), voi päivitykset automatisoida esim. cronin avulla. Jos taas päivitykset sisältävät tuoreempia versioita järjestelmään asennetuista ohjelmista (esim. Debian testing, Fedora Core), on aina olemassa se riski, että jokin ohjelma ei päivityksen jälkeen toimi ilman vierihoitoa. Yleensä ottaen tällaiset ongelmat ovat kuitenkin varsin harvinaisia.
Erityisesti ns. metajakeluissa (engl. metadistribution) päivitykset on järkevintä tehdä käsin ja tarkistaa päivityksen jälkeen, että kaikki toimii niinkuin pitää. Metajakeluita ovat esimerkiksi Debian testing, Debian unstable ja Gentoo.