Итак, я работал над небольшим проектом на Perl и мне нужен модуль Email :: Sender :: Simple. По какой-то причине я установил его через cpanm вместо cpan, как обычно:
cpanm Email::Sender::Simple
После установки модуля я проверил установку Bugzilla и обнаружил, что он полностью сломан. Домашняя страница bugzilla только что сообщила об ошибке. Не удалось найти такие модули, как Data :: OptList, которого нет в пути @INC.
Я решил, что проблема в том, что права доступа к файлу в /usr/local/share/perl/5.8.8 были изменены, и многие каталоги теперь имеют такие разрешения:
drwx------ 4 root root
То есть только корню было разрешено смотреть в каталоге. Эти каталоги должны быть доступны для чтения моему пользователю www-data, чтобы Bugzilla могла находить и использовать такие модули, как Data :: OptList.
В Bugzilla есть скрипт checksetup.pl, который часто исправляет проблемы с правами доступа к файлам, но не устраняет и не обнаруживает эту проблему.
Я смог снова начать работать через:
find /usr/local/share/perl/5.8.8 -type d -exec chmod 755 {} \;
После этого я снова работаю. Но я беспокоюсь, что другие разрешения могли быть изменены. И я не могу понять, почему cpanm был настолько смелым, перенастраивая мои права доступа к файлам.
Кто-нибудь понимает, почему cpanm изменил разрешения в /usr/local/share/perl/5.8.8? Может ли это изменить другие вещи? Есть ли способ предотвратить это снова? Команда "cpanm" чем-то отличается от "cpan"?