Slackware Linux - csomagkezelés 2. rész

Az előző rész folytatása.

Mi tehetünk ha olyan programot szeretnénk telepíteni, használni ami nem érhető el a Slackware tárolóban? Erre többféle módszer is létezik. Szerintem nem fogom tudni mindet felsorolni, de megpróbálom érinteni a legtöbb lehetőséget.

0. A Slackware csomag nevének felépítése
1. Más rendszer csomagjának használata
2. Nem hivatalos Slackware tárolók használata
3. Forrásból telepítés

0. A Slackware csomag nevének felépítése

Minden egyes Slackware csomag az alábbi séma szerint épül fel:

programneve-verziószám-architektúra-build.txz

Az architektúra x86-os környezetben az alábbiak lehetnek: i686, x86_64, noarch. Az első a 32, a második a 64 bites, a harmadik az architektúra független csomagok jelölése. Értelemszerűen i686-os rendszeren ne használjuk a 64 bites rendszer csomagjait és fordítva (kivéve multilib, de erről később). A független csomagokat bármely rendszeren telepíthetjük. Ezek általában szkriptnyelven megírt csomagok. Ilyen például a pkgtools csomag is. A build szám jelzi, hogy hányadik fordításnál járunk anélkül hogy a csomag verziószáma emelkedett volna. Ez akkor szükséges ha például új libeket viszünk a rendszerbe és a programot ennek segítségével újrafordítjuk. A Changelog fájl tanulmányozása során elég sor rebuild sort láthatunk. Ezen csomagok build száma fokozatosan emelkedik. Itt azonban nem csak számokat használhatunk. A rendszer csomagok frissítése során általában 1_slack14.1. Ez a current ágra nem vonatkozik, itt folyamatosan frissülnek a csomagok.

1. Más rendszer csomagjának használata

Ez a módszer a legegyszerűbb, de egy kis odafigyelést azért igényel. Ha olyan programot szeretnénk használni ami nincs meg csak mondjuk .deb csomagban ne essünk kétségbe! Töltsük le a .deb állományt és varázsoljuk át Slackware csomaggá. Példánkban használjuk a PergerSoft QtSmartStorage programját. A letöltött csomagot az


ar x qtsmartstorage_1.2.1_amd64.deb

Ekkor a szétbontott .deb állomány mellett az alábbi fájlokat fogjuk találni: control.tar.gz, data.tar.gz (újabban .xz), debian-binary. Ebből a leglényegesebb állomány a data.tar.gz ami magát a programot tartalmazza minden alkotóelemével együtt.

Csináljuk egy pkg/ könyvtárat, lépjünk be és bontsuk ki az előzőleg kibontott data.tar.gz állományt:


mkdir pkg
cd pkg
tar xf ../data.tar.gz

Ahhoz, hogy a csomagkezelő tudja, hogy pontosan milyen csomagot készítünk írjuk meg az install/slack-desc állományt:


mkdir install
nano install/slack-desc

A slack-desc fájl felépítése roppant egyszerű. Minden sor a csomag nevével kezdődik majd kettőspont és a leírás.


qtsmartstorage: QtSmartStorage - Számlázó rendszer / Hungarian Invoice System 
qtsmartstorage:
qtsmartstorage: Magyar Számlázó rendszer / Hungarian Invoice system.
qtsmartstorage: Telepítés után választhatunk, hogy SQLite, PostgreSQL vagy MySQL adatbázissal 
qtsmartstorage: kívánjuk a programot használni.
qtsmartstorage: Számlákra egyedi LOGO-t helyezhető el. Az elkészült számlák másolhatóak. 
qtsmartstorage: Számlaminták alapján folyamatos szolgáltatás számlázható. 
qtsmartstorage: Folyamatosan bővülő számlaformátumok.
qtsmartstorage:
qtsmartstorage: Website: http://pergersoft.hu
qtsmartstorage:

A csomagra vonatkozó leírást jelen esetben a control.tar.gz állományból kivarázsolhatjuk. A control fájlban található Description: sor utáni részek leírják, hogy mire is való az adott csomag. Mi magunk is megírhatjuk, de jobb a készítők által kitalált szöveget használni megkímélve magunkat a weboldalra mászkálástól, kereséstől. Ha ezzel jól meg vagyunk akkor már csak a csomagkészítés van hátra:


makepkg -l y -c y ../qtsmartstorage-1.2.1-x86_64-1.txz

A makepkg paraméterezéséhez olvassuk el a manuálját, vagy csak simán indítsuk el a makepkg programot és nézegessük mind a 3 paraméterét. Ami fontos, hogy azonos könyvtárba nem tudjuk a csomagot elkészíteni ezért is használtam a ../ tagot a csomag neve előtt.

Ezután a csomagot már tudjuk az installpkg program segítségével telepíteni, ha már volt ilyen csomagunk, akkor az upgradepkg segítségével frissítsük. Fontos megjegyezni, hogy az ilyen csomagok nem 100%, hogy működni fognak a rendszereden, mert a különböző libek másként lehetnek fordítva. Szerencsére a QtSmartstorage szépen működik csak a Qt5 csomag telepítésére van szükség hozzá, ami nincs a rendszertárolókban (egyelőre).

2. Nem hivatalos Slackware tárolók használata

Ahhoz hogy ilyen tárolókat használni tudjunk fel kell telepíteni a slapt-get programot. A program honlapja: http://software.jaos.org/. Innét rögtön Slackware csomag formátumban le is tölthetjük. Telepítsük fel az installpkg segítségével. A /etc/slapt-get/slapt-getrc fájlban válasszunk mirrort ugyanúgy mint a slackpkg használata során. Ennél a programnál az apt-get-hez hasonlóan azonban több csomagtárolót is fel tudunk venni. Ezeket külön-külön be tudjuk állítani, hogy milyen sorrendben legyenek használva. A csomagtároló után lévő :OFFICIAL, :CUSTOM, :PREFFERED címkék ennek beállítására szolgálnak.


# Working directory for local storage/cache.
WORKINGDIR=/var/slapt-get

# Exclude package names and expressions.
# To exclude pre and beta packages, add this to the exclude: 
#   [0-9\_\.\-]{1}pre[0-9\-\.\-]{1}
EXCLUDE=^aaa_elflibs,^devs,^glibc-.*,^kernel-.*,^udev,.*-[0-9]+dl$,i[3456]86

# Base url to directory with a PACKAGES.TXT.
# This can point to any release, ie: 9.0, 10.0, current, etc.

SOURCE=http://ftp.slackware.pl/pub/slackware/slackware64-current/:OFFICIAL
#SOURCE=ftp://mirror.netcologne.de/slackware/slackware64-current/:OFFICIAL
#SOURCE=http://mirror.oss.maxcdn.com/slackware/slackware64-current/:OFFICIAL
#SOURCE=ftp://ftp.slackware.at/slackware64-current/:OFFICIAL

# Sources for the testing, extra, and pasture areas - if you use them.
# SOURCE=ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/extra/:OFFICIAL
# SOURCE=ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/testing/
# SOURCE=ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/pasture/

# Source for slapt-get.
#SOURCE=http://software.jaos.org/slackpacks/14.1-x86_64/:OFFICIAL

# Packages on a CD/DVD.
# SOURCE=file:///mnt/cdrom/:OFFICIAL

# Home made packages.
# SOURCE=file:///var/www/packages/:CUSTOM

# Multilib support
SOURCE=http://slackware.org.uk/people/alien/multilib/:PREFERRED

A slapt-get --update frissíti a csomagok listáját, a --upgrade pedig meghatározza a frissítendő csomagok listáját és telepíthetjük ezeket a csomagokat.
Ha sok-sok csomagra van szükségünk akkor a slapt-get forrásokhoz vegyük fel a http://slacky.eu forrását és már is használhatunk rengeteg programot:


SOURCE=http://repository.slacky.eu/slackware64-14.1/:CUSTOM

A slapt-get program párja a slapt-src, ami szintén a jaos.org honlapon található. Ennek segítségével forrásból tudjuk a csomagokat telepíteni. Ugyanúgy állítsuk be a forrást a /etc/slapt-get/slapt-srcrc fájlban:


# preferred mirror
SOURCE=http://www.slackware.org.uk/slackbuilds.org/14.1/
BUILDDIR=/usr/src/slapt-src
PKGEXT=txz

A slapt-src -u, után keressünk egy számunkra szimpatikus programot és ha készült hozzá slackbuild fájl akkor le tudjuk tölteni és a gépünk fordítás után feltelepíti nekünk a csomagot. A http://www.slackbuilds.org/ oldalon kereshetünk a csomagok között, hogy a számunkra fontos csomag megtalálható-e.

A slapt-get és a slapt-src már függőség kezeléssel is fel van vértezve, de sajnos előfordul, hogy egyes csomagok még sem telepítik azokat amikre szükségük lenne. Ilyenkor kézzel kell besegíteni és előbb lefordítani a függőséget, utána a programot. A slapt-src egyik nagy hátránya, hogy a saját gépünkön fogja a fordítási munkát elvégezni, ezért ha nem elég gyors a gép akkor bizony akár órákig is eltarthat egy-egy művelet.

3. Forrásból telepítés

Az egyik legidőigényesebb művelet és nagyon sok részből áll össze. Ezért ez a fejezet a következő 3. részben lesz bővebben kifejtve.

Hozzászólások

ezek szerint te desktopon is 64-bites verziot hasznalsz. Minden rendben van vele?

--
"nem tárgyszerűen nézem a dolgot, hanem a vádló szerepéből. Sok bosszúságot okoztak, örülnék ha megbüntetnék őket - tudom gyarló dolog, de hát nem vagyok tökéletes." (BehringerZoltan)

Semmi problémám a 64 bit alatt, sajnos néhány 32 bites program "kedvéért" multilibet is használok. Ez is tökéletesen megy. Szerintem +1 rész lesz még a multilib-es használat.
A 3. rész a forrásból fordítás lesz reményeim szerint legkésőbb holnap.

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

Itt is beírok egy nagy köszönetet neked a fáradozásaidért. Még át kell néznem és jegyzetelni, de így már könnyebb lesz, köszi!