Ovrigt/Var Program Installeras

Från Ubuntu Sverige

Hoppa till: navigering, sök

Innehåll

[redigera] Var program installeras i Ubuntu GNU/Linux // Hur katalogträdet är uppbyggt

Hur och var program installeras i Ubuntu verkar vara en återkommande fråga och en källa till mycket huvudbry. Mycket av logiken bakom installationen kan härledas tillbaka till gamla UNIX dagar i början på 1970-talet.

[redigera] Windows

I det för tillfället mer populära operativsystemet Windows, lägger sig installerade program oftast i en katalog som heter Program under den primära partitionen C:

Ett exempel kan vara arkivhanteraren Winzip, som anger som standard installationskatalogen C:\Program\Winzip\

Under denna katalog lägger sig alla filer som har med Winzip att göra, med ett undantag: wz32.dll

DLL-filer är Dynamic Link Libraries, alltså biblioteksfiler med funktioner i programmet som bara ska gå att kalla på från den exekverbara filen winzip.exe, de ska inte gå att köra fristående. Detta är för att få ner storleken och minnesutnyttjandet på programmen.

Många installationsprogram lägger DLL-filerna i en speciell katalog: C:\Windows\System32\ Alltså inte alls samma katalog som programmet självt, som ligger i C:\Program\Winzip\

Installationsprogrammet för ett Windowsprogram skriver också en hel del inställningar till det förhatliga Registret (Windows Registry).

Registret är en binär fil där till exempel fönsterstorlekar, senaste inställningarna, konfigureringar av det grafiska gränssnittet och så vidare, sparas i en svåröverskådlig struktur. Dessa inställningar kan redigeras, men bara om man vet exakt vad man gör. Ibland kan skillnaden mellan två inställningar vara att istället för att skriva 0xF3 på ett ställe, behöver man skriva 0xb1.

Man förlitar sig istället på det grafiska gränssnittet för att göra ändringar.

[redigera] Ubuntu

I Ubuntu installeras program genom ett pakethanteringssystem. I Ubuntus fall heter systemet APT (se artikeln Programhantering).

I Ubuntu och övriga Linux-varianter, används det sedan länge etablerade UNIX-trädet. Ända sedan 1970-talet har filstrukturen sett likadan ut i de flesta UNIX-varianter. Nuförtiden finns standardutseendet nedtecknat i "FHS" - Filesystem Hierarchy Standard.

Varje Ubuntu-program har ett installationspaket, paketet innehåller förutom det körbara programet bl.a. dokumentation och inställningsfiler. Varje installationspaket har därför filer som ska installeras på olika ställen i systemet. Inställningsfilerna på ett ställe och dokumentation på ett annat. Finns det några biblioteksfiler (libraries), installeras dessa på ytterligare ett annat ställe.

[redigera] Inställningsfiler

I UNIX, och Linux, återfinns alla inställningsfiler i en och samma katalog, nämligen /etc. Denna katalog innehåller även underkataloger för de program som har fler än en inställningsfil, eller som vill hålla sina inställningsfiler separata. En typisk inställningsfil för ett program har ofta filändelsen .conf, men detta är långt ifrån regel.

Ett bra exempel är X11 vars inställningsfil xorg.conf är placerad i /etc/X11/xorg.conf

[redigera] Biblioteksfiler

Vissa program i Ubuntu har biblioteksfiler (libraries), och dessa brukar lagras i katalogen som heter /lib . Var dessa /lib-kataloger finns någonstans beror lite på vilken typ av program det är, och vilken typ av bibliotek det rör sig om.

De lib-kataloger som finns som standard på systemet är:

/lib - jätteviktiga bibliotek

/usr/lib - inte fullt lika viktiga bibliotek

/usr/local/lib - bibliotek för lokalt installerade program

/var/lib - bibliotek av olika slag vars innehåll ändras över tiden

[redigera] Körbara filer

De körbara (exekverbara) filerna dvs. programmen som finns i Ubuntu Linux, ligger oftast katalogen /bin (för binary = binär maskinkod). Precis som det finns många olika /lib-kataloger, finns det även många /bin-kataloger i ett Ubuntu-system.

/bin - körbara filer som krävs för att systemet ens ska kunna köra

/usr/bin - körbara filer för användarprogram av olika slag

/usr/local/bin - körbara filer för lokalt installerade program

/sbin - körbara filer som bara superanvändaren har nytta av, som är viktiga för datorn ska fungera

/usr/sbin - körbara filer som bara superanvändaren har nytta av från användarprogram

/usr/local/sbin - körbara filer som bara superanvändaren har nytta av för lokalt installerade program

Ni kanske börjar se systemet?

/lib

/bin

/usr/lib

/usr/bin

/usr/local/lib

/usr/local/bin

Beroende på vilken "nivå" programmet finns, om det är ett viktigt systemkommando (/bin), ett användarprogram (/usr/bin) eller ett lokalt installerat program (usr/local/bin) så har programmet sina biblioteksfiler på samma nivå. Det är som sagt inte alla program som har tillhörande biblioteksfiler i sina paket.

[redigera] Hjälpsidor

Hjälpsidorna för ett program kallas för man pages, vilket är en förkortning för manual pages (eng. manualsidor). Dessa används främst i terminalen, och beskriver kommandot och dess olika alternativ. Nästan varje installationspaket innehåller någon eller några manualsidor. Vid installation av programpaketet läggs dessa i katalogen /usr/share/man/. Man kan få fram informationen på dessa manualsidor för ett visst program genom att skriva "man programnamn" i terminal, exempelvis "man unzip". Man får då upp en textfil som man kan bläddra upp eller ner i genom att använda piltangenterna. För att gå ur en manualsida trycker man på tangenten Q (quit).

Yelp kan visa manualsidor grafiskt - detta borde tas upp här

[redigera] Dokumentation

Det medföljer även dokumentation till varje programpaket. Standard i ett Ubuntu-system är att dokumentationsfilerna för ett program lägger sig i katalogen /usr/share/doc/paketnamn. Om vi skulle installera paketet unzip, skulle dokumentationen till programmet lägga sig i katalogen /usr/share/doc/unzip/. Där finns inte alltid något intressant att hitta, eftersom den mesta informationen kan ligga i de så kallade man-sidorna.

[redigera] Paketstruktur

Varje paket är "självförsörjande". Om katalogerna som paketet behöver för att fungera inte finns tillgängliga, skapar paketet (eller snarare installationsprogrammet) helt enkelt dessa kataloger.

Nedan beskrivs programpaketet dhclient, ett program som behövs för att datorn ska kunna erhålla dynamiska (alltså varierande) IP-adresser för att kunna kommunicera med Internet, via någon form av internetuppkoppling.

Listan nedan visar det "katalogträd" som paketet innehåller. Detta är de filer och den struktur som paketet behöver för att kunna fungera, och det skapar de kataloger som inte finns, och kopierar in filerna på det ställe där de är beskrivna i katalogträdet.

[redigera] Exempel

När filen /usr/share/doc/dhcp-client/doc/rfcindex.html skall installeras, kollar installationsprogrammet först om katalogen /usr finns. Finns den, går det vidare i processen. Efter det, kollar installationsprogrammet om katalogen /usr/share/ finns. Gör den inte det så skapas den, katalogen /usr/share/doc, katalogen /usr/share/doc/dhcp-client/ och till sist katalogen /usr/share/doc/dhcp-client/doc/, sen kopieras filen rfcindex.html in i denna katalog.

Katalogstruktur i paketet dhclient:

/.
/var
/var/run
/var/lib
/var/lib/dhcp
/usr
/usr/share
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/dhcp-options-dhclient.5.gz
/usr/share/man/man5/dhclient.conf.5.gz
/usr/share/man/man5/dhclient.leases.5.gz
/usr/share/man/man8
/usr/share/man/man8/dhclient.8.gz
/usr/share/man/man8/dhclient-script.8.gz
/usr/share/doc
/usr/share/doc/dhcp-client
/usr/share/doc/dhcp-client/doc
/usr/share/doc/dhcp-client/doc/rfcindex.html <- filen i exemplet
/usr/share/doc/dhcp-client/dhcp-on-linux.txt
/usr/share/doc/dhcp-client/copyright
/usr/share/doc/dhcp-client/README.gz
/usr/share/doc/dhcp-client/RELNOTES.gz
/usr/share/doc/dhcp-client/changelog.Debian.gz
/usr/share/doc/dhcp-client/changelog.gz
/sbin
/sbin/dhclient
/etc
/etc/dhclient-script
/etc/dhclient.conf

[redigera] Se även

Personliga verktyg