Na nekolika serverech jsem pred casem provadel upgrade z MySQL 5.1 na MariaDB 5.5. MariaDB je v podstate plne kompatibilni nahrada za MySQL 5.5.

Uz pri instalaci jsem mel problem s tim, ze aplikace, ktere pouzivaji libmysqlclient.so s novou verzi nenabehly, nektere porty pri reinstalaci zkousely znovu instalovat MariaDB client. Jak jsem zjistil, duvodem je to, ze nevidely existujici knihovny /usr/local/lib/mysql/libmysqlclient.so.18 atd. Jelikoz se to stalo na nekolika ruznych systemech, tak dost pochybuju, ze by to byla jen nejaka moje ojedinela chyba. Na druhou stranu jsem nikde nezaznamenal, ze by si na podobny problem stezoval nekdo jiny.

Ja tehdy problem vyresil spustenim

ldconfig -R /usr/local/lib/mysql

Jenze to se mi ted vratilo, protoze po rebootu serveru se problem vratil.

Takze muj dotaz zni - co se v systemu pri instalaci nejakeho portu a nasledne i pri rebootu ma postarat o nalezeni vsech potrebnych knihoven? A co muze byt pricinou toho, ze je u me nenajde ani na amd64, ani na i386, ani v jailu. Zkratka ruzne konfigurace, ale stejne (spatne) chovani.

Po uplnost uvadim, jak to vypada po instalaci, nebo po rebootu serveru:

System vidi pouze stare knihovny v compat

# ldconfig -r | grep mysql
199:-lmysqlclient_r.16 => /usr/local/lib/compat/pkg/libmysqlclient_r.so.16
    202:-lmysqlclient.16 => /usr/local/lib/compat/pkg/libmysqlclient.so.16


# ldconfig -R /usr/local/lib/mysql

# ldconfig -r | grep mysql
    search directories: /usr/local/lib:/usr/local/lib/mysql
    79:-lmysqld.18 => /usr/local/lib/mysql/libmysqld.so.18
    80:-lmysqlclient.18 => /usr/local/lib/mysql/libmysqlclient.so.18
    81:-lmysqlclient_r.18 => /usr/local/lib/mysql/libmysqlclient_r.so.18

Nez jsem to dopsal, tak jsem si jeste porovnal dva servery, jeden s MariaDB 5.5 a druhy s MySQL 5.1. Takze ted uz mam i odpoved na cast otazky. Pri instalaci portu by se mel spoustet ldconfig tak, jak ma port definovano v +CONTENTS

To je ale v obou pripadech definovano v podstate stejne:

MariaDB

@exec /sbin/ldconfig -m /usr/local/lib/mysql
@unexec /sbin/ldconfig -R
@cwd /usr/local
libdata/ldconfig/mariadb

MySQL

@exec /sbin/ldconfig -m /usr/local/lib/mysql
@unexec /sbin/ldconfig -R
@cwd /usr/local
libdata/ldconfig/mysql

Presto to v pripade MariaDB nezafunguje.

Navic v pripade MariaDB chybi /usr/local/libdata/ldconfig/mariadb
Zatim co pro MySQL existuje /usr/local/libdata/ldconfig/mysql

Takze proto to nefunguje po rebootu.

Vsechny porty pouzivaji stejne USE_LDCONFIG (akorat u mysql51-client je to definovane v Makefile mysql51-server, ktery se vola s CLIENT_ONLY)

databases/mariadb55-client/Makefile:19:USE_LDCONFIG= ${PREFIX}/lib/mysql

databases/mysql55-client/Makefile:19:USE_LDCONFIG=   ${PREFIX}/lib/mysql

databases/mysql51-server/Makefile:164:USE_LDCONFIG=  ${PREFIX}/lib/mysql


Posledni otazka tedy zustava - co je pricinou toho, ze u me na zadnem serveru nezafunguje ldconfig spravne?
(pouzivate nekdo uspesne MariaDB?)

Mirek
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem