Programinstallation i Slackware


bild







Program - paket?


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.


Slackware's ordinarie program (paket) *.tgz och *.txz

Program som hör till Slackware's egen distribution


Packagetool

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


Terminal-installation, grunden i hanteringen av Slackwarepaket

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]


Slackpkg

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.


Slackware paket av annat ursprung

Program av hög kvalitet som inte hör till Slackware's egen distribution


Slackbuilds

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)


Sbopkg, en liten guide

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

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

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

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

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.




Sbopkg installation

http://www.sbopkg.org/


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.



valid-xhtml10 Strict valid-css