Добавить поддержку изображений в GD на Debian
Я недавно заменил нашу устаревшую (386) машину мониторинга на что-то более новое, и, поскольку у меня были проблемы с драйверами в CentOS, я решил вместо этого использовать Debian 6 (Squeeze). Хотя в прошлом я предпочитал компилировать из исходного кода, на этот раз я думал, что постараюсь придерживаться apt и установить пакеты таким образом.
Я предполагаю, что это было неизбежно, что есть проблемы. Основная проблема заключается в том, что в GD отсутствует поддержка изображений с сообщениями об ошибках, подобных этому, всякий раз, когда я пытаюсь создать изображение в коде (PHP или Perl):
Can't locate object method "png" via package "GD::Image"
Я могу заменить "png" на "jpg" или "gif", все приведут к одной и той же ошибке.
Я не могу найти пакеты, которые выглядят так, как будто они могут добавить необходимую графическую поддержку. Как я могу решить эту проблему, не создавая адский ад зависимости для себя?
РЕДАКТИРОВАТЬ
Основываясь на различных комментариях, приведенных ниже, я пришел к выводу, что что-то связано с по крайней мере частью моей установки GD, поэтому возникает вопрос: как я могу удалить различные части и переустановить их, не вызывая у меня больше проблем, чем у меня? уже есть? К сожалению, я не в состоянии вытереть эту машину и начать все сначала.
Теперь я помню, почему я раньше держался подальше от этих менеджеров пакетов и кошмаров зависимостей, которые они создают.:(
1 ответ
Perl ищет модули в каталогах @INC
массив, как Bash делает с $PATH
для команд. GD, установленный apt, вероятно, перекрывается чем-то другим в @INC
,
Ищите файлы с именем GD.pm
в вашей системе он должен показывать только тот, /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