Csomagkészítés

Fórumok

Sziasztok!

Saját patch-et kell alkalmaznom az egyik csomagra és úgy elkészítenem. Ezzel még nincs baj, de a csomag nevét is átneveztem és emiatt azok a csomagok amik az eredetitől függtek nem hajlandók települni. A debian/control fileban felvettem az alábbi sorokat:

Provides: old-package
Replaces: old-package
Conflicts: old-package

Mit rontok el? Nagyon idegesítő, biztos csak valami apróságot felejtek ki. Ha kell, akkor a teljes control file-t be tudom másolni.

Üdv,

Árpád

Hozzászólások

Senki nem csinált még ilyet? Már lassan minden variációt kipróbáltam, de nem akar működni...

Nem. Ez sajnos nem megoldás. Mindenféleképpen a csomagot kell átneveznem. Lesz még PostgreSQL, és egy csomó kisebb lib is, a MySQL csak az első és így első ránézésre meg lehet mondani, hogy mi az ami tőlünk van telepítve és mi az ami nem.

Az a cél, hogy a rendszer azt higgye a prefix-libmysqlclient15off csomagról, hogy az teljes mértékben megfelel a libmysqlclient15off csomagnak a függőségek szempontjából. Ha ez menne, akkor minden szép és jó lenne, a madarak dalolnának és a nap is kisütne, de ahogy kinézek az ablakon a madarak jéggé fagyva hullanak a fáról és a nap már csak egy ködös emlékképpe halványult...

sosem keszitettem csomagot, igy nem tudom hasznalhato-e ez neked, de deb-control manualja szerint letezik ilyesmi:
Provides:
Ez egy e csomag által adott virtuális csomaglista. Általában eltérõ csomagok által nyújtott hasonló szolgáltatás esetén használt. Például a sendmail és exim levelezõ-kiszolgálók, így egy általános csomagot adnak (`mail-transport-agent'), melytõl más csomagok függhetnek. Így a sendmail vagy exim érvényes függõségként szolgálhat. Így a csomagoknak nem kell ismerniük az összes levelezõ-kiszolgálót egy `|'-kkal elválasztott listában.

Renaming a Package
csinalj egy dummy old-package csomagot, amire dependel az uj csomag (old-package=1.2-1, egyenloseg fontos!). tehat a "regi" dummy szukseges az uj csomaghoz.
tedd fel mindkettot. ha frissulni akar az old-package, akkor nemfog, mert a regi csomagot nemfogja lecserelni, mert dependel az uj csomag ra. viszont mivel fennvan a regi nevu "dummy" csomag is, a tobbi program nemfog reklamalni.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Köszi elolvastam. Meg is értettem remélem. :-) Az a gondom, hogy a meglévő mysqlclient15off csomagnak is telepíthetőnek kell maradnia. Azaz én nem teljesen át akarom nevezni a csomagot, hanem csak helyettest szeretnék neki kreálni.

A leírásban van egy ilyen:


Package: newPkg
Provides: oldPkg
Replaces: oldPkg (<< 2.0-1)
Conflicts: oldPkg (<< 2.0-1)

Én is így próbáltam, de nem működött:


Package: dvrt-libmysqlclient15off
Conflicts: libmysqlclient15, libmysqlclient15off
Replaces: libmysqlclient15, libmysqlclient15off
Provides: libmysqlclient15off

Ezt az eredményt kaptam:


server01-vz16:~/packages/mysql/5.0/work/mysql-dfsg-5.0-5.0.32# apt-get install libdbd-mysql-perl dvrt-libmysqlclient15off
Reading package lists... Done
Building dependency tree... Done
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:
  libdbd-mysql-perl: Depends: libmysqlclient15off (>= 5.0.24-2)
E: Broken packages

A leírás alapján a dvrt-libmysqlclient15off csomagnak meg kellenne felelnie a libmysqlclient15off csomagnak a függőségek feloldásakor, de mégsem teszi ezt. Miért?