problem s ldconfig a MariaDB 5.5
Miroslav Lachman
000.fbsd at quip.cz
Mon May 12 23:59:54 CEST 2014
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
More information about the Users-l
mailing list