Почему я не могу найти модули Perl после обновления до Intrepid Ibex Ubuntu? - PullRequest
3 голосов
/ 29 декабря 2008

Я обновился до Ubuntu Intrepid Ibex вчера, и внезапно некоторые из установленных мной модулей Perl (на Hardy Heron) пропали!

Я получаю обычную ошибку «Не удается найти модуль в @INC». Изменились ли какие-либо репозитории CPAN или что-то для Intrepid? Google вообще не помогает.

Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 29 декабря 2008

Стандартное решение состоит в том, чтобы сгенерировать "autobundle" с CPAN.pm до обновления Perl. Поиск по autobundle дает ссылки на несколько существующих вопросов SO, посвященных обсуждению управления модулями Perl, и некоторые, которые выглядят так, как будто они должны предоставить больше информации. Руководство CPAN.pm касается автоматического расслоения, но не содержит подробностей.

Поскольку вы уже обновили Perl, одним из решений для установки ваших модулей было бы создание файла автоматического объединения и использование записей в сгенерированном файле в качестве руководства для написания специального файла автоматического объединения с записями для ваших модулей (только). Формат файла autobundle - просто POD , поэтому это должно быть легко сделать.

В будущем вам, вероятно, следует создать привычку создавать автобандл перед обновлением Perl. Это не идеальное решение, в автобандл будут входить записи для основных модулей, которые нужно будет удалить перед сборкой, но по крайней мере у вас будет снимок установленных модулей Perl, чтобы вы могли исправить установку Perl. после обновления.

5 голосов
/ 29 декабря 2008

Ваша установка Perl была изменена с версии 5.8 на 5.10. Поскольку многие из модулей, которые вам нужны, находятся в директориях, зависящих от версии perl, вы можете переустановить их с помощью инструментов CPAN (например, команда cpan).

Но поскольку вы используете Ubuntu, имейте в виду, что многие многие библиотеки CPAN также распространяются через менеджер пакетов Ubuntu, и пакеты CPAN устанавливаются не в то место, где их устанавливает Ubuntu (это прозрачно для пользователя, поскольку оба находятся в @INC путях).

Я рекомендую использовать пакеты Ubuntu, когда они доступны, потому что они будут обновляться менеджером пакетов (APT), когда новые будут выпущены на центральных серверах пакетов. Формат имени немного отличается. Вот два способа установить один и тот же пакет из разных источников:

$ cpan List::MoreUtils # installs latest from CPAN

$ sudo apt-get install liblist-moreutils-perl # installs latest from Ubuntu universe

преимущество последнего в том, что оно будет обновлено на sudo apt-get update.

4 голосов
/ 29 декабря 2008

Perl изменен на Intrepid.

До обновления у вас был Perl 5.8, теперь у вас 5.10.

1 голос
/ 29 декабря 2008

Вероятно, /usr/lib/perl5/5.10.* используется вместо /usr/lib/perl5/5.8.8, поскольку версия Perl изменилась

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...