Jak resit zavislost balicku

Dan Lukes dan at obluda.cz
Fri Oct 30 18:29:23 CET 2015


Miloslav Pelár wrote:
> rad bych se dozvedel, jak spravne resit  zavislosti balicku.
> Napr. na PC je nainstalovana mariadb-server a mariadb-client, pokud ale chci
> nainstalovat program, ktery ma zavislost na mysql56-client, zobrazi se konflikt s balickem mariadb-client
> a ze bude tento balicek v dalsim kroku odinstalovan. 

Problem je v tom, ze mariadb-client a mysql56-client pouziva soubory
stejnych jmen instalovanych do stejneho adresare. Ergo jsou vzajemne
neslucitelne na jednom stroji.

> Instalaci programu jsem vyresil pomoci pkg lock a pkg install -Rf.

Tim jsi donutil system udelat neco, co udelat nechtel a o cem je
presvedceny, ze to je spatne.

Nastesti ma superuzivatel v tomto ohledu posledni slovo, to je spravne,
ze je mozne prosadit svou proti rozhodnuti systemove utility, na druhou
stranu, od tohoto okamziku jsou i vsechna dalsi rozhodnuti na tobe.

pkg neni pro provoz v tomto rezimu navrzen a vsechno dalsi co ti nabidne
pri budoucich upgradech nebo instalacich nemusi byt spravne rozhodnuti.

> Proto se ptam
> 1) Pokud budu instalovat pomoci pkg, je mozne predem nejak "prepsat"  zavislost? 
>     Myslel jsem si, ze by pomohlo pkg set -o databases/mysql56-client:databases/mariadb100-client

Ti ale nevyresis primarni problem - ze ty balicky si navzajem prepisuji
soubory a vysledkem bude, ze jeden z obou portu (obvykle ten instalovany
jako prvni) nemusi spravne fungovat. V krajnim pripade dokoncne nemusi
fungovat oba, pricemz "nefunguje" se navic nemusi projevovat nejakym
zjevnym zpusobem typu "vubec se to nerozebehne". Muze dochazet k
nahodnynm padum, muze dochazet k zapisovani nebo cteni vadnych dat z/do
databaze - proste - projevy mohou byt plizive a zcela obecne.

> 2) Jak se to resi v pripade kompilace z portu?
>     Jak to udelat, aby se vytvoril balicek ktery bude mit zavislost na mariadb misto mysql.

Pri rpekladu portu muze byt mozne si u konkretniho portu vybrat jaky
databazovy backend pouzije. V takovem pripade se musis rozhodnout jestli
budes pouzitav mysal nebo mariadb a vsechny zavisejici balicky prelozit
proti tento vybrane databazi. Tim ta druha nebud etreba a ke konfliktu
nedojde.

Muze se ale stat, ze u konkretniho portu si nebudes moc databazovej
backend vybrat uplen libovolne - a muze nastat situace, ze nejaky
konkretni port, co chces, neumi mariadb a umi jen mysql a jiny zase
obracene.

V takovem pripade je system portu proste mimo hru - on neni schopen
zajistit ti koexistenci obou techto komponent na jednom pocitaci.

Pokud na ni trvas, musis si kompilovat sam, ze zdrojaku, bez systemu
portu (nebo si vytvorit vlastni port). Za predpokladu, ze spolupraci s
preferovanym backendem podporuji alespon ty zdrojaky ...


Dan



More information about the Users-l mailing list