Telepítés forrásprogramból

Olyankor van rá szükségünk, ha nem amd64-es architektúrájú a gépünk, vagy módosítani szeretnénk a programot. Az architektúrát így lehet kiíratni:

dpkg --print-architecture

Az első lépés a már említett /etc/apt/sources.list.d/gyimesilaszlo.list fájl kiegészítése egy második sorral:

deb-src http://www.gyimesilaszlo.hu stretch main

majd root-ként az apt-get update parancs kiadása. Az apt parancs ettől látja a forrásprogramokat. Ha csak le akarjuk tölteni, és kézzel fordítani:

apt-get source csomag

A telepítés lépései

A forráscsomag telepítése a binárison keresztül történik:

  forráscsomag → bináris csomag → install.

A bináris csomag előállítása a fordítás, a keletkezett programok és más fájlok végleges helyére másolása az installálás, magyar szóval telepítés.

A forrás- és bináris csomag neve azonos.

A függőségek felderítése

A fordítás folyamatát a wikikotta csomagon keresztül mutatjuk be, de természetesen más csomagé ugyanígy történik.

Először arról kell meggyőződni, hogy minden kellék (csomag) megvan-e a fordításhoz:

apt-get build-dep wikikotta

Ezt fogjuk látni:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:wikikotta : Depends: libwikisabl but it is not installable
                       Depends: libgyim but it is not installable
E: Unable to correct problems, you have held broken packages.
Azért „not installable”, mert installálni csak bináris csomagot lehet, és a gyimesilaszlo repository-ban csak amd64-es bináris csomagok vannak. Forrásban viszont megvan a két hiányolt csomag, de azoknak is lehetnek függőségei.

apt-get build-dep wikikotta libwikisabl libgyim

…
The following packages have unmet dependencies:
 builddeps:libwikisabl : Depends: libgyim (>= 1.2) but it is not installable
 builddeps:wikikotta : Depends: libwikisabl but it is not installable
                       Depends: libgyim but it is not installable
E: Unable to correct problems, you have held broken packages.
A libgyim csomagnak nincsenek függőségei: ezzel kell kezdeni a fordítást, majd a bináris csomagot feltelepíteni (mivel mindkét másik csomag függ tőle). Ugyanezt megismételni a libwikisabl-lal, végül jön az eredeti cél, a wikikotta. Ez bizony macerás. Ezért szeretjük a bináris csomagokat: ott minden automatikusan, egy lépésben történik.

Fordítás

Ez legalább egyszerű. Választunk egy eredetileg üres könyvtárat wikikotta forrásainak, és abból normál felhasználóként:

apt-get --compile source libgyim

Jó sok üzenetet kapunk, az utolsó sor:

dpkg-buildpackage: info: binary-only upload (no source included)

A könyvtárban keletkezett néhány fájl, köztük egy .deb kiterjesztésű bináris csomag, és egy alkönyvtár, benne a forrásprogramokkal.

Telepítés

Telepíteni a .deb kiterjesztésű bináris csomagokat lehet root-ként:

dpkg -i libgyim_1.2-2_armhf.deb

(1.2-2 a csomag verziószáma, armhf az architektúra, ez esetben raspberry pi.)

A telepítéskor újabb csomaghiányokat tapasztalhatunk (libgyim-nél véletlenül nem). A hiányzó csomagok a fordítást nem, de a működést akadályozzák. Ugyanúgy forrásból kell telepíteni őket, mint a fenti példában libgyim-et, kezdve a függőségek felderítésével. A telepítés sorrendje tetszőleges. Végül újra ki kell adni a függőség miatt meghiúsult dpkg utasítást.

A függőségek későbbi vizsgálatakor az apt-get le akarja törölni a függőség miatt sikertelenül telepíteni próbált csomagot. Ezt nem érdemes hagyni, különben később újra le kell tölteni és fordítani a csomagot.

A teljes telepítés

wikikotta fordítás: hiányzik libgyim és libwikisabl wikikotta fordítás, telepítéskor hiányzik logek, utf8hu és wikiscript wikikotta telepítés.

Fordítási hibák

A sikertelen fordításnak két oka lehet: A hibakeresés lépései normál felhasználóval:
  1. adjuk ki a apt-get update utasítást, töröljük le a letöltött csomagot, és próbáljuk meg még egyszer (többször ne)
  2. lépjünk be a csomag forráskönyvtárába, és adjuk ki a make parancsot. Ez lefordítja a bináris programokat. Nem szabad sem hibajelzést, sem figyelmeztető üzenetet kapni. Ha mégis, a hibaüzenetből kiderül, ha a fordításhoz szükséges program hiányzik. A https://www.debian.org/distrib/packages lap alján, a Keresés a csomagok tartalmában fejezetben megkereshetjük, melyik csomagban van: telepítsük fel, és kezdjük újra a hibakeresést. Ha a fordítás figyelmeztetést vagy hibát ír ki, akkor a forráscsomag függőségeiben van a hiba: email a lap alján levő címre.
  3. Ha a binárisok simán lefordultak, a bináris csomag létrehozásában van a hiba. Keressük meg Makefile-ben a szabályt (.deb-re érdemes keresni), pl.:
    # make wikikotta_1.0-2_amd64.deb
    $(CSNEV)_$(VERZIO)-${ALVERZ}_amd64.deb : $(BINNEV)
    
    A komment megmondja a kiadandó utasítást. Ettől kezdve a debian-fejlesztők kezében vagyunk… Legvégső esetben a debian csomagkezelő megkerülésével installálhatunk a make install paranccsal, ezt már root-ként kiadva.

Vissza a repository gyökérbe
Levélcím: gyimesilaszlo9 kukac gmail pont com
Valid HTML 4.01 Transitional