Creating packages for other distributions (Magyar)
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:
- cowdancer — Copy-on-write csomagoló a pbuilder számára.
- debootstrap — Segédprogram Debian alaprendszer létrehozásához a semmiből, dpkg vagy apt elérhetősége nélkül.
- devscripts — Szkriptek a Debian szoftvercsomag-karbantartók életének megkönnyítésére.
- dh-autoreconf — Debhelper kiegészítő az autoreconf hívására és a szoftvercsomag-létrehozás utáni takarításra.
- dh-make — Segédprogram, amely a forráskódok archívumfájljait kicsomagolt Debian forráskóddá alakítja.
- dpkg — Ez a Debian szoftvercsomagkezelője.
- dput — Debian szoftvercsomag-feltöltő segédprogram.
- git-buildpackage — Debian segédprogramok a szoftvercsomaglétrehozó-rendszer Git-tel való integrálásához.
- 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.
- quilt — Javítássorozatok kezelése, a változtatások nyomonkövetésére.
- strip-nondeterminism — Segédprogram a nem-determinisztikus információk fájlokból történő eltávolítására.
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
debian/control fájlhoz,
ahol a ${shlibs:Depends} most már nem jelent semmit.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_PRELOADhibá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
- Példa pbuilderrc
- Forráscsomag létrehozása a pbuilder számára:
$ dpkg-buildpackage -d -us -uc -S
További olvasnivaló a Debian rendszerrel kapcsolatban
Fedora
- rpm-tools — Az RPM.org fejlesztési elágazása. Fő RPM disztribúciókban használatos.
- mock — Forráskódot tartalmazó RPM fájlokkal dolgozik és azokból RPM fájlokat hoz létre chroot környezetben.
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
Szoftvercsomag létrehozása
- Hozzon létre egy fiókot a [1] weboldalon.
- Telepítse az oscAUR szoftvercsomagot. A hivatalos dokumentáció itt érthető el.
- Hozzon létre egy
home:foopéldaprojektet. - Hozzon létre egy
home:foo:barpéldaalprojektet (opcionális, de ajánlott a létrehozatala). - Hozzon létre egy új
hampélda-szoftvercsomagot azosc meta pkg -e home:foo:bar hamparanccsal. Mentse a létrehozott XML fájlt, majd lépjen ki. - Váltson egy tiszta munkakönyvtárra, majd jöjjön ki a létrehozott projektből:
osc co home:foo:bar/ham. - 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:
- 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.
- 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
_servicefá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
- 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
- Például szolgáló tároló: arch-cpu-x-git
- openSUSE packaging guidelines
- Portal:Packaging from openSUSE wiki
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.