perlcygwin
СОДЕРЖАНИЕ
- НАЗВАНИЕ
- СИНОПСИС
- ПРЕДПОСЫЛКИ ДЛЯ КОМПИЛЯЦИИ PERL ПОД CYGWIN
- КОНФИГУРИРОВАНИЕ PERL ПОД CYGWIN
- MAKE ПОД CYGWIN
- ТЕСТИРОВАНИЕ ПОД CYGWIN
- Особенности порта Cygwin
- УСТАНОВКА PERL ПОД CYGWIN
- МАНИФЕСТ ПОД CYGWIN
- ОШИБКИ В CYGWIN
- АВТОРЫ
- ИСТОРИЯ
НАЗВАНИЕ
perlcygwin - Perl для Cygwin
СИНОПСИС
Этот документ поможет вам настроить, скомпилировать, протестировать и установить Perl под Cygwin. Он также описывает особенности Cygwin, которые повлияют на поведение Perl во время выполнения.
ПРИМЕЧАНИЕ: Существуют предварительно скомпилированные пакеты Perl для Cygwin, и версия Perl поставляется с обычной установкой Cygwin. Если вам не нужно настраивать конфигурацию, рассмотрите возможность использования одного из этих пакетов.
ПРЕДПОСЫЛКИ ДЛЯ КОМПИЛЯЦИИ PERL ПОД CYGWIN
Cygwin = GNU+Cygnus+Windows (Не оставляйте UNIX без него)
Инструменты Cygwin — это портированные популярные инструменты разработки GNU для платформ Win32. Они работают благодаря библиотеке Cygwin, которая предоставляет системные вызовы UNIX и среду, ожидаемую этими программами. Дополнительную информацию об этом проекте можно найти по адресу:
Требуется недавняя версия Cygwin.
На момент последнего обновления этого документа текущей была версия Cygwin 1.7.16.
Настройка Cygwin
При компиляции Perl могут потребоваться изменения в вашей настройке Cygwin, чтобы Perl успешно скомпилировался. Эти изменения не необходимы для обычного использования Perl.
ПРИМЕЧАНИЕ: Скомпилированные двоичные файлы будут работать на всех версиях Win32. Они не зависят от вашей операционной системы (WinXP/Win2K/Win7) или вашей конфигурации Cygwin (подмонтирование каталогов, cvgserver). Единственные зависимости исходят из жёстко заданных путей, таких как /usr/local. Однако ваша операционная система и конфигурация Cygwin повлияют на поведение Perl во время выполнения (см. "ТЕСТ").
-
PATHУстановите переменную среды
PATH, чтобы Configure нашёл версии программ Cygwin. Все не нужные каталоги Windows следует удалить или переместить в конец вашейPATH. -
nroff
Если у вас нет nroff (который входит в пакет groff), Configure не запросит вас установить страницы справки man.
КОНФИГУРИРОВАНИЕ PERL ПОД CYGWIN
По умолчанию, параметры, собранные Configure с помощью hints/cygwin.sh, позволят скомпилировать Perl, поддерживающий динамическую загрузку (что требует общей cygperl5_16.dll).
Это запустит Configure и сохранит запись:
./Configure 2>&1 | tee log.configure Если вы готовы принять все значения по умолчанию, запустите Configure с -de. Однако доступны несколько полезных настроек.
Удаление лишних данных из бинарных файлов Perl под Cygwin
Возможна очистка EXEs и DLL, созданных процессом сборки. В результате бинарные файлы станут значительно меньше. Если вы хотите, чтобы бинарные файлы были очищены, вы можете добавить -s, когда Configure вас спросит,
Any additional ld flags (NOT including libraries)? [none] -s
Any special flags to pass to g++ to create a dynamically loaded
library?
[none] -s
Any special flags to pass to gcc to use dynamic linking? [none] -s или вы можете изменить hints/cygwin.sh и раскомментировать соответствующие переменные в конце файла.
Дополнительные библиотеки для Perl под Cygwin
Некоторые функции и модули Perl зависят от наличия дополнительных библиотек. Configure найдёт их, если они установлены в одном из каталогов, указанных в качестве используемых для поиска библиотек. Предварительно скомпилированные пакеты для большинства из них доступны из установщика Cygwin.
-
-lcryptПакет crypt, поставляемый с Cygwin, — это порт 56-битного DES crypt для Linux, разработанный Corinna Vinschen.
В качестве альтернативы, библиотеки crypt в GNU libc были перенесены на Cygwin.
Начиная с libcrypt 1.3 (март 2016), вам необходимо установить пакет libcrypt-devel, чтобы Configure обнаружил crypt().
-
-lgdbm_compat(use GDBM_File)GDBM доступен для Cygwin.
ПРИМЕЧАНИЕ: Библиотека GDBM работает только на разделах NTFS.
-
-ldb(use DB_File)BerkeleyDB доступен для Cygwin.
ПРИМЕЧАНИЕ: Библиотека BerkeleyDB полностью работает только на разделах NTFS.
-
cygserver(use IPC::SysV)Порт SysV IPC доступен для Cygwin.
ПРИМЕЧАНИЕ: Он не был подробно протестирован. В частности,
d_semctl_semunне определено, потому что оно не проходит тест Configure, а на Win9x функции shm*(), похоже, зависают. Также возникает зависимость на этапе компиляции, так как perl.h включает <sys/ipc.h> и <sys/sem.h> (которые в будущем потребуются для компиляции модулей CPAN). В НАСТОЯЩЕЕ ВРЕМЯ НЕ ПОДДЕРЖИВАЕТСЯ! -
-lutilВ стандартном выпуске Cygwin входит пакет inetutils, который включает libutil.a.
Параметры конфигурации для Perl под Cygwin
Документ INSTALL описывает несколько параметров конфигурации. Некоторые из них будут работать с Cygwin, другие пока невозможны. Кроме того, некоторые из них являются экспериментальными. Вы можете выбрать параметр, когда Configure запросит вас, или определить (или не определить) символы в командной строке.
-
-UusedlНеопределение этого символа заставляет Perl компилироваться статически.
-
-DusemymallocПо умолчанию Perl не использует
malloc(), включённые в исходный код Perl, поскольку они были медленнее и не были полностью потокобезопасными. Если вы хотите принудительно скомпилировать Perl с помощью старого определения -Dusemymalloc, сделайте это. -
-UuseperlioНеопределение этого символа отключает абстракцию PerlIO. PerlIO теперь является значением по умолчанию; отключение PerlIO не рекомендуется.
-
-DusemultiplicityМножественность требуется при встраивании Perl в программу C и использовании более чем одного экземпляра интерпретатора. Это необходимо только когда вы компилируете не-потоковый perl с
-Uuseithreads. -
-Uuse64bitintПо умолчанию Perl использует 64-битные целые числа. Если вы хотите использовать 32-битные целые числа, определите этот символ.
-
-Duselongdoublegcc поддерживает длинные двойные (12 байт). Однако для их использования внутри Perl необходимы несколько дополнительных функций длинной двойной математики ({atan2, cos, exp, floor, fmod, frexp, isnan, log, modf, pow, sin, sqrt}l, strtold). Они еще не доступны с newlib, библиотекой libc Cygwin.
-
-UuseithreadsОпределите этот символ, если вы хотите не-потоковый более быстрый perl.
-
-DuselargefilesCygwin использует 64-битные целые числа для вычислений внутреннего размера и положения; Configure правильно обнаружит и определит это.
-
-DmksymlinksИспользуйте это для компиляции perl вне каталога исходных кодов. Подробности можно найти в документе INSTALL. Это рекомендуемый способ компиляции perl из исходного кода.
Подозрительные предупреждения при работе с Cygwin
Во время выполнения Configure вы можете увидеть некоторые сообщения, которые выглядят подозрительными.
-
Win9x и
d_eofnblkWin9x не правильно сообщает о
EOFс неблокируемым чтением в закрытой трубе. Вы увидите следующие сообщения:But it also returns -1 to signal EOF, so be careful! WARNING: you can't distinguish between EOF and no data! *** WHOA THERE!!! *** The recommended value for $d_eofnblk on this machine was "define"! Keep the recommended value? [y]По крайней мере, для согласованности с WinNT, вы должны сохранить рекомендуемое значение.
-
Определения компилятора/препроцессора
Следующая ошибка возникает из-за Cygwin
#define_LONG_DOUBLE:Guessing which symbols your C compiler and preprocessor define... try.c:<line#>: missing binary operatorЭта ошибка, похоже, не приводит к проблемам. С более старыми версиями gcc вместо "parse error" отображается "missing binary operator".
MAKE ПОД CYGWIN
Просто запустите make и подождите:
make 2>&1 | tee log.make ТЕСТИРОВАНИЕ ПОД CYGWIN
Для запуска набора тестов необходимо выполнить два шага:
make test 2>&1 | tee log.make-test
cd t; ./perl harness 2>&1 | tee ../log.harness Те же тесты выполняются оба раза, но больше информации предоставляется при выполнении как ./perl harness.
Результаты тестов зависят от вашей операционной системы и вашей конфигурации Cygwin. Если тест может пройти в некоторых настройках Cygwin, он всегда пытается пройти, и документированы объяснения неудач теста. Возможно, Perl пройдёт все тесты, но вероятнее, что некоторые из них не пройдут по одной из причин, перечисленных ниже.
Права доступа к файлам в Cygwin
Права доступа к файлам в UNIX основаны на наборах битов режима для {чтения, записи, выполнения} для каждого {пользователя, группы, других}. По умолчанию Cygwin отслеживает только атрибут только для чтения Win32, представленный как бит записи пользователя UNIX (файлы всегда читаемы, файлы исполняемы, если у них есть расширение .{com,bat,exe} или они начинаются с #!, каталоги всегда читаемы и исполняемы). В WinNT с настройкой ntea CYGWIN дополнительные биты режима хранятся в виде расширенных атрибутов файла. В WinNT с настройкой по умолчанию ntsec CYGWIN права доступа используют стандартные дескрипторы безопасности WinNT и списки управления доступом. Без одного из этих вариантов эти тесты завершатся ошибкой (список пока не обновлён):
Failed Test List of failed
------------------------------------
io/fs.t 5, 7, 9-10
lib/anydbm.t 2
lib/db-btree.t 20
lib/db-hash.t 16
lib/db-recno.t 18
lib/gdbm.t 2
lib/ndbm.t 2
lib/odbm.t 2
lib/sdbm.t 2
op/stat.t 9, 20 (.tmp not an executable extension) NDBM_File и ODBM_File не работают на файловых системах FAT
Не используйте NDBM_File или ODBM_File на файловой системе FAT. Они могут быть построены на файловой системе FAT, но многие тесты завершатся ошибкой:
../ext/NDBM_File/ndbm.t 13 3328 71 59 83.10% 1-2 4 16-71
../ext/ODBM_File/odbm.t 255 65280 ?? ?? % ??
../lib/AnyDBM_File.t 2 512 12 2 16.67% 1 4
../lib/Memoize/t/errors.t 0 139 11 5 45.45% 7-11
../lib/Memoize/t/tie_ndbm.t 13 3328 4 4 100.00% 1-4
run/fresh_perl.t 97 1 1.03% 91 Если вы намерены работать только с FAT (или если используете AnyDBM_File на FAT), запустите Configure с параметрами -Ui_ndbm и -Ui_dbm, чтобы предотвратить создание NDBM_File и ODBM_File.
В NTFS (и без CYGWIN=nontsec) не должно быть проблем, даже если Perl был скомпилирован на FAT.
fork() ошибки в тестах io_*
Ошибка fork() может привести к сбою следующих тестов:
ext/IO/lib/IO/t/io_multihomed.t
ext/IO/lib/IO/t/io_sock.t
ext/IO/lib/IO/t/io_unix.t См. комментарий по fork в "Разное" ниже.
Особенности порта Cygwin
Переносимость скриптов в Cygwin
Cygwin отлично справляется с предоставлением семантики UNIX поверх систем Win32. Однако, помимо вышеупомянутых пунктов, есть некоторые различия, о которых вы должны знать. Это очень краткое руководство по переносимости, более подробную информацию можно найти в документации Cygwin.
-
Имена путей
Имена путей Cygwin разделяются косыми чертами (/), также поддерживаются универсальные имена ресурсов (//UNC). С версии cygwin-1.7 имена путей не соответствующие POSIX не рекомендуются. Имена могут содержать все печатные символы.
Имена файлов не чувствительны к регистру, но сохраняют регистр. Имя пути, содержащее обратную косую черту или букву диска, является именем пути Win32 и не подвергается преобразованиям, применяемым к именам путей в стиле POSIX, но cygwin выведет предупреждение, поэтому лучше преобразовать их в POSIX.
Для преобразования у нас есть
Cygwin::win_to_posix_path()иCygwin::posix_to_win_path().С версии cygwin-1.7 имена путей закодированы в UTF-8.
-
Текст/двоичный формат
С версии cygwin-1.7 текстовые монтирования устарели и настоятельно не рекомендуются.
Когда файл открывается, он находится в текстовом или двоичном режиме. В текстовом режиме файл подвергается преобразованиям CR/LF/Ctrl-Z. В Cygwin, режим по умолчанию для
open()определяется режимом монтирования, на котором базируется файл. См. "Cygwin::is_binmount"(). Perl предоставляет функциюbinmode()для установки двоичного режима для файлов, которые в противном случае обрабатывались бы как текстовые.sysopen()с флагомO_TEXTустанавливает текстовый режим для файлов, которые в противном случае обрабатывались бы как двоичные:sysopen(FOO, "bar", O_WRONLY|O_CREAT|O_TEXT)lseek(),tell()иsysseek()работают только с файлами, открытыми в двоичном режиме.Вопрос текста/двоичного формата подробно освещён в документации Cygwin.
-
PerlIO
PerlIO переопределяет поведение Cygwin по умолчанию для текстовых/двоичных данных. Файл всегда будет обрабатываться как двоичный, независимо от режима монтирования, на котором он находится, как и в UNIX. Поэтому преобразование CR/LF необходимо запросить в вызове
open()следующим образом:open(FH, ">:crlf", "out.txt");что выполнит преобразование из LF в CR/LF на выходе, или в настройках среды (добавьте это в ваш .bashrc):
export PERLIO=crlfчто загрузит слой crlf PerlIO, который выполняет преобразование LF -> CRLF для каждого выходного значения, генерируемого Perl.
-
.exe
Функции Cygwin
stat(),lstat()иreadlink()делают расширение .exe прозрачным, ищут foo.exe, когда вы запрашиваете foo (если foo также не существует). Cygwin не требует расширения .exe, но gcc автоматически добавляет его при компиляции программы. Однако при обращении к исполняемому файлу как к обычному файлу (например, cp в файле make) расширение .exe не является прозрачным. Программа install, включенная в Cygwin, автоматически добавляет .exe при необходимости. -
Идентификаторы процессов Cygwin и Windows
Процессы Cygwin имеют свой собственный идентификатор процесса (pid), который отличается от основного идентификатора процесса Windows. Большинство функций POSIX, совместимых с Proc, ожидают идентификатор процесса Cygwin, но несколько функций Win32::Process ожидают winpid. Например,
$$— это идентификатор процесса Cygwin для /usr/bin/perl, который не является winpid. ИспользуйтеCygwin::pid_to_winpid()иCygwin::winpid_to_pid()для перевода между ними. -
Ошибки Cygwin и Windows
В Cygwin $^E эквивалентно $!. При использовании функций Win32 API используйте
Win32::GetLastError()для получения последней ошибки Windows. -
Ошибки перебазирования при fork или system
Использование
fork()илиsystem()для вызова другого perl после загрузки нескольких DLL может привести к конфликту адресов базовых DLL. Внутренняя ошибка Cygwin выглядит следующим образом:0 [main] perl 8916 child_info_fork::abort: data segment start: parent (0xC1A000) != child(0xA6A000)или:
183 [main] perl 3588 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\bin\cygsvn_subr-1-0.dll to same address as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child 3588 - died waiting for dll loading, errno11См. https://cygwin.com/faq/faq-nochunks.html#faq.using.fixing-fork-failures. Это помогает, если в памяти загружено не слишком много DLL, чтобы адресное пространство было больше, например, закрытие MS Internet Explorer может помочь.
Используйте утилиты perlrebase или rebase для решения конфликтов адресов DLL. Пакет rebase включен в установку Cygwin. Используйте setup.exe из https://cygwin.com/install.html для его установки.
1. Убейте все процессы Perl и запустите
perlrebaseили2. Убейте все процессы и службы Cygwin, запустите оболочку dash из cmd.exe и запустите
rebaseall. -
chown()В WinNT
chown()может изменить идентификаторы пользователя и группы файла. В Win9xchown()— это операция без действия, хотя это и правильно, так как нет модели безопасности. -
Разное
Блокировка файлов с помощью команды
F_GETLKдоfcntl()— это заглушка, которая возвращаетENOSYS.Win9x не может
rename()открыть файл (хотя WinNT может).Реализация Cygwin
chroot()имеет недостатки (она не может ограничивать доступ к файлам программами Win32).Редактирование файла на месте
perl -iне работает без создания резервной копии редактируемого файлаperl -i.bak, из-за ограничений Windows. Поэтому Perl автоматически добавляет суффикс.bakпри использованииperl -iбез указания расширения резервной копии.
Встроенные методы:
-
Cwd::cwd -
Возвращает текущую рабочую директорию.
-
Cygwin::pid_to_winpid -
Преобразует идентификатор процесса Cygwin в соответствующий идентификатор процесса Windows (который может совпадать или не совпадать).
-
Cygwin::winpid_to_pid -
Преобразует идентификатор процесса Windows в соответствующий идентификатор процесса Cygwin (если таковой имеется).
-
Cygwin::win_to_posix_path -
Преобразует путь Windows в соответствующий путь Cygwin, учитывая текущие точки монтирования. Со вторым аргументом, отличным от нуля, возвращает абсолютный путь. Двухбайтовые символы не будут преобразованы.
-
Cygwin::posix_to_win_path -
Преобразует путь Cygwin в соответствующий путь Cygwin, учитывая текущие точки монтирования. Со вторым аргументом, отличным от нуля, возвращает абсолютный путь. Двухбайтовые символы не будут преобразованы.
-
Cygwin::mount_table() -
Возвращает массив [mnt_dir, mnt_fsname, mnt_type, mnt_opts].
perl -e 'for $i (Cygwin::mount_table) {print join(" ",@$i),"\n";}' /bin c:\cygwin\bin system binmode,cygexec /usr/bin c:\cygwin\bin system binmode /usr/lib c:\cygwin\lib system binmode / c:\cygwin system binmode /cygdrive/c c: system binmode,noumount /cygdrive/d d: system binmode,noumount /cygdrive/e e: system binmode,noumount -
Cygwin::mount_flags -
Возвращает тип монтирования и флаги для указанной точки монтирования. Строка, разделенная запятыми, mntent->mnt_type (всегда "system" или "user"), затем mntent->mnt_opts, где первый всегда "binmode" или "textmode".
system|user,binmode|textmode,exec,cygexec,cygdrive,mixed, notexec,managed,nosuid,devfs,proc,noumountЕсли аргумент — "/cygdrive", возвращаются только настройки монтирования тома и префикс монтирования cygdrive.
Монтирования пользователя имеют приоритет над системными монтированиями.
$ perl -e 'print Cygwin::mount_flags "/usr/bin"' system,binmode,cygexec $ perl -e 'print Cygwin::mount_flags "/cygdrive"' binmode,cygdrive,/cygdrive -
Cygwin::is_binmount -
Возвращает true, если данный путь Cygwin смонтирован в двоичном режиме, false, если путь смонтирован в текстовом режиме.
-
Cygwin::sync_winenv -
Cygwin не инициализирует все оригинальные переменные среды Win32. См. нижнюю часть этой страницы https://cygwin.com/cygwin-ug-net/setup-env.html для "Ограниченной среды Win32".
Некоторые программы Win32, вызываемые из программ Cygwin, могут потребовать переменные среды, такие как, например, ADODB, которые нуждаются в %COMMONPROGRAMFILES%. Вызовите Cygwin::sync_winenv(), чтобы скопировать все переменные среды Win32 в ваш процесс, и обратите внимание, что Cygwin выведет предупреждение при каждом обнаружении путей, не соответствующих POSIX.
УСТАНОВКА PERL В CYGWIN
Это установит Perl, включая страницы man.
make install 2>&1 | tee log.make-install ПРИМЕЧАНИЕ: Если STDERR перенаправлено, make install не предложит вам установить perl в /usr/bin.
Возможно, вам потребуется разрешение администратора для запуска make install. Если нет, то должен быть доступ к записи в соответствующие каталоги.
Сведения об установке документации Perl в формате HTML можно найти в документе INSTALL.
МАНИФЕСТ В CYGWIN
Это файлы в релизе Perl, содержащие ссылки на Cygwin. Эти очень краткие заметки пытаются объяснить причину всего условного кода. Надеюсь, что их обновление позволит поддерживать порт Cygwin в максимально чистом виде.
- Документация
-
INSTALL README.cygwin README.win32 MANIFEST pod/perl.pod pod/perlport.pod pod/perlfaq3.pod pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod pod/perl561delta.pod pod/perl570delta.pod pod/perl572delta.pod pod/perl573delta.pod pod/perl58delta.pod pod/perl581delta.pod pod/perl590delta.pod pod/perlhist.pod pod/perlmodlib.pod pod/perltoc.pod Porting/Glossary pod/perlgit.pod Porting/checkAUTHORS.pl dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes dist/Time-HiRes/Changes ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes ext/Win32API-File/Changes lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes lib/ExtUtils/NOTES lib/ExtUtils/PATCHING lib/ExtUtils/README lib/Net/Ping/Changes lib/Test/Harness/Changes lib/Term/ANSIColor/ChangeLog lib/Term/ANSIColor/README - Компиляция, Настройка, Сборка, Установка
-
cygwin/Makefile.SHs ext/IPC/SysV/hints/cygwin.pl ext/NDBM_File/hints/cygwin.pl ext/ODBM_File/hints/cygwin.pl hints/cygwin.sh Configure - help finding hints from uname, shared libperl required for dynamic loading Makefile.SH Cross/Makefile-cross-SH - linklibperl Porting/patchls - cygwin in port list installman - man pages with :: translated to . installperl - install dll, install to 'pods' makedepend.SH - uwinfix regen_lib.pl - file permissions NetWare/Makefile plan9/mkfile hints/uwin.sh vms/descrip_mms.template win32/Makefile - Тесты
-
t/io/fs.t - no file mode checks if not ntsec skip rename() check when not check_case:relaxed t/io/tell.t - binmode t/lib/cygwin.t - builtin cygwin function tests t/op/groups.t - basegroup has ID = 0 t/op/magic.t - $^X/symlink WORKAROUND, s/.exe// t/op/stat.t - no /dev, skip Win32 ftCreationTime quirk (cache manager sometimes preserves ctime of file previously created and deleted), no -u (setuid) t/op/taint.t - can't use empty path under Cygwin Perl t/op/time.t - no tzset() - Скомпилированный исходный код Perl
-
EXTERN.h - __declspec(dllimport) XSUB.h - __declspec(dllexport) cygwin/cygwin.c - os_extras (getcwd, spawn, and several Cygwin:: functions) perl.c - os_extras, -i.bak perl.h - binmode doio.c - win9x can not rename a file when it is open pp_sys.c - do not define h_errno, init _pwent_struct.pw_comment util.c - use setenv util.h - PERL_FILE_IS_ABSOLUTE macro pp.c - Comment about Posix vs IEEE math under Cygwin perlio.c - CR/LF mode perliol.c - Comment about EXTCONST under Cygwin - Скомпилированный исходный код модуля
-
ext/Compress-Raw-Zlib/Makefile.PL - Can't install via CPAN shell under Cygwin ext/Compress-Raw-Zlib/zlib-src/zutil.h - Cygwin is Unix-like and has vsnprintf ext/Errno/Errno_pm.PL - Special handling for Win32 Perl under Cygwin ext/POSIX/POSIX.xs - tzname defined externally ext/SDBM_File/sdbm/pair.c - EXTCONST needs to be redefined from EXTERN.h ext/SDBM_File/sdbm/sdbm.c - binary open ext/Sys/Syslog/Syslog.xs - Cygwin has syslog.h ext/Sys/Syslog/win32/compile.pl - Convert paths to Windows paths ext/Time-HiRes/HiRes.xs - Various timers not available ext/Time-HiRes/Makefile.PL - Find w32api/windows.h ext/Win32/Makefile.PL - Use various libraries under Cygwin ext/Win32/Win32.xs - Child dir and child env under Cygwin ext/Win32API-File/File.xs - _open_osfhandle not implemented under Cygwin ext/Win32CORE/Win32CORE.c - __declspec(dllexport) - Модули/скрипты Perl
-
ext/B/t/OptreeCheck.pm - Comment about stderr/stdout order under Cygwin ext/Digest-SHA/bin/shasum - Use binary mode under Cygwin ext/Sys/Syslog/win32/Win32.pm - Convert paths to Windows paths ext/Time-HiRes/HiRes.pm - Comment about various timers not available ext/Win32API-File/File.pm - _open_osfhandle not implemented under Cygwin ext/Win32CORE/Win32CORE.pm - History of Win32CORE under Cygwin lib/Cwd.pm - hook to internal Cwd::cwd lib/ExtUtils/CBuilder/Platform/cygwin.pm - use gcc for ld, and link to libperl.dll.a lib/ExtUtils/CBuilder.pm - Cygwin is Unix-like lib/ExtUtils/Install.pm - Install and rename issues under Cygwin lib/ExtUtils/MM.pm - OS classifications lib/ExtUtils/MM_Any.pm - Example for Cygwin lib/ExtUtils/MakeMaker.pm - require MM_Cygwin.pm lib/ExtUtils/MM_Cygwin.pm - canonpath, cflags, manifypods, perl_archive lib/File/Fetch.pm - Comment about quotes using a Cygwin example lib/File/Find.pm - on remote drives stat() always sets st_nlink to 1 lib/File/Spec/Cygwin.pm - case_tolerant lib/File/Spec/Unix.pm - preserve //unc lib/File/Spec/Win32.pm - References a message on cygwin.com lib/File/Spec.pm - Pulls in lib/File/Spec/Cygwin.pm lib/File/Temp.pm - no directory sticky bit lib/Module/CoreList.pm - List of all module files and versions lib/Net/Domain.pm - No domainname command under Cygwin lib/Net/Netrc.pm - Bypass using stat() under Cygwin lib/Net/Ping.pm - ECONREFUSED is EAGAIN under Cygwin lib/Pod/Find.pm - Set 'pods' dir lib/Pod/Perldoc/ToMan.pm - '-c' switch for pod2man lib/Pod/Perldoc.pm - Use 'less' pager, and use .exe extension lib/Term/ANSIColor.pm - Cygwin terminal info lib/perl5db.pl - use stdin not /dev/tty utils/perlbug.PL - Add CYGWIN environment variable to report - Тесты модулей Perl
-
dist/Cwd/t/cwd.t ext/Compress-Zlib/t/14gzopen.t ext/DB_File/t/db-btree.t ext/DB_File/t/db-hash.t ext/DB_File/t/db-recno.t ext/DynaLoader/t/DynaLoader.t ext/File-Glob/t/basic.t ext/GDBM_File/t/gdbm.t ext/POSIX/t/sysconf.t ext/POSIX/t/time.t ext/SDBM_File/t/sdbm.t ext/Sys/Syslog/t/syslog.t ext/Time-HiRes/t/HiRes.t ext/Win32/t/Unicode.t ext/Win32API-File/t/file.t ext/Win32CORE/t/win32core.t lib/AnyDBM_File.t lib/Archive/Extract/t/01_Archive-Extract.t lib/Archive/Tar/t/02_methods.t lib/ExtUtils/t/Embed.t lib/ExtUtils/t/eu_command.t lib/ExtUtils/t/MM_Cygwin.t lib/ExtUtils/t/MM_Unix.t lib/File/Compare.t lib/File/Copy.t lib/File/Find/t/find.t lib/File/Path.t lib/File/Spec/t/crossplatform.t lib/File/Spec/t/Spec.t lib/Net/hostent.t lib/Net/Ping/t/110_icmp_inst.t lib/Net/Ping/t/500_ping_icmp.t lib/Net/t/netrc.t lib/Pod/Simple/t/perlcyg.pod lib/Pod/Simple/t/perlcygo.txt lib/Pod/Simple/t/perlfaq.pod lib/Pod/Simple/t/perlfaqo.txt lib/User/grent.t lib/User/pwent.t
ОШИБКИ В CYGWIN
Поддержка переключения реальных и эффективных идентификаторов пользователей и групп неполная. В WinNT Cygwin предоставляет setuid(), seteuid(), setgid() и setegid(). Однако, необходимы дополнительные вызовы Cygwin для управления маркерами доступа WinNT и контекстами безопасности.
АВТОРЫ
Чарльз Уилсон <cwilson@ece.gatech.edu>, Эрик Фифер <egf7@columbia.edu>, Александр Смишлаев <als@turnhere.com>, Стивен Морок <newspost@morlock.net>, Себастьен Барр <Sebastien.Barre@utc.fr>, Туэн Бёргерс <burgers@ecn.nl>, Геррит П. Хазе <gp@familiehaase.de>, Рейни Урбан <rurban@cpan.org>, Ян Дюбуа <jand@activestate.com>, Джерри Д. Хедден <jdhedden@cpan.org>.
ИСТОРИЯ
Последнее обновление: 2012-02-08
© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.34.0/perlcygwin