Недавно я заменил нашу устаревшую (386) машину мониторинга на что-то более свежее, и, поскольку у меня были проблемы с драйверами с CentOS, я решил использовать вместо этого Debian 6 (Squeeze). Раньше я предпочитал компилировать из исходников, но на этот раз подумал, что попробую придерживаться apt и устанавливать пакеты таким образом.
Полагаю, что проблемы были неизбежны. Основная проблема заключается в том, что, похоже, в GD нет поддержки изображений с такими сообщениями об ошибках, как это, когда я пытаюсь создать изображение в коде (PHP или Perl):
Can't locate object method "png" via package "GD::Image"
Я могу заменить «png» на «jpg» или «gif», все приведет к одной и той же ошибке.
Я не могу найти никаких пакетов, которые выглядят так, как будто они могут добавить необходимую графическую поддержку. Как я могу решить эту проблему, не создавая для себя ада зависимостей?
РЕДАКТИРОВАТЬ
Основываясь на различных комментариях ниже, я пришел к выводу, что что-то не так, по крайней мере, с частью моей установки GD, поэтому теперь возникает вопрос: как я могу удалить различные части и переустановить их, не создавая себе больше проблем, чем я уже есть? К сожалению, я не могу протереть эту машину и начать все сначала.
Теперь я вспоминаю, почему раньше я держался подальше от этих менеджеров пакетов и кошмаров, которые они создают. :(
Perl ищет модули в каталогах @INC
array, как и Bash с $PATH
для команд. GD, установленный apt, вероятно, замещается чем-то другим в @INC
.
Найдите файлы с именем GD.pm
в вашей системе он должен отображать только Debian в /usr/lib/perl5/GD.pm
.
Вы можете проверить свой @INC
с помощью perl -e 'print join "\n", @INC'
, мой
/etc/perl
/usr/local/lib/perl/5.10.1
/usr/local/share/perl/5.10.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/site_perl