Hvis du arbejder på en pakkebaseret Linux-installation (for eksempel Debian, Mandrake, Red Hat eller SuSE), bør du så vidt muligt bruge systemets pakkehåndtering til at installere programmerne.
Eksempel A-1. Installation af pakker på et Debian-baseret system
Hvis du kører et Debian-baseret system, og der i en installationsvejledning her i bogen står at du på Debian-systemer har brug for en pakke ved navn "eksempel", skulle de følgende to kommandoer installere pakken på dit system.
hven% su - Password: hven# apt-get update hven# apt-get install eksempel hven# exit hven%
Eksempel A-2. Installation af pakker på et RPM-baseret system
Hvis du kører et RPM-baseret system med en 32-bit Intel-kompatibel processor, og der i en installationsvejledning her i bogen står at du på RPM-baserede systemer har brug for en pakke ved navn "eksempel", skal du ud og lede efter en fil ved navn "eksempel-<tal>.i386.rpm" (hvis du kører på en anden processortype, erstattes "i386" med en tilsvarende streng for den processor). Hvis du er heldig, findes filen på en af dine Linux-cd-rom'er, og ellers må du ud på nettet og lede. Når du har fundet filen, så skulle den følgende kommando installere pakken på dit system.
hven% su - Password: hven# rpm --upgrade eksempel-<tal>.i386.rpm hven# exit hven%
Det kan her ske at systemet brokker sig over at der mangler nogle pakker som denne pakke har brug for. Dem bliver du i så fald nødt til at installere først.
Eksempel A-3. Installation af ".tar.gz"-filer
Hvis du kun kan finde en pakke med et program i form af en ".tar.gz"-fil, bør du strengt taget pakke det om til en pakke af den type dit system bygger på. Du kan se hvordan det gøres i afsnit ... (Debian-pakker) eller afsnit ... (RPM-pakker). Hvis vi vil springe den ideelle løsning over og bare installere programmet i en fart, kan det normalt klares med den følgende række kommandoer (vi antager at pakken hedder "eksempel-0.3.1.tar.gz").
hven% tar xzvf eksempel-0.3.1.tar.gz eksempel-0.3.1/COPYRIGHT eksempel-0.3.1/configure ... hven% cd eksempel-0.3.1/ hven% ./configure && make && echo O.k. ... O.k. hven% su root -c 'make install && echo O.k.' Password: ... O.k. hven% make clean ... hven% cd ../ hven% rm -rf eksempel-0.3.1/
Kort fortalt sker der følgende: Pakken pakkes ud (tar), sættes op (./configure), oversættes (make), installeres (make install), og til sidst ryddes der op.
For at komme i gang med at programmere i Ada på Linux skal du blot installere GNU Ada oversætteren (GNAT), men der er et bredt udvalg af andre pakker man med fordel kan installere til forskellige specielle formål. Tabel A-1 indeholder en oversigt over de vigtigste pakker fordelt på de opgaver de er relevante til. Hvis du kører SuSE, Red Hat eller en lignende RPM-baseret distribution, bør du kunne finde alle de relevante pakker hos "Ada for Linux Team" (ALT) på http://dk.gnuada.org/alt.
Bemærk at de aktuelle ALT-pakker ikke kan bruges sammen med Red Hat 8.0-pakkerne, så hvis man bruger "gcc-gnat" og "libgnat" fra Red Hat 8.0, vil man være nødt til selv at oversætte alt det tilbehør som ALT ellers har pakket. Desuden er der (blandt andet) fejl i matematikbiblioteket der kommer med Red Hat 8.0-pakkerne.
Tabel A-1. Pakker til programmering i Ada
Opgave | Debian-pakker | Red Hat 8.0-pakker | RPM-pakker fra ALT |
---|---|---|---|
Generel Ada-programmering. | gnat, gnat-runtime | gcc-gnat, libgnat | gnat, gnat-runtime |
Distribuerede programmer. | gnat-glade | ? | gnat-glade |
Programmer der kan køre på en "Java Virtual Machine" (JVM). For eksempel småprogrammer (engelsk: "applets") der skal køre i en webside. | jgnat (samt en JVM, se afsnit ...) | ? (samt en JVM, se afsnit ...) | jgnat (samt en JVM, se afsnit ...) |
Grafiske programmer der også umiddelbart kan oversættes til andre styresystemer. | GtkAda, GtkAda-runtime (samt GLADE, se Afsnit A.9) | ? (samt GLADE, se Afsnit A.9) | GtkAda, GtkAda-runtime (samt GLADE, se Afsnit A.9) |
Eksempel A-4. Oversætte og køre "smart.adb"
Kildeteksten til programeksemplet "smart.adb" kan findes i bogens eksempelsamling (http://www.linuxbog.dk/program/eksempler/smart.adb). Det kan oversættes med kommandoen:
linux% gnatmake -m smart -cargs -gnatv -gnati1 -gnatf -gnato -fstack-check gnatgcc -c -gnatv -gnati1 -gnatf -gnato -fstack-check smart.adb GNAT 3.13p (20000509) Copyright 1992-2000 Free Software Foundation, Inc. Compiling: smart.adb (source file time stamp: 2003-01-10 20:43:30) 130 lines: No errors gnatbind -x smart.ali gnatlink smart.ali linux%Man kan også nøjes med gnatmake smart, men det er ikke ideelt, da der så er en del nyttige tjek der bliver fjernet fra programmet. Det oversatte program skulle nu gerne findes som smart i samme katalog, så du kan køre det sådan her:
linux% ./smart -- Sætter porten til 2#1000000# -- Hej -- Sætter porten til 2#1100000# -- -- Sætter porten til 2#10000# -- Ver -- Sætter porten til 2#100000# -- den linux%Da programmets to tråde ikke snakker med hinanden undervejs, kan du ikke være sikker på at teksterne bliver blandet præcis som ovenfor.