Подтвердить что ты не робот

В чем разница между cpan и cpanm?

В чем разница между командами cpan и cpanm?

Кажется, что они устанавливают модули perl, так в чем же разница?

4b9b3361

Ответ 1

cpan оболочка CPAN поставляется с Perl с 1997 года. Когда вы запускаете ее в первый раз, она задает кучу вопросов и сохраняет ответы в файле конфигурации. Затем вы можете установить модуль, запустив:

cpan -i Module::Name

В оболочке содержатся другие команды для поиска CPAN и просмотра файлов дистрибутива.

Проект создания более новой, более совершенной и более функциональной оболочки CPAN под названием CPANPLUS (cpanp из командной строки) был запущен Jos Boumans, но это никогда не был полностью завершен до того момента, когда было реализовано первоначальное видение.

Между тем MIYAGAWA решил, что cpanp пытался сделать слишком много, и что действительно нужен миру, была более простая оболочка, которая делала меньше и задавала меньше вопросов ( в идеале нет вообще). Он создал App::cpanminus, который предоставляет команду cpanm и делает именно то, что он намеревался. Вы можете использовать его для установки модуля (и всех зависимостей модулей) с помощью команды типа:

cpanm Module::Name

Основное различие между ними состоит в том, что если у вас есть Perl, у вас уже должна быть команда cpan. Если у вас не будет cpanm, если/до его установки.

Ответ 2

Большинство современных пользователей Perl предпочитают cpanm для простоты и, в основном, для краткости вывода.

Использование cpan может привести к сотне строк вывода, поскольку оно показывает вам все, что он делает: загрузка, контрольная сумма, запуск установщика, разбор, загрузка, список продолжается. То же самое относится к каждой зависимости.

cpanm, с другой стороны, говорит вам, что он делает более кратким и общим способом, а именно: выборка, настройка, построение и тестирование. Выполнено.

Таким образом, основное отличие в использовании заключается в том, что cpanm подавляет много (обычно) нерелевантную информацию. Иногда, когда модуль выходит из строя, вам может понадобиться дополнительная информация. Там флаг -v|--verbose, который по существу показывает вам все cpan.

Кроме того, некоторые модули, которые требуют ввода пользователя, могут показаться "зависающими", когда вы пытаетесь их установить. Это потому, что выход, который просит вас ввести что-то, подавляется. Вы можете использовать флаги --interactive (или --verbose), чтобы обойти это.

Для сравнения результатов см. слайды 35-39 здесь или слайды 37-41 здесь. (Они из одного и того же представления. Я просто дублирую ссылки в случае, если один выходит из строя.)