У меня есть 2 сервера debian, которые мы используем на работе, один - наш сервер разработки, а другой - производственный. Я пытаюсь заставить imagemagick работать на обоих серверах, и по какой-то причине на производственном сервере работает imagemagick нормально, но сервер разработки, похоже, этого не хочет.
На обоих серверах я набрал
convert --version
и получил этот ответ взамен
ПРОИЗВОДСТВО:
Version: ImageMagick 6.6.0-4 2012-04-24 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP
РАЗРАБОТКА:
convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory
Я сделал dpkg на обоих серверах, чтобы проверить версии, и получил следующее
ПРОИЗВОДСТВО:
ii imagemagick 8:6.6.0.4-3+squeeze2 image manipulation programs
ii libmagickcore3 8:6.6.0.4-3+squeeze2 low-level image manipulation library
ii libmagickcore3-extra 8:6.6.0.4-3+squeeze2 low-level image manipulation library - extra codecs
ii libmagickwand3 8:6.6.0.4-3+squeeze2 image manipulation library
ii php5-imagick 3.0.0~rc1-1 ImageMagick module for php5
РАЗРАБОТКА:
ii imagemagick 8:6.6.0.4-3+squeeze2 image manipulation programs
ii libmagickcore3 8:6.6.0.4-3+squeeze2 low-level image manipulation library
ii libmagickcore3-extra 8:6.6.0.4-3+squeeze2 low-level image manipulation library - extra codecs
ii libmagickwand3 8:6.6.0.4-3+squeeze2 image manipulation library
ii php5-imagick 3.0.0~rc1-1 ImageMagick module for php5
Я искал libMagickCore.so.2 по всей ОС и так и не нашел, я нашел эти файлы на обоих серверах.
ПРОИЗВОДСТВО:
lrwxrwxrwx 1 root root 22 May 2 14:32 libMagickCore.so.3 -> libMagickCore.so.3.0.0
-rw-r--r-- 1 root root 2.3M Apr 24 15:44 libMagickCore.so.3.0.0
lrwxrwxrwx 1 root root 22 May 2 14:32 libMagickWand.so.3 -> libMagickWand.so.3.0.0
-rw-r--r-- 1 root root 1.1M Apr 24 15:44 libMagickWand.so.3.0.0
РАЗРАБОТКА:
lrwxrwxrwx 1 root root 22 May 2 14:35 libMagickCore.so.2 -> libMagickCore.so.3.0.0
lrwxrwxrwx 1 root root 22 May 2 14:30 libMagickCore.so.3 -> libMagickCore.so.3.0.0
-rw-r--r-- 1 root root 2.3M Apr 24 15:44 libMagickCore.so.3.0.0
lrwxrwxrwx 1 root root 22 May 2 14:30 libMagickWand.so.3 -> libMagickWand.so.3.0.0
-rw-r--r-- 1 root root 1.1M Apr 24 15:44 libMagickWand.so.3.0.0
Я вручную добавил libMagickCore.so.2 на сервер разработки, чтобы посмотреть, сработает ли это, но этого не произошло.
Я удалил весь imagemagick с сервера разработки и переустановил его, но все равно ничего. Я запустил ldconfig, и он создаст ссылки для версии 3, но не 2. Я даже перезагрузил компьютер, сделал обновления / обновления на обеих машинах, и у меня просто не осталось вариантов, что делать. У кого-нибудь есть для меня другая идея?
Бесконечно благодарен!
-- РЕДАКТИРОВАТЬ --
Запуск команды
which convert
произвел эти результаты
ПРОИЗВОДСТВО
/usr/bin/convert
РАЗРАБОТКА
/usr/local/bin/convert
Итак ... это стало моей проблемой ... Я удалил файл convert в / usr / local / bin со своего сервера разработки, и после этого он заработал.
Я рад, что вы решили проблему. Чтобы помочь другим в подобной ситуации, я просто оставлю это здесь:
Чтобы найти библиотеку локально:
# updatedb
# locate libMagickCore
Чтобы найти библиотеку из диспетчера пакетов:
# apt-file search libMagickCore
Чтобы узнать, может ли ваша библиотека быть найдена системой (находится ли она в пути)
# ldconfig -p | grep -i nameoflibrary
Если вашей библиотеки нет в списке, но есть в системе, вы можете добавить ее:
# ldconfig -n /path/toyournew/library/
Добавьте его в путь навсегда:
# /etc/ld.so.conf.d/libc.conf
Этого должно быть достаточно для решения проблемы такого типа в будущем, независимо от библиотеки.
Я послушался совета ablackhat и сделал which convert
это показало мне, что мой сервер разработки ищет исполняемый файл convert в / usr / local / bin. Я удалил исполняемый файл из этого каталога и запустил which convert
после этого выяснилось, что мой сервер теперь использует исполняемый файл в / usr / bin. Когда я бежал convert --version
вне / usr / bin / convert все заработало, как и ожидалось.