RPM balíčky - závislosti

Zdravím,
ačkoliv tento dotaz bude znít lamácky, opravdu jsem nevěděl, že (pokud) takhle RPM balíčky nefungují. Vždy jsem instaloval pomoci yumu, zypperu, emerge, apt-get apod… Jednoduše se chci zeptat, když si stáhnu RPM balíček, ve Fedoře 9 na něj 2x kliknu, tak si stáhne závislosti, nainstaluje je a pak nainstaluje tu aplikaci (samozřejmě yum to tak dělá bez problému), ale když tohle zkusím v Fedoře 8, openSUSE nebo Mandrivě, hodí to missing dependencies, vypíše je a konec.

Chci se teda zeptat, rpm balíčky tohle opravdu neumí? I když v spec souboru při výrobě balíčku definuju Requires a krásně je tam vypíšu? Prostě napíše co mu chybí a ani se nepokusí to z repoziářů stáhnout a nainstalovat?

Možná je to samozřejmost, možná dělám něco špatně já, ale jak říkám, z bin balíčků sem nikdy neměl důvud instalovat a vyhýval jsem se tomu, ale teď když je začínám dělat, tak zjišťuju tohle (pokud to je opravdu pravda).

Navíc jakto, že Fedora 9 tohle zvládá? Je to tím novým instalátorem?

Díky moc za případné reakce

Samotny rpm balicek ani rpm program toto neumi. Jen definuje zavislosti. O instalaci zavislosti se stara nadstavba rpm programu a to je yum nebo v F9 PackageKit. Ty maji k dispozici zdroje z repozitaru a s nimi pracuji. V F9 kdyz kliknes na balicek - spusti se PackageKit a ten si obstara vse potrebne - pokud to v nadefinovanych repozitarich najde. Co se obdobne spusti v SUSE a v Mandireve nevim.

Ano, to vše mi je jasné. V openSUSE se pouští YAST2 a v Mandrivě GURPMI, snažím se zjistit, jestli to je prostě tím, že YAST2 a GURPMI to neumí a PackageKit ano, a nebo to je špatně udělaným balíčkem (potom ale nechápu že to PackageKit zvládá).

Další téma na tohle jsem založil na http://www.abclinuxu.cz/forum/show/234625 Bohužel zatím bez kloudné odpovědi.

Zbezne jsem to procetl. Pokud mas spravne nadefinovane zavislosti, tzn. nazvy pozadovanych baliku a pozadovane verze musi byt v repozitarich danych distribuci. Takze pokud jsou tyto zavislosti resitelne, tak to yast2 nebo gurpmi neumi nebo je v tom nejaky bug nebo jiny figl. Zkus jestli zypper nebo yast2 umi obdobu “yum localinstall lokalni_balik.rpm” ve fedore.

Závislosti jsou řešitelné, v těch opravdu problém nevidím. GURPMI by to snad na základě tohoto komentáře (http://www.abclinuxu.cz/forum/show/234625#19) měl umět. Potřeboval bych fakt zjistit, úplně na jisto “ne nejde to” nebo “jo jde to, máš někde v balíčku chybu” bohužel to mi ještě nikdo nenapsal, všichni “myslím”, “imho” a podobně :-/

Zkusím to ještě s tím zypperem, mimochodem po doinstalování packagekitu do openSUSE a spuštění balíčku pomocí pkg-install-local-file to proběhlo a závislosti vyřešilo, takže buď to fakt YAST2 neumí, nebo už nevím.

Po trose googleni myslim, ze by to mel zvladat i yast. Rozdil je mozna v tom, ze na stazenem baliku musi dat right-click - a v menu vybrat “nainstalovat pomoci yast” - pak to snad poresi.

Hm, no teď už nejsem v podmínách, kde to můžu vyzkoušet, ale zítra zkusím, díky za čas.

v mandrive (napriklad) je to rovnako. stiahnete napr. skype (rpm, ktore ma zavislosti, ktore napr. v instalacii z gnome live CD nie su), spyta sa, ci verite zdroju (to nema nic so zavislostami) a potaha si zvysok, co potrebuje. samozrejme ani tam to rpm nevie, vsetko obstarava urpmi (nadstavba rpm, ako vo fedore yum).

ale pokial sa pamatam, tak aj v starsich fedorach “dvojklik” (ktory spustil manazera balickov) fungoval - napr. prave s balickom skype.

kotrcka: ano ano, přesně takhle jsem předpokládal, že to bude jednoduché =) O výrobě RPM balíčků mám nastudováno tuny materiálů a poslední dobou i přesně řešení závislostí viz http://www.rpm.org/max-rpm/ a http://www.abclinuxu.cz/clanky/navody/rukovet-balice-rpm-viii-zavislosti

Bohužel aktuální situace toho balíčku je ve stádiu, že se úplně v pohodě nainstaluje ve Fedoře 8 a 9 (nižší sem zatím nezkoušel), v openSUSE se závislosti v repozitářích jmenují stejně jako ve Fedoře, takže jsem předpokládal, že to bude ok, bohužel ne, při spuštění YASTu2 (po dvojkliku na balíček a zadaní hesla roota) chvíli chroupe a pak napíše, že chybí zavíslosti, dvojtečka a jejich výčet, ví které chybí (ať jsou nebo nejsou v SPEC souboru definovány), ale sám si je prostě nevyřeší, jen je vypíše.

V Mandrivě totéž jako v openSUSE, i přes změnu jmen závislostí, jelikož se v repozitářích Mandrivy jmenují jinak.

Dlouho jsem hledal chybu u sebe, respektive u mého RPM balíčku, až jsem se naštval, a z oficiálního mirroru repozitářů pro openSUSE jsem si stáhl RPM balíček SDL-devel pro stejnou verzi openSUSE, kde jsem věděl, že je potřebná minimálně závislost SDL. Po dvojkliku na balíček SDL-devel ovšem stejný výsledek, napsáno že mu chybí SDL a konec (opakuji u oficiálního balíčku).

Pokud ovšem závislosti vyřeším ručně (zypper install SDL) a poté balíček SDL-devel spustím, tak se nainstaluje, stejně tak i ten můj, vyřeším závislosti ručně (zypper install SDL SDL_mixer wxGTK) a pak se ten můj balíček taky nainstaluje. Prostě už fakt nevím kde hledat chybu. Bez seberespektu bych jí hledal u sebe, ale když mi totéž dělají oficiální balíčky… :-/

Ja bych tu chybu hledal v yastu. Podival jak ma nastavene repozitare, jestli je zaskrtnuto automaticke reseni zavislosti (takova volba tam tusim je) nebo jestli lze provest nejakou obdobu fedorackeho prikazu “yum clean all”. Nebo se zeptejte na nejakem SUSE foru.

Ano, já osobně také hledám chybu v YASTu, zatím, dokud mi někdo nedá dobrý důvod ji hledat jinde =) Repozitáře mám nastavené defaultně, pouze vypnut openSUSE-DVD 11.0, jelikož samozřejmě nechci aby mi hledal závislosti na DVD jinak openSUSE-11.0-Oss, Non-Oss a Updates.

Pokud je volba v YASTu na automatické řešení závislostí, tak zaprvé nechápu, proč je defaultně vypnuta a za druhé ji nemůžu nikde najít =)

Ale i tak zatím děkuju na postřehy a nápady, na abclinuxu jsou všichni arogantní a dívají se na mě povýšeně, jako ty jsi lama, přečti si dokumentaci máš blbě balíček, ale prostě nejsem jeden z těch co se hned ptají, než počtou a vyzkoušejí, jsem prostě jeden z těch, co jsou už zoufalí =)

Mimochodem u rpmbuildu by v závislostech neměl být žádný problém, viz věta

“Instalační závislosti (kompilační bohužel ne) umí rpmbuild do značné míry určit sám. Proto jsme se také doposud závislostmi netrápili. Konkrétně umí do Requires vyplnit
sdílené knihovny, na kterých závisí binárky,
interprety skriptů ze shbang řádků (#! /usr/bin/lobster),
moduly Perlu,
moduly Pythonu a dalších jazyků – možná,
závislosti na vlastnostech rpm samého,
případně další věci”

i když je vyplním ručně (a i když ne) tak to stejně pochopí pouze Fedora a openSUSE ne, asi opravdu na čase zavítat přímo na fórum openSUSE.