Назад | Перейти на главную страницу

imagemagick libMagickCore.so.2 не найден

У меня есть 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 все заработало, как и ожидалось.