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, которая предоставляет системные вызовы и среду, ожидаемые этими программами. Дополнительную информацию об этом проекте можно найти на:
Требуется недавнее сетевое или коммерческое издание Cygwin.
На момент последнего обновления этого документа, актуальной была версия Cygwin 3.0.7.
Настройка Cygwin
При компиляции Perl могут потребоваться изменения в вашей настройке Cygwin, чтобы Perl компилировался без ошибок. Эти изменения не требуются для обычного использования Perl.
ПРИМЕЧАНИЕ: Скомпилированные двоичные файлы будут работать на всех версиях Win32. Они не зависят от вашей системной среды или вашей конфигурации Cygwin (монтирование каталогов, cygserver). Единственные зависимости исходят от жёстко закодированных путей, таких как /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 и DLLs, созданные процессом компиляции. Результирующие двоичные файлы будут значительно меньше. Если вы хотите удалить двоичные файлы, вы можете добавить опцию -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, представляет собой совместимый с Linux порт 56-битного DES crypt от 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 завершается ошибкой. Он также создаёт зависимость времени компиляции, так как 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 поддерживает long double (12 байт). Однако для использования их в Perl необходимы дополнительные функции long double математики ({atan2, cos, exp, floor, fmod, frexp, isnan, log, modf, pow, sin, sqrt}l, strtold). Они ещё не доступны с новым libC Cygwin.
-
-UuseithreadsОпределите этот символ, если вы хотите более быстрый не-потоковый perl.
-
-DuselargefilesCygwin использует 64-битные целые числа для вычислений внутреннего размера и позиции, это будет правильно обнаружено и определено Configure.
-
-DmksymlinksИспользуйте это для компиляции perl вне дерева исходного кода. Подробности можно найти в документе INSTALL. Это рекомендуемый способ компиляции perl из исходного кода.
MAKE НА CYGWIN
Просто запустите make и подождите:
make -jn 2>&1 | tee log.make где n — максимальное количество одновременных компиляций; опущение этого параметра эквивалентно указанию -j1.
ТЕСТИРОВАНИЕ НА CYGWIN
Для запуска набора тестов есть два шага:
make test 2>&1 | tee log.make-test
cd t; ./perl harness 2>&1 | tee ../log.harness Те же тесты выполняются оба раза, но больше информации предоставляется при запуске как ./perl harness, и вы можете запустить тесты параллельно, указав
cd t; TEST_JOBS=n ./perl harness 2>&1 | tee ../log.harness где n — максимальное количество тестов для одновременного выполнения.
Результаты тестов зависят от вашей системной среды и вашей конфигурации 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 См. комментарий о разветвлении в "Разное" ниже.
Особенности порта 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 textmount устарели и настоятельно не рекомендуются.
При открытии файла он находится в текстовом или двоичном режиме. В текстовом режиме файл подвергается преобразованиям 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что загрузит слой PerlIO crlf, который выполняет преобразование 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()для перехода к другому 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.html#faq.using.fixing-fork-failures Это помогает, если в памяти загружено не слишком много DLL, чтобы адресное пространство было больше, например, можно остановить MS Internet Explorer.
+ Используйте утилиты перебазирования для решения конфликтов адресов DLL. Пакет перебазирования входит в установку Cygwin. Используйте setup.exe из https://cygwin.com/install.html для его установки.
1. Убить все процессы perl и запустить
</bin/find <dir-xdev -name \*.dll | /bin/rebase -OT ->> или2. Убить все процессы и службы Cygwin, и запустить setup.exe.
-
Разное
Блокировка файла с помощью команды
F_GETLKдляfcntl()- это заглушка, которая возвращаетENOSYS.Реализация 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/updateAUTHORS.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 - Сборка, Настройка, Make, Установка
-
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 plan9/mkfile 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.
АВТОРЫ
Charles Wilson <cwilson@ece.gatech.edu>, Eric Fifer <egf7@columbia.edu>, alexander smishlajev <als@turnhere.com>, Steven Morlock <newspost@morlock.net>, Sebastien Barre <Sebastien.Barre@utc.fr>, Teun Burgers <burgers@ecn.nl>, Gerrit P. Haase <gp@familiehaase.de>, Reini Urban <rurban@cpan.org>, Jan Dubois <jand@activestate.com>, Jerry D. Hedden <jdhedden@cpan.org>.
ИСТОРИЯ
Последнее обновление: 2019-11-14
© 1993–2023 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.38.0/perlcygwin