Jump to content

Creating packages for other distributions (Magyar)

From ArchWiki
Fordítás állapota: Ez az oldal az angol Creating packages for other distributions című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.05.18. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

Az Arch a legjobb. De Ön mégis szeretne szoftvercsomagokat létrehozni más disztribúciókhoz is.

Általános

  • A virtualizáció nyilvánvaló módszer, de további rendszer(ek) karbantartását igényli.
  • Használjon disztribúcióspecifikus szoftvercsomagolási segédprogramokat. Példák: abuild (Alpine), dh-makeAUR, dpkg (Debian), rpm-tools (Fedora). Rövidítések, mint például a dpkg-deb kevésbé összetett feladatokra lehetnek alkalmasak.
  • A chroot vagy systemd-nspawn használata egy alaprendszer létrehozásához az Arch operációs rendszeren belül (de attól elkülönítve). Példák: debootstrap (Debian), dnf (Fedora). Ennek az az előnye is megvan, hogy minimalista, tiszta környezetben történik a szoftvercsomagok létrehozása.
  • A chroot használata csomagolási segédprogramokkal automatizált módon. Példák: pbuilder-ubuntuAUR (Debian).
  • Egy másik módszer az (esetleg inkompatibilis) szoftvercsomag-függőségek kezelésére a statikus linkelés. Kérjük, vegye figyelembe, hogy a legtöbb disztribúció nem nézi jó szemmel ezt a gyakorlatot.
  • Az általános gyakorlat minden disztribúció esetén érvényes. Például, ne hozzon létre root felhasználóként szoftvercsomagokat.

Alpine

Tekintse meg az abuild című oldalt.

Debian

A Debian szoftvercsomagok létrehozása című útmutató elmagyarázza az alapokat. A következő segédprogramok használatát írja le:

This article or section needs expansion.

Reason: Hiányzó segédprogramok: lintian, reprepo, cdbs, svn-buildpackage, javahelper. (Discuss in Talk:Creating packages for other distributions (Magyar))
  • cowdancer — Copy-on-write csomagoló a pbuilder számára.
https://packages.debian.org/sid/cowdancer || cowdancerAUR
  • debootstrap — Segédprogram Debian alaprendszer létrehozásához a semmiből, dpkg vagy apt elérhetősége nélkül.
https://packages.debian.org/sid/debootstrap || debootstrap
  • devscripts — Szkriptek a Debian szoftvercsomag-karbantartók életének megkönnyítésére.
https://packages.debian.org/sid/devscripts || devscriptsAUR
  • dh-autoreconf — Debhelper kiegészítő az autoreconf hívására és a szoftvercsomag-létrehozás utáni takarításra.
https://packages.debian.org/sid/dh-autoreconf || dh-autoreconfAUR
  • dh-make — Segédprogram, amely a forráskódok archívumfájljait kicsomagolt Debian forráskóddá alakítja.
https://packages.debian.org/sid/dh-make || dh-makeAUR
  • dpkg — Ez a Debian szoftvercsomagkezelője.
https://packages.debian.org/sid/dpkg || dpkg
  • dput — Debian szoftvercsomag-feltöltő segédprogram.
https://packages.debian.org/sid/dput || dputAUR
  • git-buildpackage — Debian segédprogramok a szoftvercsomaglétrehozó-rendszer Git-tel való integrálásához.
https://honk.sigxcpu.org/piki/projects/git-buildpackage/ || git-buildpackageAUR
  • makedeb.deb szoftvercsomagok létrehozása PKGBUILD fájlok segítségével. Nagyon hasonlóan a makepkg segédprogramhoz.
https://www.makedeb.org/ || not packaged? search in AUR
  • pbuilder-ubuntu — Egy chroot környezet Debian szoftvercsomagok létrehozásához.
https://launchpad.net/ubuntu/+source/pbuilder || pbuilder-ubuntuAUR
  • quilt — Javítássorozatok kezelése, a változtatások nyomonkövetésére.
https://savannah.nongnu.org/projects/quilt || quilt
  • strip-nondeterminism — Segédprogram a nem-determinisztikus információk fájlokból történő eltávolítására.
https://salsa.debian.org/reproducible-builds/strip-nondeterminism || strip-nondeterminism

Tippek és trükkök a Debian számára

Függőségek kezelésének felülírása

A dpkg nem ismeri fel a pacman által telepített szoftvercsomag-függőségeket. Ez azt jelenti, hogy a dpkg-buildpackage futása általában hibákkal meg fog hiúsulni. Például:

dpkg-checkbuilddeps: Unmet build dependencies: build-essential:native debhelper (>= 8.0.0)
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting

Ennek felülírása érdekében használja a -d kapcsolót:

$ dpkg-buildpackage -d -us -uc

Előfordulhat, hogy a dh_shlibdeps felülírására is szükség van. Ennek érdekében adja hozzá a következő sorokat a debian/rules fájlhoz:

override_dh_shlibdeps:
   dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
Megjegyzés Bármely futásidejű függőséget (és a megfelelő verziószámokat) kézzel kell hozzáadni a debian/control fájlhoz, ahol a ${shlibs:Depends} most már nem jelent semmit.
Figyelmeztetés Még akkor is, amikor Ön így sikeresen létre tudja hozni a szoftvercsomagot, erősen ajánlott tiszta környezetben (például chroot környezetben) létrehozni annak érdekében, hogy bármilyen inkompatibilitást el tudjon kerülni.

Egy chroot beállítása

A pbuilder-ubuntu bevezetése érdekében tekintse meg a Pbuilder How-To című oldalt. Ajánlott emellett a cowdancer használata is, mivel a copy-on-write jelentős teljesítményelőnyt nyújt.

  • A debian-archive-keyring, ubuntu-keyring és gnupg1AUR telepítése szükséges.
  • Az eatmydata elérhető a libeatmydata szoftvercsomagból. Az LD_PRELOAD hibák elkerülése érdekében mind a chroot környezeten belül, mind azon kívül telepíteni kell. Mivel az Arch és a Debian útvonalai eltérnek, hozza létre a következő szimbolikus linkeket:
# ln -s /usr/lib/libeatmydata.so.1.1.1 /usr/lib/libeatmydata/libeatmydata.so
# ln -s /usr/lib/libeatmydata.so.1.1.1 /usr/lib/libeatmydata/libeatmydata.so.1
$ dpkg-buildpackage -d -us -uc -S

További olvasnivaló a Debian rendszerrel kapcsolatban

Fedora

This article or section needs expansion.

Fedora Packaging Tutorial

  • rpm-tools — Az RPM.org fejlesztési elágazása. Fő RPM disztribúciókban használatos.
http://www.rpm.org/ || rpm-tools
  • mock — Forráskódot tartalmazó RPM fájlokkal dolgozik és azokból RPM fájlokat hoz létre chroot környezetben.
https://github.com/rpm-software-management/mock/wiki || mockAUR

További olvasnivaló a Fedora rendszerrel kapcsolatban

openSUSE

Az Open Build Service (OBS) egy általános rendszer szoftvercsomagok forráskódból történő automatikus, következetes és reprodukálható módon történő létrehozására és terjesztésére. Támogatja legalább a .deb, .rpm és Arch szoftvercsomagokat.

Arch szoftvercsomagok készítése OBS környezetben OSC segítségével

Megjegyzés A szoftvercsomag létrehozása érdekében Önnek fel kell töltenie a PKGBUILD fájlját, valamint a forráskódot tartalmazó fájlokat (feltöltéssel vagy az OBS által történő letöltéssel). Az OBS virtuális gépeket használ hálózati támogatás nélkül, és nem tud semmilyen fájlt letölteni.

Szoftvercsomag létrehozása

  1. Hozzon létre egy fiókot a [1] weboldalon.
  2. Telepítse az oscAUR szoftvercsomagot. A hivatalos dokumentáció itt érthető el.
  3. Hozzon létre egy home:foo példaprojektet.
  4. Hozzon létre egy home:foo:bar példaalprojektet (opcionális, de ajánlott a létrehozatala).
  5. Hozzon létre egy új ham példa-szoftvercsomagot az osc meta pkg -e home:foo:bar ham paranccsal. Mentse a létrehozott XML fájlt, majd lépjen ki.
  6. Váltson egy tiszta munkakönyvtárra, majd jöjjön ki a létrehozott projektből: osc co home:foo:bar/ham.
  7. Lépjen be a könyvtárba: cd home:foo:bar/ham.

Szoftvercsomag kezelése

Most eljött az ideje annak, hogy eldöntsük, hogyan fogjuk kezelni a projektünket. Kettő gyakorlati módja van ennek:

  1. Tartsa karban a PKGBUILD szkriptfájlt és a hozzá tartozó segédfájlokat (például *.install szkriptfájlokat) egy verziókezelő rendszerben (például git, hg), majd egyszerűen engedje, hogy az OBS kövesse azt.
  2. Tartsa a szoftvercsomagot teljes egészében magában az OBS rendszerben.

A fentiek közül az első változat rugalmasabb és dinamikusabb. A folytatáshoz:

  • A projektkönyvtárból hozzon létre egy _service fájlt a következő tartalommal:
<services>
  <service name="tar_scm">
    <param name="scm">git</param>
    <param name="url">git://<your_repo_here></param>
    <param name="versionformat">git%cd~%h</param>
    <param name="versionprefix"><your_version_here></param>
    <param name="filename"><name_of_your_package></param>
  </service>
  <service name="recompress">
    <param name="file">*.tar</param>
    <param name="compression">xz</param>
  </service>
  <service name="set_version"/>
</services>

Íme egy példa a gimp-gitAUR szoftvercsomagra:

<services>
  <service name="tar_scm">
    <param name="scm">git</param>
    <param name="url">git://git.gnome.org/gimp.git</param>
    <param name="versionformat">git%cd~%h</param>
    <param name="versionprefix">2.9.1</param>
    <param name="filename">gimp-git</param>
  </service>
  <service name="recompress">
    <param name="file">*.tar</param>
    <param name="compression">xz</param>
  </service>
  <service name="set_version"/>
</services>
  • Engedje, hogy az OBS kövesse: osc add _service .
  • Ha bármilyen más fájlt is fel szeretne venni a tárolóba, akkor folytassa ugyanúgy, mint korábban: Adja hozzá a fájlokat a projektkönyvtárban, majd engedje, hogy az OBS kövesse őket. (Az OBS Subversion verziókövetőt használ alapértelmezett SCM-ként, így ez a folyamat már ismerős lehet Önnek.)
  • Helyezze bele (=töltse fel) a fájlokat a tárolóba: osc ci -m "commit message (e.g. bumped package xxx to version yyy".

Most, egy kis idő elteltével, az OBS elkezdi létrehozni az Ön szoftvercsomagját.

Tippek és trükkök az openSUSE számára

This article or section is out of date.

Reason: A git migráció befejeződött, és a [community] eltűnt. (Discuss in ArchWiki talk:Requests#Git migration)
  • A szoftvercsomaglétrehozási folyamat megtekintése érdekében lépjen a munkakönyvtárba, majd: osc results.
  • Három tároló létezik: Arch:Core, Arch:Extra és Arch:Community. A [community] hozzáadható "repository path" formájában, miután a fő Arch tárolót hozzáadta a projekthez.

A ca-certificates-utils szoftvercsomag problémája

Ha az OBS szoftvercsomag létrehozási folyamata a ca-certificates-utils szoftvercsomag miatt sikertelen, akkor hozzáadhatja ezt a sort a projekt beállításához (a projekt oldalán lépjen az Advanced -> Project Config menüpontra).

Prefer: ca-certificates-utils ca-certificates

További olvasnivaló az openSUSE rendszerrel kapcsolatban

Többdisztribúciós

Pacur

Néhány segédprogram, mint például a Pacur, egységes szoftvercsomag leírási formátummal teszi lehetővé szoftvercsomagok létrehozását több Linux-disztribúcióra. A szoftvercsomag-formátum nagyon hasonlít a PKGBUILD szkriptfájl formátumához, ezért könnyen újra fel lehet használni egy meglévő PKGBUILD szkriptfájlt, és hozzá lehet adni könnyen néhány disztribúcióspecifikus változót annak érdekében, hogy egyszerűen lehessen Debian szoftvercsomagokat és RPM szoftvercsomagokat létrehozni. Egy PKGBUILD szkriptfájl gyors adaptálásával szoftvercsomag hozható létre az Amazon Linux, CentOS, Debian, Oracle Linux, Fedora és Ubuntu rendszerekhez.

További olvasnivaló a témában