- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую крутых админов, прошу помочь с проблемой.
Имеется CentOS release 6.3 (Final) Kernel 2.6.32-279.5.2.el6.i686
Сначала был установлен стандартный набор Postfix, Apache, PHP, MySQL из официального репозитария (автоматом - т.е. на голый центос установил панель Virtualmin/Webmin, вместе с установкой которой были также установлены остальные пакеты).
Потом решил заменить MySQL на Percona. Чтобы не удалить зависимые от мускула пакеты (Postfix и т.д.), сначала обновил MySQL с версии 5.1 до 5.5 (чтобы обновились и все зависимости) с репозитария CentALT, затем удалил его без удаления зависимостей
#rpm -e --nodeps mysql-server-5.5.25-1.el6.i686
#rpm -e --nodeps mysql-libs-5.5.25-1.el6.i686
#rpm -e --nodeps mysql-devel-5.5.25-1.el6.i686
Потом установил Percona
Сейчас в системе стоит
Percona-Server-client-55-5.5.27-rel28.1.296.rhel6.i686
Percona-Server-shared-55-5.5.27-rel28.1.296.rhel6.i686
Percona-Server-server-55-5.5.27-rel28.1.296.rhel6.i686
Все вроде работает, но есть два глюка, которые скорее всего имеют одну и туже причину. Первый глюк - не обновляются пакеты зависимые от MySQL(Percona), а именно PHP и Postfix. В частности, если запустить обновление Postfix (в панели вебмин), то выводится ошибка:
Installing package(s) with command yum -y install postfix …
ERROR with rpm_check_debug vs depsolve:
libmysqlclient.so.18(libmysqlclient_16) is needed by postfix-2:2.9.4-1.el6.i686
** Found 4 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.020-1.el6.i686 has missing requires of libmysqlclient.so.18(libmysqlclient_16)
php-mysql-5.3.14-1.el6.i686 has missing requires of libmysqlclient.so.18(libmysqlclient_16)
php-mysql-5.3.14-1.el6.i686 has missing requires of libmysqlclient.so.18(libmysqlclient_18)
2 : postfix-2.9.3-1.el6.i686 has missing requires of libmysqlclient.so.18(libmysqlclient_16)
… install failed!
При обновлении PHP примерно тоже самое. Если же запускать обновление из консоли, то выводятся ошибки, по которым вообще ничего непонятно, типа
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 285, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 219, in main
return_code = base.doTransaction()
File "/usr/share/yum-cli/cli.py", line 530, in doTransaction
print to_utf8(msg)
File "/usr/lib/python2.6/codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 40: ordinal not in range(128)
А вот второй замеченный глюк более информативен (как по мне), при перезапуске апача в лог /var/log/httpd/errors_log пишется ошибка
[Wed Sep 19 10:43:07 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Sep 19 10:43:07 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Sep 19 10:43:07 2012] [notice] Digest: done
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysqli.so' - /usr/lib/php/modules/mysqli.so: symbol mysql_client_errors, version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference in Unknown on line 0
[Wed Sep 19 10:43:07 2012] [notice] Apache/2.2.15 (Unix) DAV/2 mod_fcgid/2.3.7 PHP/5.3.14 mod_ssl/2.2.15 OpenSSL/1.0.0-fips SVN/1.6.11 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
вот тут уже интереснее, далее смотрим
/usr/lib/php/modules/mysqli.so: /usr/lib/libmysqlclient.so.18: no version information available (required by /usr/lib/php/modules/mysqli.so)
/usr/lib/php/modules/mysqli.so: /usr/lib/libmysqlclient.so.18: no version information available (required by /usr/lib/php/modules/mysqli.so)
linux-gate.so.1 => (0x00f4b000)
libmysqlclient.so.18 => /usr/lib/libmysqlclient.so.18 (0x00110000)
libz.so.1 => /lib/libz.so.1 (0x0098e000)
libm.so.6 => /lib/libm.so.6 (0x005cd000)
librt.so.1 => /lib/librt.so.1 (0x004ae000)
libssl.so.10 => /usr/lib/libssl.so.10 (0x00fa4000)
libcrypto.so.10 => /usr/lib/libcrypto.so.10 (0x00673000)
libdl.so.2 => /lib/libdl.so.2 (0x00a1b000)
libc.so.6 => /lib/libc.so.6 (0x00a20000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00f6c000)
/lib/ld-linux.so.2 (0x00ce7000)
libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x00444000)
libkrb5.so.3 => /lib/libkrb5.so.3 (0x004b7000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x00483000)
libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x0058d000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00488000)
libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x004a2000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x005b9000)
libselinux.so.1 => /lib/libselinux.so.1 (0x005f7000)
Version information:
/usr/lib/php/modules/mysqli.so:
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libmysqlclient.so.18 (libmysqlclient_18) => not found
libmysqlclient.so.18 (libmysqlclient_16) => not found
/usr/lib/libmysqlclient.so.18:
libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
… и т.д.
процесс гугления ничем не помог, подозреваю, что надо где-то поставить отсутствующий сим линк, но где и какой не могу понять.
В каталоге /usr/lib/mysql/ пусто (точнее есть только каталог plugin).
В каталоге /usr/lib/ есть:
libmysqlclient.so -> libmysqlclient.so.18
libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
libmysqlclient.so.18.0.0 - исполняемый файл
еще есть линки
libmysqlclient_r.so -> libmysqlclient.so
libmysqlclient_r.so.18 -> libmysqlclient.so
libmysqlclient_r.so.18.0.0 -> libmysqlclient.so
Попробовал сделать такие же сим линки в каталоге /usr/lib/mysql/ - не помогло. Как можно определить чего не хватает? и что именно not found? Подозреваю, что если снести и переустановить все равно не поможет.
Пришло в голову попробовать развернуть виртуальную машину и поставить все это хозяйство вручную на голый центос
[root@localhost html]# cat /etc/redhat-release
CentOS release 6.3 (Final)
[root@localhost html]# uname -a
Linux localhost.localdomain 2.6.32-279.el6.i686
сначала установил Percona-Server
[root@localhost html]# rpm -qa | grep Percona
Percona-Server-server-55-5.5.27-rel28.1.296.rhel6.i686
Percona-Server-shared-55-5.5.27-rel28.1.296.rhel6.i686
Percona-Server-client-55-5.5.27-rel28.1.296.rhel6.i686
потом апач
[root@localhost html]# rpm -qa | grep httpd
httpd-tools-2.2.22-1.el6.i686
httpd-2.2.22-1.el6.i686
и пхп
[root@localhost html]# rpm -qa | grep php
php-common-5.3.16-1.el6.i686
php-5.3.16-1.el6.i686
php-cli-5.3.16-1.el6.i686
а вот с установкой php-mysql облом:
[root@localhost html]# yum install php-mysql
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: centos.itt-consulting.com
* extras: centos.itt-consulting.com
* updates: centos.itt-consulting.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.i686 0:5.3.16-1.el6 will be installed
--> Processing Dependency: php-pdo(x86-32) = 5.3.16-1.el6 for package: php-mysql-5.3.16-1.el6.i686
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16) for package: php-mysql-5.3.16-1.el6.i686
Package mysql-libs is obsoleted by Percona-Server-shared-51, but obsoleting package does not provide for requirements
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18) for package: php-mysql-5.3.16-1.el6.i686
Package mysql-libs is obsoleted by Percona-Server-shared-51, but obsoleting package does not provide for requirements
--> Running transaction check
---> Package php-mysql.i686 0:5.3.16-1.el6 will be installed
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16) for package: php-mysql-5.3.16-1.el6.i686
Package mysql-libs is obsoleted by Percona-Server-shared-51, but obsoleting package does not provide for requirements
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18) for package: php-mysql-5.3.16-1.el6.i686
Package mysql-libs is obsoleted by Percona-Server-shared-51, but obsoleting package does not provide for requirements
---> Package php-pdo.i686 0:5.3.16-1.el6 will be installed
--> Finished Dependency Resolution
Error: Package: php-mysql-5.3.16-1.el6.i686 (CentALT)
Requires: libmysqlclient.so.18(libmysqlclient_18)
Available: mysql-libs-5.5.27-1.el6.i686 (CentALT)
libmysqlclient.so.18(libmysqlclient_18)
Available: mysql-libs-5.1.61-4.el6.i686 (base)
Not found
Error: Package: php-mysql-5.3.16-1.el6.i686 (CentALT)
Requires: libmysqlclient.so.18(libmysqlclient_16)
Available: mysql-libs-5.5.27-1.el6.i686 (CentALT)
libmysqlclient.so.18(libmysqlclient_16)
Available: mysql-libs-5.1.61-4.el6.i686 (base)
Not found
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
да как так то??? 😮 (с)
---------- Добавлено 19.09.2012 в 16:43 ----------
еще пришло в голову сменить репозитарий
сначала попробовал установить php-mysql из репозитария remi - такой же облом как и из CentALT
а вот из репозитария atomic нормально установилось
значит и на основном сервере можно будет нормально обновиться
☝
---------- Добавлено 19.09.2012 в 17:38 ----------
так и есть, обновился нормально с репозитория atomic, проблема решена
CentALT и remi в топку
всем крутым админам спасибо
что вы курите, прежде чем начать процедуру обновления?
#rpm -e --nodeps mysql-5.5.25-1.el6.i686
#rpm -e --nodeps mysql-server-5.5.25-1.el6.i686
#rpm -e --nodeps mysql-libs-5.5.25-1.el6.i686
#rpm -e --nodeps mysql-devel-5.5.25-1.el6.i686
CentALT - the best!
головой нужно думать...