Allteftersom har jag blivit tveksam till rubriken "Programinstallation" till detta avsnitt eftersom "paket" och hanteringen av dem betyder avsevärt mycket mer. Ett paket (i SuSE och Fedora heter dessa [programnamn].rpm, i Debian och derivaten [programnamn].deb, i Slackware [programnamn].tgz eller .txz) är en programvara (i grunden från ren källkod) som är kompilerad och packad för att vara installerbar i den distribution jag är intresserad av med hjälp av en distributionsegen pakethanterare. Paketet innehåller dessutom information om vilka speciella delar det innehåller samt vilka beroenden det kan ha. -Det är dessutom så att när du vill installera en speciell programvara behöver du inte ha den på din hårddisk eller annat medium (CD/USB et c) eftersom pakethanteraren arbetar mot -och är ansluten till- ett, eller fler, Programvaruförråd, -arkiv eller Repositorier. -Allt detta sammantaget kan hanteras av pakethanteraren så att du i pakethanteraren kan söka efter en viss programvara som du vill installera, pakethanteraren tar reda på om den finns i repositorierna, vilka beroenden programvaran har samt föreslår installation av dessa beroenden i rätt ordningsföljd och/eller varnar om något beroende inte finns tillgängligt, så att du kan lösa detta manuellt. Accepterar du pakethanterarens förslag installeras programmet med de beroenden som krävs för att programmet ska fungera.
Pakethanterare
De flesta större distributioner, som Debian och derivaten Ubuntu och LinuxMint, Fedora, OpenSuSE (nedan kallad SuSE) har pakethanterare
som förenklar installationen av de distributionsegna paketen, bl a genom att hjälpa till att lösa paketens beroenden under
installationen. Dessa pakethanterare finns oftast i en grafisk variant, d v s med grafiskt gränssnitt, och en terminalvariant.
Slackware's pakethanterare skiljer sig från detta genom att inte hjälpa till att lösa beroenden, de får man hålla reda på och
installera själv. -Slackware's pakethanterare installerar/uppgraderar/avinstallerar programmet i fråga. I stället finns i
Slackware en del hjälpmedel för att hantera programvarorna/paketens beroenden:
Slackbuilds och Sbopkg.
Upplägget av beskrivningen för Slackware skiljer sig därför avsevärt från de övriga.
I det följande förutsätts att du installerat en Full Slackware-installation, det som räknas som The Slackish Way ;-).
Det underlättar då mycket av Slackware's hjälpmedel för pakethanteringen kräver tillgång till GCC (Gnu Compiler Collection)
som annars måste installeras separat.
Program som hör till Slackware's egen distribution
egentligen mest användbart för att välja program under installationen samt möjligen för att avinstallera och lista
(se även Terminal) installerade program. Hanterar bara Slackware's ordinarie paket (de som ingår i en standard Slackware
installation.
Körs genom:
# pkgtool
Färdiga Slackwarepaket kan lika gärna -eller hellre- installeras/uppgraderas/avinstalleras från terminal.
Terminalhantering kan sägas utgöra grunden i Slackware's hantering av paket (*.tgz/*.txz).
Körs som root genom:
# installpkg/upgradepkg/removepkg [programnamn].tgz/txz
Installerade program kan listas med:
$ ls -l /var/log/packages | less
bläddra i listan med piltangenterna, stäng den med "Q"
Man kan också söka på om ett speciellt program är installerat med hjälp av filtret "grep":
$ ls -l /var/log/packages | grep [programnamn]
Upgradering av paket som hör till de "egentliga" Slackwarepaketen görs enklast genom slackpkg.
Körs genom:
# slackpkg [Option]
Slackpkg ställs först in mot någon av Slackware's egna repositories och svartlistning av vissa pakettyper. Bägge konfigureras i
/etc/slackpkg/
Repositorier först: ställs in genom redigering av /etc/slackpkg/mirrors som innehåller en väl täckande förteckning av internationella
repositorier, samtliga inaktiverade genom #-markering:
Ordinarie Slackware-repositories kan du annars hitta på:
http://mirrors.slackware.com/mirrorlist/
t ex
ftp://ftp.slackware.no/slackware/
Ta bort #-markeringen framför den spegel du väljer, i mitt fall för Slackware 14.0:
ftp://ftp1.uninett.no/slackware/slackware64-14.0/
Svartlista därefter de paket du inte vill ska uppgraderas av slackpkg som bara hanterar Slackware's ordinarie paket:
Konfigureras i
/etc/slackpkg/blacklist: som innehåller några default-förslag, t ex:
# Automated upgrade of kernel packages aren't a good idea (and you need to # run "lilo" after upgrade). If you think the same, uncomment the lines # below # kernel-firmware kernel-generic kernel-generic-smp kernel-headers kernel-huge kernel-huge-smp kernel-modules kernel-modules-smp kernel-source # # aaa_elflibs can't be updated. # aaa_elflibs # This one will blacklist all SBo packages: [0-9]+_SBo
Lägger till några ytterligare jag fått genom att köra "slackpkg clean-system" som listar installerade program som inte hör till Slackware's ordinarie paket (tillsammans med en egen kommentar):
# funnet genom att köra slackpkg clean-system och som inte tillhör # Slackware-installationen. ffmpeg libdvdcss vlc kbackup sbopkg src2pkg src2pkg-helpers
OBS! slackpkg clean-system tar inte omedelbart bort paket som inte hör till Slackware's ordinarie officiella paket. Det listar bara de paket som inte gör det och ger möjlighet att avinstallera dem! OBS!
Därefter
# slackpkg update [med jämna mellanrum]
Möjliga uppgraderingar (utom mina svartlistningar) listas genom
# slackpkg upgrade-all
En halvgrafisk dialog visar möjliga uppgraderingar: Avmarkera de program du inte vill uppgradera med spacebar (mellanslag): OK! Så uppgraderas de övriga.
Program av hög kvalitet som inte hör till Slackware's egen distribution
Slackbuilds: för programvaror som inte finns bland Slackwares egna program
Nås med webläsare på internetadressen http://slackbuilds.org
Ställ först in vilken version av Slackware du kör (32- eller 64-bitar är egalt, slackbuildscripten innehåller hantering av detta).
Sök på programnamn.
Du får vanligen upp en, kanske två länkar: Välj en
Då visas en presentation av programmet
Se särskilt under "This requires". Det programmet är ett beroende för det du sökt på och måste nämligen byggas
och installeras före det du sökt!
Beroenden brukar annars listas i README-, eller *.info-länken litet längre ner på sidan (under Individual Files).
Därefter är principen enkel:
Ta hem programmets källkod
Ta hem programmets Slackbuildscript
packa upp det packade Slackbuildscriptet:
$ tar -xvzf [programnamn].tar.gz (UTAN versionsnummer; det med versionsnr är källkoden)
Flytta Källkoden till den uppackade Slackbuildkatalogen
Kontrollera att Slackbuildscriptet är körbart (rättigheterna inkluderar x).
$ ls -l
Om inte:
$ chmod +x rootbehörighet $ su lösenord *********** # ./[programnamn].Slackbuild
Det färdigbyggda paketet hamnar i /tmp/ Hämta och installera det genom:
# installpkg
Slackbuilds kan också hanteras genom SBopkg, ett halvgrafiskt verktyg som i förstone inte är lätt att förstå sig på.
Installationsbeskrivning under guiden.
(egen referens Se katalogen /+SBopkg/1.sbopkg.txt)
INTRODUKTION
Sbopkg är en programvara som med en halvgrafisk gui i någon mån förenklar hanteringen av Slackbuilds, särskilt då ett program
har många beroenden. Sbopkg arbetar med "köer" som sätts samman av en speciell organisation http://www.sbopkg.org/.
Köerna är i sig inget obegripligt utan sätts samman så de beroenden ett program jag vill installera ingår i "kön" till det
programmet och byggs och installeras i rätt ordning (beroendet först, programmet sedan.
Nog så komplicerat då många underberoenden finns %-)
Grundinstallation Se: pkt 1-3 under Sbopkg installation nedan.
Programmet körs genom
# sbopkg
som startar det programmet med sin grafiska meny: Se Bild 1 nedan.
Bild 1
Det använder Slackbuilds.org som repository Inställning: Se pkt 4 under Sbopkg installation nedan.
Synkronisera nu mot det inställda repot: Bild 1 ovan: Sync
(Bör göras med jämna mellanrum för att se om det tilkommit nya Slackbuilds på Slackbuild.org)
Det finns nu i huvudsak två sätt att köra sbopkg
A. bygga köerna själv Se pkt. 5-7 under Sbopkg installation nedan.
Man söker då efter sitt program (i Slackbuilds.org-repot) genom menyn: Se Bild 2 nedan:
Bild 2
"Search" och skriver programnamnet (i exemplet ettercap)
Hittas det: Markera och tryck OK
En ny meny kommer fram: Se Bild 3 nedan.
Bild 3
Läs README och .info och kontrollera beroenden (ev. beroenden måste installeras före det program du sökte på!)
Finns beroenden kan du nu antingen:
Aa. Välja att vänta att lägga till det program du eg vill ha och gå tillbaka och söka efter beroendena
(som också måste kollas för ev ytterligare beroenden) och -när du täckt in alla- successivt lägga in dem i kön i rätt ordning
genom "Queue" i denna meny (Bild 3 ovan), eller "Add" i någon föregående.
Ab. Direkt lägga till det program du sökte genom "Queue" i denna meny (Bild 3 ovan)
Därefter söka på beroendena, (kolla följdberoenden), lägga till med "Queue" till alla beroenden finns med.
Därefter rättar du till ordningsföljden i kön genom huvudmenyn Bild 2 ovan: "Queue"->
En undermeny öppnas Bild 4:
Bild 4
"Sort"
När ordningsföljden är klar kör du under
# sbopkg->Queue->Process (innevarande menybild)
och väljer endast bygga eller bygga och installera.
Du kan också spara din egentillverkade kö under något namn genom Queue-Menyn: Save.
Du öppnar den igen vid senare tillfälle med
# sbopkg->Queue->Load
Raderar du din kö raderas bara din egen kö och inget i ditt synkade repo eller repot i sig!
(Inte heller i gitoriousköerna som presenteras senare under B.)
Du kan alltså närsomhelst bygga om den.
Anm. Har man otur och stöter på ett program som har många beroenden (dessutom kanske något beroende som inte finns i Slackbuilds.org) gäller det att hålla tungan rätt i munnen när man bygger sin kö själv! Kan vara vettigt att föra anteckningar om beroendeordningar vid sidan om!
B. Använda "färdigbyggda köer" (i den mån de finns) från gitorious.org Se pkt 8-9 under Sbopkg installation nedan om hämtning av
de färdiga köerna, pkt 10 om uppdatering av köerna.
Om du nu vill undersöka om det finns en "färdigbyggd" kö startar du sbopkg
# sbopkg
och i huvudmenyn använder du nu INTE "Search" som söker i Slackbuilds.org-repot, utan
"Queue":
Kömenyn öppnas: Bild 4 ovan: "Load"
och söker i gitorious-arkivet med hjälp av förstabokstaven i det program du söker och bläddrar uppåt/nedåt med
piltangenterna. Markerar med Spacebar (mellanslag):
OK
Du kan då betrakta kön genom kömenyn "View" (där du kan se beroendena köade i rätt ordning), eller installera den direkt
genom "Process".
Anm. Skulle du här råka radera en kö medan du arbetar här raderas den definitivt från ditt hemtagna
gitorious-arkiv.
Du kan alltid bygga en egen kö för just det programmet, men du kan också göra en ny kloning från gitorious.org Se pkt 8 nedan.
1. Ladda ner och installera paketet med "installpkg"
2. Läs igenom konfigurationsfilen i /etc/sbopkg, där ser du vilka kataloger som används.
3. Du måste köra programmet som "root", så starta med...
# sbopkg ..så kommer ett grafiskt fönster fram. # sbopkg The following directories do not exist: Variable Assignment -------- ---------- REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,14.0 LOGFILE directory -------> /var/log/sbopkg QUEUEDIR ----------------> /var/lib/sbopkg/queues SRCDIR ------------------> /var/cache/sbopkg You can have sbopkg create them or, if these values are incorrect, you can abort to edit your config files or pass different flags. (C)reate or (A)bort?: C
4. Sync, först ska du bestämma vilken "active repository" du ska använda,
det gör du via "Utilities -- Repository": Väljer SBo i mitt fall (14.0)
sedan går du tillbaka och "Sync"
5. Search, nu kan du söka efter de paket du vill ha, kolla Readme och info filerna efter
beroenden och lägga att i "queue", för att sedan.
Exempel: Search (Se bild 1-4 ovan)
Söker på tor (får svar som innehåller bokstäverna tor i något sammanhang, bland dem hittar jag network-tor)
Markerar network-tor: Enter
Så kommer en ny Menyrad med bl a README fram: View
Behöver en tor /user/group UID/GID 220 create like groupadd -g 220 tor useradd -u 220 -g 220 -c "The Onion Router" -d /dev/null -s /bin/false t Following can be used to start/stop automatically /etc/rc.d/rc.local if [ -x /etc/rc.d/rc.tor ]; then /etc/rc.d/rc.tor start fi /etc/rc.d/rc.local_shutdown if [ -x /etc/rc.d/rc.tor ]; then /etc/rc.d/rc.tor stop fi
Lägger inte till nu!
Söker på SMPlayer och göra samma utan att lägga till.
Söker på gedit: Hittar /development/gedit:
Inget särskilt under Readme.
Under .info hittar jag Requires pygtksourceview
utöver det nedladdningsplats, md5sum et c.
Under Slackbuild hittar jag bara scriptet.
Söker nu på beroendet pygtksourceview
Under .info hittar jag Requires gtksourceview
Söker på gtksourceview Inga extra beroenden.
Lägger till beroendena i kön (i omvänd ordning) Queue
gtksourceview
pygtksourceview
gedit
6. Lägger till i kön: Queue Se även under Gör om 6 nedan
7. Process: Väljer [Process "Download/build/install gtksourceview, pygtksourceview, gedit"] Se även under 7 nedan
[7. Missade beroendena här! Process "Download/build/install gedit. Se under Gör om 7 nedan
Valet: Download only
Build: Download and build
Install: Download, build, and install
Install Enter:
Fel:
configure: error: Package requirements (
libxml-2.0 >= 2.5.0
glib-2.0 >= 2.22.0
gthread-2.0 >= 2.13.0
gio-2.0 >= 2.23.1
gtk+-2.0 >= 2.16.0
gtksourceview-2.0 >= 2.9.7
gconf-2.0 >= 1.1.11
) were not met:
gedit:
Would you like to continue processing the rest of the
queue or would you like to abort? If this failed
package is a dependency of another package in the queue
then it may not make sense to continue.
(Y)es to continue, (N)o to abort, (R)etry the build?: N
No package 'gtksourceview-2.0' found
Dessa beroenden stod absolut inget om README, Slackbuild, .info et c.
-Jo, de stod i .infofilerna! REQUIRES]
Gör om, från 6.
6. Queue, "Manage the queue"
Tillslut har du fått ihop en "queue" som innehåller alla dina beroenden, nu kan du redigera den
och sedan..
7. Process. bygger och installerar du allt.
I ganska stor utsträckning finns färdigbyggda köer man kan hämta för att förenkla byggandet, särskilt då antalet beroenden är
högt.
Naturligtvis har någon sammanställt dessa "queues" också...
http://gitorious.org/sbopkg-slackware-queues
8. Hämtning av färdiga Slackwareköer från gitorious.org kan göras på ettdera av två sätt:
8:1 Om du nu ex.v. står i din hemkatalog och vill ta ner den så använder du "git clone"..
$ git clone git://gitorious.org/sbopkg-slackware-queues/sbopkg-slackware-queues.git [git clone = Klona ett arkiv till en ny katalog]
Gör en ny katalog: /home/[username]/bin/SBopkgs
bash-4.2$ mkdir SBopkgs
går dit med terminalen
bash-4.2$ cd /bin/SBOpkgs
och kör
bash-4.2$ git clone git://gitorious.org/sbopkg-slackware-queues/sbopkg-slackware-queues.git Klonar till "sbopkg-slackware-queues"... remote: Counting objects: 9012, done. remote: Compressing objects: 100% (4518/4518), done. remote: Total 9012 (delta 320), reused 7980 (delta 122) Tar bort objekt: 100% (9012/9012), 905.28 KiB | 1.12 MiB/s, done. Analyserar delta: 100% (320/320), done. bash-4.2$
...nu får du en katalog "sbopkg-slackware-queues", flytta till den och kopiera innehållet till
/var/lib/sbopkg/queues (kolla att den katalogen finns).
och
# cp -r * /var/lib/sbopkg/queues/
Katalogen /var/lib/sbopkg/queues Existerar!
bash-4.2$ cd sbopkg-slackware-queues bash-4.2$ su Lösenord: bash-4.2# cp -r * /var/lib/sbopkg/queues/
Raderar ursprunget i /home/larse/bin/SBopkgs
bash-4.2# rm -R sbopkg-slackware-queues
8:2 Du kan också hämta gitorious-arkivet direkt till /var/lib/sbopkg/queues/ [den katalog som skapades vid installationen av sbopkg]
Radera först ditt eventuellt befintliga gitorious-arkiv [katalogen queues] i /var/lib/sbopkg
bash-4.2$ cd /var/lib/sbopkg bash-4.2$ su lösenord: *******
Radera de befintliga köerna
bash-4.2# rm -r queues
Kontrollera att du står i rätt arkiv:
bash-4.2# pwd [Print Working Directory] /var/lib/sbopkg
Hämta nu det aktuella gitorious-arkivet direkt till /var/lib/sbopkg:
bash-4.2# git clone git://gitorious.org/sbopkg-slackware-queues/sbopkg-slackware-queues.git queues Cloning into 'queues'... remote: Counting objects: 9012, done. remote: Compressing objects: 100% (4319/4319), done. remote: Total 9012 (delta 321), reused 9012 (delta 321) Receiving objects: 100% (9012/9012), 854.09 KiB | 1.30 MiB/s, done. Resolving deltas: 100% (321/321), done. bash-4.2#
Du kan nu kontrollera att du fick ner köerna [katalogen "queues" med innehåll]
bash-4.2# ls SBo SBo-git queues [ny katalog "queues" skapades]
Kontrollera innehållet:
bash-4.2# cd queues/ bash-4.2# git pull [Fetch from and merge with another repository or a local branch.] Already up-to-date. bash-4.2#
Stämmer med arkivet på git://gitorious.org/sbopkg-slackware-queues/! OK!
När du nu vill installera ett program så går du till..
9. Queue, "Manage the queue"
"Load" här kan du skriva in första bokstaven på programmet och
använda den tangenten att bläddra med ned tills du är förbi programmen med stor bokstav som
står först...
låter invecklat men du lär dig det snabbt...du kan naturligtvis bläddra hela vägen med pil-tangenterna om du vill.
Sedan redigerar du din kö, det finns eventuellt program som redan är installerade som du tar bort
innan du går vidare till
Process.
Söker nu enligt ovan för gedit
Queue
Load
Söker upp gedit, Markerar med "Mellanslag": OK
Väljer View the queue
Se bild 5 ovan
Här ligger beroendena!
Installerar: Fungerar!!
Flyttar upp programmen från /tmp till /home/larse/bin/SBopkgs/
10. Uppdatering av gitorious-arkivet
OBS! fungerar bara om arkivet hämtats enligt 8:2! OBS!
sannolikt beroende på att fjärrrepo och lokal katalog sparats i git. I själva verket för att
fjärrepot sparats i /var/lib/sbopkg/queues/.git/FETCH_HEAD!
Kontrollera nu att ditt hämtade arkiv helt motsvarar källans [git://gitorious.org/sbopkg-slackware-queues], uppdatera avvikelser
Navigera som root till /var/lib/sbopkg/queues
bash-4.2# su lösenord: ***** bash-4.2# cd /var/lib/sbopkg/queues bash-4.2# git pull [Fetch from and merge with another repository or a local branch.] Already up-to-date. bash-4.2#
Har arkivet hämtats enligt 8.1 uppdateras det genom att jag raderar innehållet i katalogen
/var/lib/sbopkg/queues
bash-4.2# cd /var/lib/sbopkg/queues bash-4.2# rm -r bash-4.2#
och ett nytt hämtas på samma sätt som beskrivs under 8.1 ovan.
Då och då bör katalogen /tmp/SBo tömmas!
Där förvaras "byggfilerna" till sbopkg (*.tgz och *.txz) och Slackbuilds och kan snabbt bli ganska stor!
Köerna i /var/lib/sbopkg/queues påverkas inte av detta, och paketen *.txz lägger dig direkt under /tmp.