Annotation of pkgsrc/bootstrap/README.Interix, Revision 1.18
1.18 ! jperkin 1: $NetBSD: README.Interix,v 1.17 2016/07/10 01:25:16 sevan Exp $
1.1 grant 2:
1.17 sevan 3: Interix is a POSIX-compatible subsystem for the Windows NT kernel, providing a
4: Unix-like environment with a tighter kernel integration than available with
5: Cygwin. It is part of the Windows Services for Unix package, available for free
6: for any licensed copy of Windows 2000, XP (not including XP Home), or 2003. SFU
7: can be downloaded from http://www.microsoft.com/windows/sfu/.
1.1 grant 8:
1.17 sevan 9: Services for Unix 3.5 has been tested. 3.0 or 3.1 may work, but are not
10: officially supported. (The main difference in 3.0/3.1 is lack of pthreads, but
11: other parts of libc may also be lacking.)
12:
13: Services for Unix Applications (aka SUA) is an integrated component of Windows
14: Server 2003 R2 (5.2), Windows Vista and Windows Server 2008 (6.0), Windows 7 and
15: Windows Server 2008 R2 (6.1). As of this writing, the SUA's Interix 6.0 (32bit)
16: and 6.1 (64bit) subsystems have been tested. Other versions may work as well.
17: The Interix 5.x subsystem has not yet been tested with pkgsrc.
18:
19: When installing Interix/SFU
20: ---------------------------
21:
22: At an absolute minimum, the following packages must be installed from the
23: Windows Services for Unix 3.5 distribution in order to use pkgsrc:
24:
25: Utilities -> Base Utilities
26:
27: Interix GNU Components -> (all)
28:
29: Remote Connectivity
30:
31: Interix SDK
32:
33: When using pkgsrc on Interix, DO NOT install the Utilities subcomponent "UNIX
34: Perl". That is Perl 5.6 without shared module support, installed to /usr/local,
35: and will only cause confusion. Instead, install Perl 5.8 from pkgsrc (or from a
36: binary package).
37:
38: The Remote Connectivity subcomponent "Windows Remote Shell Service" does not
39: need to be installed, but Remote Connectivity itself should be installed in
40: order to have a working inetd.
41:
42: During installation you may be asked whether to enable setuid behavior for
43: Interix programs, and whether to make pathnames default to case-sensitive.
44: Setuid should be enabled, and case-sensitivity MUST be enabled. (Without
45: case-sensitivity, a large number of packages including perl will not build.)
46:
47: NOTE: Newer Windows service packs change the way binary execution works (via the
48: Data Execution Prevention feature). In order to use pkgsrc and other
49: gcc-compiled binaries reliably, a hotfix containing POSIX.EXE, PSXDLL.DLL,
50: PSXRUN.EXE, and PSXSS.EXE (899522 or newer) must be installed. Hotfixes are
51: available from Microsoft through a support contract; however, Debian Interix
52: Port has made most Interix hotfixes available for personal use from
53: http://www.debian-interix.net/hotfixes/.
54:
55: In addition to the hotfix noted above, it may be necessary to disable Data
56: Execution Prevention entirely to make Interix functional. This may happen only
57: with certain types of CPUs; the cause is not fully understood at this time. If
58: gcc or other applications still segfault repeatedly after installing one of the
59: hotfixes note above, the following option can be added to the appropriate
60: "boot.ini" line on the Windows boot drive: /NoExecute=AlwaysOff (WARNING, this
61: will disable DEP completely, which may be a security risk if applications are
62: often run as a user in the Administrators group!).
63:
64: What to do if Interix/SFU is already installed
65: ----------------------------------------------
66:
67: If SFU is already installed and you wish to alter these settings to work with
68: pkgsrc, note the following things.
69:
70: To uninstall UNIX Perl, use Add/Remove Programs, select Microsoft Windows
71: Services for UNIX, then click Change. In the installer, choose Add or Remove,
72: then uncheck Utilities->UNIX Perl.
73:
74: To enable case-sensitivity for the file system, run REGEDIT.EXE, and change the
75: following registry key:
76:
77: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel
78:
79: Set the DWORD value "obcaseinsensitive" to 0; then reboot.
80:
81: To enable setuid binaries (optional), run REGEDIT.EXE, and change the following
82: registry key:
83:
84: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Services for UNIX
85:
86: Set the DWORD value "EnableSetuidBinaries" to 1; then reboot.
87:
88: Important notes for using pkgsrc
89: --------------------------------
90:
91: The package manager (either the pkgsrc "su" user, or the user running "pkg_add")
92: must be a member of the local Administrators group. Such a user must also be
93: used to run the bootstrap. This is slightly relaxed from the normal pkgsrc
94: requirement of "root".
95:
96: The package manager should use a umask of 002. "make install" will automatically
97: complain if this is not the case. This ensures that directories written in
1.18 ! jperkin 98: /usr/pkg/pkgdb are Administrators-group writeable.
1.17 sevan 99:
100: The popular Interix binary packages from http://www.interopsystems.com/ use an
101: older version of pkgsrc's pkg_* tools. Ideally, these should NOT be used in
102: conjunction with pkgsrc. If you choose to use them at the same time as the
103: pkgsrc packages, ensure that you use the proper pkg_* tools for each type of
104: binary package.
105:
106: The TERM setting used for DOS-type console windows (including those invoked by
107: the csh and ksh startup shortcuts) is "interix". Most systems don't have a
108: termcap/terminfo entry for it, but the following .termcap entry provides
109: adequate emulation in most cases:
110:
111: interix:kP=\E[S:kN=\E[T:kH=\E[U:dc@:DC@:tc=pcansi:
112:
113: Limitations of the Interix platform
114: -----------------------------------
115:
116: Though Interix suffices as a familiar and flexible substitute for a full
117: Unix-like platform, it has some drawbacks that should be noted for those
118: desiring to make the most of Interix.
119:
120: X11:
121:
122: Interix comes with the standard set of X11R6 client libraries, and can run X11
123: based applications, but it does not come with an X server. Some options are
124: StarNet X-Win32 http://www.starnet.com/products/xwin32/, Hummingbird Exceed
125: http://connectivity.hummingbird.com/products/nc/exceed/ (available in a trimmed
126: version for Interix from Interop Systems as the Interop X Server
127: http://www.interopsystems.com/InteropXserver.htm), and the free X11 server
128: included with Cygwin http://x.cygwin.com/.
129:
130: X11 acceleration:
131:
132: Because Interix runs in a completely different NT subsystem from Win32
133: applications, it does not currently support various X11 protocol extensions for
134: acceleration (such as MIT-SHM or DGA). Most interactive applications to a local
135: X server will run reasonably fast, but full motion video and other graphics
136: intensive applications may require a faster-than-expected CPU.
137:
138: Audio:
139:
140: Interix has no native support for audio output. For audio support, pkgsrc uses
141: the esound client/server audio system on Interix. Unlike on most platforms, the
142: audio/esound package does not contain the esd server component. To output audio
143: via an Interix host, the emulators/cygwin_esound package must also be installed.
144:
145: CD/DVDs, USB, and SCSI:
146:
147: Direct device access is not currently supported in Interix, so it is not
148: currently possible to access CD/DVD drives, USB devices, or SCSI devices through
149: non-filesystem means. Among other things, this makes it impossible to use
150: Interix directly for CD/DVD burning.
151:
152: Tape drives:
153:
154: Due to the same limitations as for CD-ROMs and SCSI devices, tape drives are
155: also not directly accessible in Interix. However, support is in work to make
156: tape drive access possible by using Cygwin as a bridge (similarly to audio
157: bridged via Cygwin's esound server).
158:
159: Known issues for pkgsrc on Interix
160: ----------------------------------
161:
162: It is not necessary, in general, to have a "root" user on the Windows system;
163: any member of the local Administrators group will suffice. However, some
164: packages currently assume that the user named "root" is the privileged user. To
165: accommodate these, you may create such a user; make sure it is in the local
166: group Administrators (or your language equivalent).
167:
168: pkg_add creates directories of mode 0755, not 0775, in $PKG_DBDIR. For the time
169: being, install packages as the local Administrator (or your language
170: equivalent), or run the following command after installing a package to work
171: around the issue:
172:
173: # chmod -R g+w $PKG_DBDIR
CVSweb <webmaster@jp.NetBSD.org>