Debian Fordítás

Hogyan kell lefordítani egy Debian vagy Ubuntu csomagot?

Főbb lépések a következők:

  • apt-get install dpkg-dev
    • Ez a source csomagok kezeléséhez szükséges csomagokat telepíti, és csak egyszer kell futtatni.
  • apt-get source packagename
    • Ez letölt pár file-t: egy .orig.tar.gz, egy .dsc és egy .diff.gz nevűt. Ezekből áll össze a debian csomag forrása.
    • Ha egyből a fordítást is el akarod indítani, akkor apt-get -b source packagename
    • Ha valamiért már birtokodban lenne az orig.tar.gz, .dsc és .diff.gz, akkor azt a dpkg-source -x <whatever>.dsc paranccsal lehet kitömöríteni.
  • Lépj be az újonnan létrejött könyvtárba, aminek a neve jó eséllyel packagename lesz.
  • dpkg-buildpackage -rfakeroot -uc -b -jauto
    • Ez szépen lefordítja a csomagot, és létrehoz egy (vagy több) csinos kis .deb file-t egy könyvtárral feljebb.
    • Ezt a csomagot dpkg --install packagename.deb paranccsal telepítheted.

Miért jó lefordítani egy csomagot ahelyett, hogy a szép előregyártottat használnád?

  • Mert van egy plusz patch amit bele akarsz gyúrni.
  • Valamilyen hibát ki kell javítanod a forrásban.
  • Vagy a számítógépeden valamiért a gyári bináris nem fut, de a helyben fordított igen (pl mplayer egyes gépeken).

Utómunkálatok

Ha beállítottad, hogy a rendszered automatikusan frissüljön (érdemes!), és nem szeretnéd hogy az újonnan fordított csomagodat a rendszer "frissítse" a következő előregyártott változattal, akkor még egy lépés van hátra.

  • echo packagename hold | dpkg --set-selections
    • Ez beállítja, hogy a csomagból a jelen verzió marad, akkor is ha upgrade van.
  • dpkg --get-selections packagename
    • Ezzel tudod leelenőrizni, hogy az előző művelet sikeres volt-e.
    • Ha valamikor a jövőben mégis upgradelni szeretnéd, akkor a következővel tudod visszacsinálni:
      echo packagename install | dpkg --set-selections

Debian release keverése

Nem tartozik szorosan a fordítás témájához, de kapcsolódik következő téma: mi van, ha egy csomag nem található a stable változatban, vagy neked konkrétan a testing-ben található változatra van szükséged?

A megoldás a következő:

  • Az /etc/apt/sources.list file-ban hozzá kell adni a testing repokat. Ezt úgy a legegyszerűbb, ha a stable sorokat megduplázod.
  • Az /etc/apt/apt.conf.d könyvtárban létre kell hozni egy új file-t, mondjuk 30defaultrelease néven. Ennek a tartalma a következő legyen:
    APT::Default-Release "stable";
  • Ezek után ha egy csomagból a testing változatot szeretnéd telepíteni, akkor a következő paranccsal teheted meg:
    apt-get -t testing install <csomagnév>

InfoTéma
Tagek: