Cygwin зависает на скрипте Perl: кажется, ничего не исправить - PullRequest
1 голос
/ 28 февраля 2012

Я использую 64-разрядную версию Windows 7, которая, кажется, является частью проблемы. Сначала мой cpan зависал, когда я пытался install CPAN из командной строки.

Я попытался перезагрузить свой компьютер и предпринял множество попыток использовать rebaseall и peflagsall с ash - даже начиная новую базу для DLL (команда была предложена в списке рассылки cygwin - что-то вроде rebaseall -vb 0x730000).

Должен ли я просто удалить Cygwin и попытаться выполнить полную переустановку? У меня есть все зависимости, которые нужны cpan (т.е. gcc-4).

Я становлюсь довольно отчаянным - я получаю сообщения об ошибках, в которых говорится о сбойных dll, если я пытаюсь использовать модули, установленные из CPAN (в частности, JSON::XS).

Любая помощь, которую вы можете предложить, была бы фантастической.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Жалобы на отсутствие DLL при установке являются известной ошибкой, и я считаю, что она появляется для многих модулей.Большинство модулей все еще установлены и работают.По моему опыту, вам также нужно принудительно установить большинство модулей, так как почти всегда есть тест, который не проходит.

Хотя я лично предпочитаю Perl из среды Cygwin, есть одна веская причина для установки Strawberryperl;потребность в поддержке 64 битов, которую Cygwin не поддерживает.Если вы собираетесь работать с большими структурами данных XML, используя, например, XML :: Simple, то объем 1,5-2 ГБ, поддерживаемый 32-битной Windows, не займет у вас много места, и Strawberryperl придет вам на помощь.А благодаря переносимости perl и сохранению двух наборов perl, установленных на одном компьютере, можно без проблем выполнять разработку с использованием cygwin, а затем запускать ее «в работе» с использованием 64-битного Strawberryperl.

2 голосов
/ 28 февраля 2012

Вы устанавливаете cygwin, а затем создаете Perl поверх этого?Вы добьетесь гораздо большего успеха, если будете использовать Strawberry Perl , который поставляется с собственной средой cygwin, которая позволит вам собирать и устанавливать большинство модулей CPAN, если они вам нужны

0 голосов
/ 29 февраля 2012

Я подозреваю, что проблема, с которой вы сталкиваетесь, заключается в разнице между обычной оболочкой (которая обычно будет bash и даст вам приглашение $ в Cygwin) и оболочкой cpan (которая выдаст вам приглашение типа cpan[1]> ).

В оболочке cpan install CPAN обновит кучу сценариев Perl из репозитория CPAN. Из оболочки bash install CPAN просто не имеет смысла: install - это программа для установки только что собранных вами пакетов; он не имеет ничего общего с Perl или с тем, как вы устанавливаете пакеты в Cygwin.

Вы можете войти в оболочку CPAN, запустив cpan в приглашении оболочки bash. Но я не думаю, что это то, что вам нужно. Что вы на самом деле хотите сделать, это просто выполнить следующее:

cpan JSON::XS
...