* faq-setup.xml: Revamp for Cygwin 1.7.

* faq-using.xml: Ditto.
This commit is contained in:
Corinna Vinschen 2009-02-12 14:45:50 +00:00
parent c2da1d6ebf
commit 45105145e1
3 changed files with 162 additions and 277 deletions

View File

@ -1,3 +1,8 @@
2009-02-12 Corinna Vinschen <corinna@vinschen.de>
* faq-setup.xml: Revamp for Cygwin 1.7.
* faq-using.xml: Ditto.
2009-02-11 Corinna Vinschen <corinna@vinschen.de> 2009-02-11 Corinna Vinschen <corinna@vinschen.de>
* faq-programming.xml: Revamp (mostely) for Cygwin 1.7. * faq-programming.xml: Revamp (mostely) for Cygwin 1.7.

View File

@ -238,7 +238,7 @@ ought to check whether you <emphasis>really</emphasis> want to install everythin
<answer> <answer>
<para>That depends, obviously, on what you've chosen to download and <para>That depends, obviously, on what you've chosen to download and
install. A full installation today is probably larger than 800MB install. A full installation today is probably larger than 1 GB
installed, not including the package archives themselves nor the source installed, not including the package archives themselves nor the source
code. code.
</para> </para>
@ -413,9 +413,8 @@ installed are <literal>sshd</literal>, <literal>cron</literal>,
</para> </para>
</listitem> </listitem>
<listitem><para>Stop the X11 server if it is running, and terminate any Cygwin programs <listitem><para>Stop the X11 server if it is running, and terminate any Cygwin programs
that might be running in the background. Remove all mount information by typing that might be running in the background. Exit the command prompt and ensure
<literal>umount -A</literal> and then exit the command prompt and ensure that no Cygwin that no Cygwin processes remain. Note: If you want to save your mount points for a later
processes remain. Note: If you want to save your mount points for a later
reinstall, first save the output of <literal>mount -m</literal> as described at reinstall, first save the output of <literal>mount -m</literal> as described at
<ulink url="http://cygwin.com/cygwin-ug-net/using-utils.html#mount" />. <ulink url="http://cygwin.com/cygwin-ug-net/using-utils.html#mount" />.
</para> </para>
@ -453,10 +452,10 @@ remove it.
</para> </para>
</listitem> </listitem>
<listitem><para>Finally, if you want to be thorough you can delete the registry tree <listitem><para>Finally, if you want to be thorough you can delete the registry tree
<literal>Software\Cygnus Solutions</literal> under <literal>HKEY_LOCAL_MACHINE</literal> and/or <literal>Software\Cygwin</literal> under <literal>HKEY_LOCAL_MACHINE</literal> and/or
<literal>HKEY_CURRENT_USER</literal>. However, if you followed the directions above you <literal>HKEY_CURRENT_USER</literal>. However, if you followed the directions above you
will have already removed all the mount information which is typically the only will have already removed everything important. Typically only the installation
thing stored in the registry. directory has been stored in the registry at all.
</para> </para>
</listitem> </listitem>
</orderedlist> </orderedlist>
@ -540,10 +539,13 @@ the Cygwin Setup homepage at
<para>While some users have successfully done this, for example Indiana <para>While some users have successfully done this, for example Indiana
University's XLiveCD <ulink url="http://xlivecd.indiana.edu/">http://xlivecd.indiana.edu/</ulink>, there is no University's XLiveCD <ulink url="http://xlivecd.indiana.edu/">http://xlivecd.indiana.edu/</ulink>, there is no
easy way to do it. Full instructions for constructing a porttable Cygwin easy way to do it. Full instructions for constructing a portable Cygwin
on CD by hand can be found on the mailing list at on CD by hand can be found on the mailing list at
<ulink url="http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html">http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html</ulink>. (Thanks <ulink url="http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html">http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html</ulink>
to fergus at bonhard dot uklinux dot net for these instructions.) (Thanks to fergus at bonhard dot uklinux dot net for these instructions.)
Please note that these instructions are rather old and are referring to the
somewhat different setup of a Cygwin 1.5.x release. As soon as somebody set
this up for Cygwin 1.7, we might add this information here.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -551,15 +553,8 @@ to fergus at bonhard dot uklinux dot net for these instructions.)
<question><para>How do I save, restore, delete, or modify the Cygwin information stored in the registry?</para></question> <question><para>How do I save, restore, delete, or modify the Cygwin information stored in the registry?</para></question>
<answer> <answer>
<para>Currently Cygwin stores its mount table information in the registry. It <para>Since Cygwin 1.7, there's nothing important in the registry anymore,
is recommended that you use the <literal>mount</literal> and <literal>umount</literal> commands except for the installation directory information stored there for the sake
to manipulate the mount information instead of directly modifying the of setup.exe. There's nothing left to manipulate anymore.
registry.
</para>
<para>To save the mount information to a file for later restoration, use
<literal>mount -m &gt; mounts.bat</literal> To remove all mount information use
<literal>umount -A</literal>. To reincorporate saved mount information just run the
batch file. For more information on using <literal>mount</literal>, see
<ulink url="http://cygwin.com/cygwin-ug-net/using-utils.html#mount">http://cygwin.com/cygwin-ug-net/using-utils.html#mount</ulink>.
</para></answer></qandaentry> </para></answer></qandaentry>

View File

@ -1,29 +1,23 @@
<!-- faq-problems.xml --> <!-- faq-problems.xml -->
<qandaentry id="faq.using.missing-dlls"> <qandaentry id="faq.using.missing-dlls">
<question><para>Why can't my application locate cygncurses5.dll? or cygintl.dll? or cygreadline5.dll? or ...?</para></question> <question><para>Why can't my application locate cygncurses-8.dll? or cygintl-3.dll? or cygreadline6.dll? or ...?</para></question>
<answer> <answer>
<para>If you upgraded recently, and suddenly vim (or some other Cygwin <para>Well, something has gone wrong somehow...
application) cannot find <literal>cygncurses5.dll</literal>, it probably means that you did
not follow these instructions properly:
<ulink url="http://cygwin.com/ml/cygwin-announce/2001/msg00124.html">http://cygwin.com/ml/cygwin-announce/2001/msg00124.html</ulink>. To
repair the damage, you must run Cygwin Setup again, and re-install the
<literal>libncurses5</literal> package.
</para> </para>
<para>Note that Cygwin Setup won't show this option by default. In the <para>To repair the damage, you must run Cygwin Setup again, and re-install the
package which provides the missing DLL package.
</para>
<para>If you already installed the package at one point, Cygwin Setup won't
show the option to install the package by default. In the
``Select packages to install'' dialog, click on the <literal>Full/Part</literal> ``Select packages to install'' dialog, click on the <literal>Full/Part</literal>
button. This lists all packages, even those that are already button. This lists all packages, even those that are already
installed. Scroll down to locate the <literal>libncurses5</literal> package. installed. Scroll down to locate the missing package, for instance
Click on the ``cycle'' glyph until it says ``Reinstall''. Continue <literal>libncurses8</literal>. Click on the ``cycle'' glyph until it says
with the installation. ``Reinstall''. Continue with the installation.
</para>
<para>Similarly, if something cannot find <literal>cygintl.dll</literal>, then run
Cygwin Setup and re-install the <literal>libintl</literal> and <literal>libintl1</literal>
packages.
</para> </para>
<para>For a detailed explanation of the general problem, and how to extend <para>For a detailed explanation of the general problem, and how to extend
it to other missing DLLs (like cygreadline5.dll) and identify their it to other missing DLLs and identify their containing packages, see
containing packages, see
<ulink url="http://cygwin.com/ml/cygwin/2002-01/msg01619.html">http://cygwin.com/ml/cygwin/2002-01/msg01619.html</ulink>. <ulink url="http://cygwin.com/ml/cygwin/2002-01/msg01619.html">http://cygwin.com/ml/cygwin/2002-01/msg01619.html</ulink>.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -32,46 +26,33 @@ containing packages, see
<question><para>Why is Cygwin suddenly <emphasis>so</emphasis> slow?</para></question> <question><para>Why is Cygwin suddenly <emphasis>so</emphasis> slow?</para></question>
<answer> <answer>
<para>If you recently upgraded and suddenly <emphasis>every</emphasis> command takes a <para>If suddenly <emphasis>every</emphasis> command takes a
<emphasis>very</emphasis> long time, then something is probably attempting to <emphasis>very</emphasis> long time, then something is probably attempting to
access a network share. You may have the obsolete <literal>//c</literal> access a network share. You may have the obsolete <literal>//c</literal>
notation in your PATH or startup files. This now means the notation in your PATH or startup files. Using <literal>//c</literal> means
<emphasis>network share</emphasis> <literal>c</literal>, which will slow things down to contact the <emphasis>network server</emphasis> <literal>c</literal>, which
tremendously if it does not exist. will slow things down tremendously if it does not exist.
</para> </para>
<para>Using //c (for C:) doesn't work anymore. (Similarly for any drive <para>Using //c (for C:) doesn't work. (Similarly for any drive
letter, e.g. <literal>//z</literal> for <literal>Z:</literal>) This ``feature'' has long been letter, e.g. <literal>//z</literal> for <literal>Z:</literal>) This
deprecated, and no longer works at all in the latest release. As of ``feature'' has long been deprecated.
release 1.3.3, <literal>//c</literal> now means the <emphasis>network share</emphasis> <literal>c</literal>.
For a detailed discussion of why this change was made, and how deal For a detailed discussion of why this change was made, and how deal
with it now, refer to with it, refer to
<ulink url="http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html">http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html</ulink>. <ulink url="http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html">http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html</ulink>.
Just note that, in contrast to what that posting claims, using
<literal>/</literal> as the cygdrive prefix is not supported anymore for a
long time (though it still might work).
</para> </para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.services">
<question><para>Why don't my services work?</para></question>
<answer>
<para>Most Windows services run as a special user called <literal>SYSTEM</literal>. If you
installed Cygwin for "Just Me", the <literal>SYSTEM</literal> user won't see your
Cygwin mount table. You need to re-mount all of your mounts as
"system" for services to work. You can re-run <literal>setup.exe</literal> and
select "Install for All Users", or this script will do the trick:
</para>
<screen>
eval "`mount -m | sed -e 's/ -u / -s /g' -e 's/$/;/'`"
</screen>
</answer></qandaentry>
<qandaentry id="faq.using.shares"> <qandaentry id="faq.using.shares">
<question><para>Why can't my services access network shares?</para></question> <question><para>Why can't my services access network shares?</para></question>
<answer> <answer>
<para>When a service switches to a certain user, it is running as <para>If your service is one of those which switch the user context
<literal>SYSTEM</literal> impersonating the user account. During (sshd, inetd, etc), then it depends on the method used to switch to
impersonation, the user's password is not available and so non-public another user. This problem as well as its solution is described in
network shares are not available. For more information, see detail in the Cygwin User's Guide, see
<ulink url="http://cygwin.com/cygwin-ug-net/ntsec.html" />. <ulink url="http://cygwin.com/cygwin-ug-net/ntsec.html" />.
</para> </para>
<para>Workarounds include using public network share that does not require <para>Workarounds include using public network share that does not require
@ -103,10 +84,13 @@ follow this rule. You <emphasis role='bold'>must</emphasis> have <literal>/usr/
the Windows system directories!) Otherwise you will likely encounter the Windows system directories!) Otherwise you will likely encounter
all sorts of problems running Cygwin applications. all sorts of problems running Cygwin applications.
</para> </para>
<para>If you're using another shell than bash (say, tcsh), the mechanism
is the same, just the names of the login scripts are different.
</para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.not-found"> <qandaentry id="faq.using.not-found">
<question><para>Bash says "command not found", but it's right there!</para></question> <question><para>Bash (or another shell) says "command not found", but it's right there!</para></question>
<answer> <answer>
<para>If you compile a program, you might find that you can't run it: <para>If you compile a program, you might find that you can't run it:
@ -117,7 +101,7 @@ all sorts of problems running Cygwin applications.
bash: hello: command not found bash: hello: command not found
</screen> </screen>
<para>Unlike Windows, bash does not look for programs in <literal>.</literal> (the current <para>Unlike the Windows default behaviour, Unix shells like bash do not look for programs in <literal>.</literal> (the current
directory) by default. You can add <literal>.</literal> to your PATH (see above), directory) by default. You can add <literal>.</literal> to your PATH (see above),
but this is not recommended (at least on UNIX) for security reasons. but this is not recommended (at least on UNIX) for security reasons.
Just tell bash where to find it, when you type it on the command line: Just tell bash where to find it, when you type it on the command line:
@ -156,8 +140,7 @@ as such.
<para>Your .bashrc is read from your home directory specified by the HOME <para>Your .bashrc is read from your home directory specified by the HOME
environment variable. It uses /.bashrc if HOME is not set. So you need environment variable. It uses /.bashrc if HOME is not set. So you need
to set HOME correctly, or move your .bashrc to the top of the drive to set HOME (and the home dir in your /etc/passwd entry) correctly.
mounted as / in Cygwin.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -206,13 +189,13 @@ or
<question><para>Why can't I cd into a shortcut to a directory?</para></question> <question><para>Why can't I cd into a shortcut to a directory?</para></question>
<answer> <answer>
<para>Cygwin versions &lt; 1.3.0 do not follow MS Windows Explorer Shortcuts <para>Cygwin does not follow MS Windows Explorer Shortcuts
(*.lnk files). It sees a shortcut as a regular file and this you (*.lnk files). It sees a shortcut as a regular file and this you
cannot "cd" into it. cannot "cd" into it.
</para> </para>
<para>Since version 1.3.0, Cygwin uses shortcuts as symlinks by default. <para>Cygwin is also capable to create POSIX symlinks as Windows shortcuts
</para> (see the CYGWIN environment variable option "winsymlinks"), but these
<para>Cygwin shortcuts are different from shortcuts created by native Windows shortcuts are different from shortcuts created by native Windows
applications. Windows applications can usually make use of Cygwin applications. Windows applications can usually make use of Cygwin
shortcuts but not vice versa. This is by choice. The reason is that shortcuts but not vice versa. This is by choice. The reason is that
Windows shortcuts may contain a bunch of extra information which would Windows shortcuts may contain a bunch of extra information which would
@ -254,8 +237,9 @@ See the documentation for the option <literal>-noleaf</literal> in the man page.
it has not been ported to Cygwin and has never worked. It is it has not been ported to Cygwin and has never worked. It is
currently installed as part of the sh-utils, but again, it does not work. currently installed as part of the sh-utils, but again, it does not work.
</para> </para>
<para>You may be able to use <literal>login</literal> instead, but you should read <para>You should rather install <literal>sshd</literal> and use
<ulink url="http://www.cygwin.com/ml/cygwin/2001-03/msg00337.html">http://www.cygwin.com/ml/cygwin/2001-03/msg00337.html</ulink> first. <literal>ssh username@localhost</literal> as a <literal>su</literal>
replacement.
</para> </para>
<para>For some technical background into why <literal>su</literal> doesn't work, read <para>For some technical background into why <literal>su</literal> doesn't work, read
<ulink url="http://www.cygwin.com/ml/cygwin/2003-06/msg00897.html">http://www.cygwin.com/ml/cygwin/2003-06/msg00897.html</ulink> and <ulink url="http://www.cygwin.com/ml/cygwin/2003-06/msg00897.html">http://www.cygwin.com/ml/cygwin/2003-06/msg00897.html</ulink> and
@ -264,7 +248,7 @@ related messages.
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.man"> <qandaentry id="faq.using.man">
<question><para>Why doesn't man (or apropos) work?</para></question> <question><para>Why doesn't man -k (or apropos) work?</para></question>
<answer> <answer>
<para>Before you can use <literal>man -k</literal> or <literal>apropos</literal>, you <para>Before you can use <literal>man -k</literal> or <literal>apropos</literal>, you
@ -289,8 +273,10 @@ or <literal>mkgroup</literal>, you need to run one or both of those
commands. commands.
</para> </para>
<para>If you're using FAT32 instead of NTFS, <literal>chmod</literal> <para>If you're using FAT32 instead of NTFS, <literal>chmod</literal>
will fail since FAT32 does not provide any security. You might consider will fail since FAT32 does not provide any permission information.
converting the drive to NTFS with <literal>CONVERT.EXE</literal>. You should really consider converting the drive to NTFS with
<literal>CONVERT.EXE</literal>. FAT and FAT32 are barely good enough
for memory cards or USB sticks to exchange pictures...
</para> </para>
<para>For other cases, understand that Cygwin attempts to show UNIX <para>For other cases, understand that Cygwin attempts to show UNIX
permissions based on the security features of Windows, so the Windows permissions based on the security features of Windows, so the Windows
@ -300,36 +286,25 @@ for more information on how Cygwin maps Windows permissions.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.mkdir-network">
<question><para>Why doesn't <literal>mkdir -p</literal> work on a network share?</para></question>
<answer>
<para>Starting with <literal>coreutils-5.3.0-6</literal> and <literal>cygwin-1.5.17</literal>, you can
do something like this:
</para>
<screen>
bash$ mkdir -p //MACHINE/Share/path/to/new/dir
</screen>
<para>However, coreutils expects Unix path names, so something like
<literal>mkdir -p \\\\machine\\share\\path</literal> will fail.
</para>
</answer></qandaentry>
<qandaentry id="faq.using.shell-scripts"> <qandaentry id="faq.using.shell-scripts">
<question><para>Why doesn't my shell script work?</para></question> <question><para>Why doesn't my shell script work?</para></question>
<answer> <answer>
<para>There are two basic problems you might run into. One is the fact that <para>There are two basic problems you might run into. One is the fact that
<command>/bin/sh</command> is really <command>bash</command> (prior to <command>/bin/sh</command> is really <command>bash</command>.
<command>bash-3.0-6</command>, <command>/bin/sh</command> was ash). and is It could be missing some features you might expect in
missing some features you might expect in <command>/bin/sh</command>, <command>/bin/sh</command>, if you are used to <command>/bin/sh</command>
particularly if you are used to <command>/bin/sh</command> actually being actually being <command>zsh</command> (MacOS X "Panther") or
<command>zsh</command> (MacOS X "Panther") or <command>ksh</command> (Tru64). <command>ksh</command> (Tru64).
</para> </para>
<para>Or, it could be a permission problem, and Cygwin doesn't understand that your script is executable. Because <literal>chmod</literal> may not work (see FAQ entry above), Cygwin must read the contents of files to determine if <para>Or, it could be a permission problem, and Cygwin doesn't understand
they are executable. If your script does not start with that your script is executable. On NTFS or NFS just make the script
executable using <literal>chmod +x</literal>. However,
<literal>chmod</literal> may not work due to restrictions of the
filesystem (see FAQ entry above). In this case Cygwin must read the
contents of files to determine if they are executable. If your script
does not start with
</para> </para>
<screen> <screen>
#! /bin/sh #! /bin/sh
@ -346,7 +321,8 @@ idiom
<para>also works. <para>also works.
</para> </para>
<para>Note that you can use <literal>mount -x</literal> to force Cygwin to treat all files <para>Note that you can use the filesystem flag <literal>cygexec</literal> in
<filename>/etc/fstab</filename> to force Cygwin to treat all files
under the mount point as executable. This can be used for individual under the mount point as executable. This can be used for individual
files as well as directories. Then Cygwin will not bother to read files files as well as directories. Then Cygwin will not bother to read files
to determine whether they are executable. to determine whether they are executable.
@ -365,8 +341,8 @@ PostScript files on non-PostScript Windows printers). Start at
<ulink url="http://cygwin.com/ml/cygwin/2001-04/msg00657.html">http://cygwin.com/ml/cygwin/2001-04/msg00657.html</ulink>. Note that the <ulink url="http://cygwin.com/ml/cygwin/2001-04/msg00657.html">http://cygwin.com/ml/cygwin/2001-04/msg00657.html</ulink>. Note that the
<literal>file</literal> command is now available as part of Cygwin setup. <literal>file</literal> command is now available as part of Cygwin setup.
</para> </para>
<para>Alternatively, on NT, you can use the Windows <literal>print</literal> command. (It <para>Alternatively, on NT, you can use the Windows <literal>print</literal>
does not seem to be available on Win9x.) Type command. (It does not seem to be available on Win9x.) Type
</para> </para>
<screen> <screen>
bash$ print /\? bash$ print /\?
@ -391,10 +367,15 @@ formfeed character to your file.
<answer> <answer>
<para>Internationalization is a complex issue. The short answer is that <para>Internationalization is a complex issue. The short answer is that
Cygwin is not Unicode-aware, so things that might work in Linux will Cygwin relies on the setting of the CYGWIN environment variable as well
not necessarily work on Cygwin. However, some things do work. To type as on the setting of LANG environment variable. The underlying C library,
international characters (&pound;&auml;&ouml;) in <literal>bash</literal>, add the following newlib, only supports a small subset of LANG settings. The default is "C".
lines to your <literal>~/.inputrc</literal> file and restart <literal>bash</literal>: To get UTF-8 support you must set LANG to "C-UTF-8" and CYGWIN so that
it contains "codepage:utf8".
</para>
<para>To type international characters (&pound;&auml;&ouml;) in
<literal>bash</literal>, add the following lines to your
<literal>~/.inputrc</literal> file and restart <literal>bash</literal>:
</para> </para>
<screen> <screen>
set meta-flag on set meta-flag on
@ -404,11 +385,12 @@ lines to your <literal>~/.inputrc</literal> file and restart <literal>bash</lite
set kanji-code sjis set kanji-code sjis
</screen> </screen>
<para>These are options to the <literal>readline</literal> library, which you can read <para>These are options to the <literal>readline</literal> library, which
about in the <literal>bash(1)</literal> and <literal>readline(3)</literal> man pages. Other you can read about in the <literal>bash(1)</literal> and
tools that do not use <literal>readline</literal> for display, such as <literal>less</literal> <literal>readline(3)</literal> man pages. Other tools that do not use
and <literal>ls</literal>, require additional settings, which could be put in your <literal>readline</literal> for display, such as <literal>less</literal>
<literal>~/.bashrc</literal>: and <literal>ls</literal>, require additional settings, which could be put
in your <literal>~/.bashrc</literal>:
<screen> <screen>
alias less='/bin/less -r' alias less='/bin/less -r'
alias ls='/bin/ls -F --color=tty --show-control-chars' alias ls='/bin/ls -F --color=tty --show-control-chars'
@ -418,40 +400,6 @@ export OUTPUT_CHARSET="sjis"
These examples use the Japanese Shift-JIS character set, obviously These examples use the Japanese Shift-JIS character set, obviously
you will want to change them for your own locale. you will want to change them for your own locale.
</para> </para>
</answer></qandaentry>
<qandaentry id="faq.using.cursor">
<question><para>Why don't cursor keys work under Win95/Win98?</para></question>
<answer>
<para><emphasis role='bold'>(Please note: This section has not yet been updated for the latest net release.)</emphasis>
</para>
<para>Careful examination shows that they not just non-functional, but
rather behave strangely, for example, with NumLock off, keys on numeric
keyboard work, until you press usual cursor keys, when even numeric
stop working, but they start working again after hitting alphanumeric
key, etc. This reported to happen on localized versions of Win98 and
Win95, and not specific to Cygwin; there are known cases of Alt+Enter
(fullscreen/windowed toggle) not working and shifts sticking with
other programs. The cause of this problem is Microsoft keyboard
localizer which by default installed in 'autoexec.bat'. Corresponding
line looks like:
</para>
<screen>
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys
</screen>
<para>(That's for russian locale.) You should comment that line if you want
your keys working properly. Of course, this will deprive you of your
local alphabet keyboard support, so you should think about
another localizer. ex-USSR users are of course knowledgeable of Keyrus
localizer, and it might work for other locales too, since it has keyboard
layout editor. But it has russian messages and documentation ;-(
Reference URL is http://www.hnet.ru/software/contrib/Utils/KeyRus/
(note the you may need to turn off Windows logo for Keyrus to operate
properly).
</para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.multiple-copies"> <qandaentry id="faq.using.multiple-copies">
@ -463,15 +411,16 @@ have multiple versions, they will conflict and cause problems.
</para> </para>
<para>If you get the error "shared region is corrupted" or "shared region <para>If you get the error "shared region is corrupted" or "shared region
version mismatch" it means you have multiple versions of cygwin1.dll version mismatch" it means you have multiple versions of cygwin1.dll
running at the same time. This could happen, for example, if you update running at the same time which conflict with each other. This could happen,
cygwin1.dll without exiting <emphasis>all</emphasis> Cygwin apps (including inetd) for example, if you update cygwin1.dll without exiting
beforehand. <emphasis>all</emphasis> Cygwin apps (including inetd) beforehand.
</para> </para>
<para>The only DLL that is sanctioned by the Cygwin project is the one that <para>The only DLL that is sanctioned by the Cygwin project is the one that
you get by running <ulink url="http://cygwin.com/setup.exe">setup.exe</ulink>, installed in the you get by running <ulink url="http://cygwin.com/setup.exe">setup.exe</ulink>,
directory controlled by this program. If you have other versions on installed in the directory controlled by this program. If you have other
your system and desire help from the cygwin project, you should delete versions on your system and desire help from the cygwin project, you should
or rename all DLLs that are not installed by <filename>setup.exe</filename>. delete or rename all DLLs that are not installed by
<filename>setup.exe</filename>.
</para> </para>
<para>If you're trying to find multiple versions of the DLL that are causing <para>If you're trying to find multiple versions of the DLL that are causing
this problem, reboot first, in case DLLs still loaded in memory are the this problem, reboot first, in case DLLs still loaded in memory are the
@ -512,17 +461,20 @@ GPL-compatible license, *or* purchase a cygwin license from Red Hat.
<qandaentry id="faq.using.private-cygwin"> <qandaentry id="faq.using.private-cygwin">
<question><para> <question><para>
So I can't install a private version of the Cygwin DLL without So I can't install a private version of the Cygwin DLL without
conflictng with the system cygwin? conflicting with the system cygwin?
</para></question> </para></question>
<answer><para> <answer><para>
Actually, if you are very careful, you can have two different versions Actually, if you are very careful, you can have two different versions
of the Cygwin DLL installed on your system at the same time but they of the Cygwin DLL installed on your system at the same time but they
must be run serially. This means that you can't be running programs must be run serially. The only exception from this rule is, if one of
using both versions of Cygwin at the same time. Please be aware that the DLLs is a pre-1.7 DLL and the other is a 1.7.0 or later DLL. These
currently both versions will use the same mount table entries although DLLs can work concurrently without knowing about each other due to
this wil change in Cygwin version 1.7.x. massive changes using shared resources in Cygwin 1.7. However,
</para><para> processes using different DLLs will not interact with each other
This usage is not recommeded for novices. Only limited support will be correctly, so keep them separate except you really really know what
you're doing.
</para>
<para>This usage is not recommeded for novices. Only limited support will be
provided in the <ulink url="http://cygwin.com/lists.html">mailing lists</ulink> provided in the <ulink url="http://cygwin.com/lists.html">mailing lists</ulink>
if you run into problems. if you run into problems.
</para></answer></qandaentry> </para></answer></qandaentry>
@ -535,9 +487,10 @@ DLL on top of a newer DLL, my application will break?
<answer><para> <answer><para>
It depends on what you mean by "break". If the application installs a It depends on what you mean by "break". If the application installs a
version of the Cygwin DLL in another location than Cygwin's /bin version of the Cygwin DLL in another location than Cygwin's /bin
directory then the rules in 9.3 apply. If the application installs an directory then the rules in
older version of the DLL in /bin then you should complain loudly to the <xref linkend="faq.using.third-party.multiple-copies"></xref> apply.
application provider. If the application installs an older version of the DLL in /bin then you
should complain loudly to the application provider.
</para><para> </para><para>
Remember that the Cygwin DLL strives to be backwards compatible so a Remember that the Cygwin DLL strives to be backwards compatible so a
newer version of the DLL should always work with older executables. So, newer version of the DLL should always work with older executables. So,
@ -581,7 +534,7 @@ mailing list pinging the maintainer is perfectly acceptable. There are
no guarantees that the maintainer will have time to update the package no guarantees that the maintainer will have time to update the package
or that you'll receive a response to your request, however. or that you'll receive a response to your request, however.
</para> </para>
<para>Remeber that the operative term here is "volunteer". <para>Remember that the operative term here is "volunteer".
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -630,24 +583,15 @@ get there.
Then <literal>/cygdrive/c/Windows</literal> becomes <literal>/c/Windows</literal> which is a Then <literal>/cygdrive/c/Windows</literal> becomes <literal>/c/Windows</literal> which is a
little less typing. little less typing.
</para> </para>
<para>Note that you only need to mount drives once. The mapping is kept <para>Note that you have to enter the mount point into the
in the registry so mounts stay valid pretty much indefinitely. <filename>/etc/fstab</filename> file to keep it indefinitely.
You can only get rid of them with umount, or the registry editor. The mount command will only add the mount point for the lifetime
of your current Cygwin session.
</para> </para>
<para>The '-b' option to mount mounts the mountpoint in binary mode <para>You can change the default <literal>cygdrive</literal> prefix and whether it is binmode or textmode using the <filename>/etc/fstab</filename> file
("binmode") where text and binary files are treated equivalently. This as well. See the Cygwin User's Guide at
should only be necessary for badly ported Unix programs where binary <ulink url="http://cygwin.com/cygwin-ug-net/using.html#mount-table">http://cygwin.com/cygwin-ug-net/using.html#mount-table</ulink>
flags are missing from open calls. It is also the setting for /, for more details.
/usr/bin and /usr/lib in a default Cygwin installation. The default for
new mounts is text mode ("textmode"), which is also the mode for all
"cygdrive" mounts.
</para>
<para>You can change the default <literal>cygdrive</literal> prefix and whether it is
binmode or textmode using the <literal>mount</literal> command. For example,
<screen>
bash$ mount -b --change-cygdrive-prefix cygdrive
</screen>
will change all <literal>/cygdrive/...</literal> mounts to binmode.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -655,17 +599,14 @@ will change all <literal>/cygdrive/...</literal> mounts to binmode.
<question><para>How can I copy and paste into Cygwin console windows?</para></question> <question><para>How can I copy and paste into Cygwin console windows?</para></question>
<answer> <answer>
<para>First, consider using rxvt instead of the standard console window. In <para>First, consider using rxvt or mintty instead of the standard console
rxvt, selecting with the left-mouse also copies, and middle-mouse window. In rxvt/mintty, selecting with the left-mouse also copies,
pastes. It couldn't be easier! and middle-mouse pastes. It couldn't be easier!
</para> </para>
<para>Under Windows NT, open the properties dialog of the console window. <para>In Windows's console window, open the properties dialog.
The options contain a toggle button, named "Quick edit mode". It must The options contain a toggle button, named "Quick edit mode". It must
be ON. Save the properties. be ON. Save the properties.
</para> </para>
<para>Under Windows 9x, open the properties dialog of the console window.
Select the Misc tab. Uncheck Fast Pasting. Check QuickEdit.
</para>
<para>You can also bind the insert key to paste from the clipboard by adding <para>You can also bind the insert key to paste from the clipboard by adding
the following line to your .inputrc file: the following line to your .inputrc file:
<screen> <screen>
@ -708,40 +649,32 @@ interfere with the normal functioning of Cygwin.
<question><para>How can I share files between Unix and Windows?</para></question> <question><para>How can I share files between Unix and Windows?</para></question>
<answer> <answer>
<para>During development, we have both Linux boxes running Samba and Windows <para>During development, we have Linux boxes running Samba and NFS as well
machines. We often build with cross-compilers under Linux and copy as Windows machines. We often build with cross-compilers under Linux and copy
binaries and source to the Windows system or just toy with them binaries and source to the Windows system or just toy with them
directly off the Samba-mounted partition. On dual-boot NT/Windows 9x directly off the Samba-mounted partition. Or, we use the Microsoft NFS
machines, we usually use the FAT filesystem so we can also access the client and just use NFS shares on Linux from Windows. And then there are
files under Windows 9x. tools like <literal>scp</literal>, <literal>ftp</literal>,
<literal>rsync</literal>, ...
</para> </para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.case-sensitive"> <qandaentry id="faq.using.case-sensitive">
<question><para>Is Cygwin case-sensitive? What are managed mounts?</para></question> <question><para>Is Cygwin case-sensitive??</para></question>
<answer> <answer>
<para>Several Unix programs expect to be able to use to filenames <para>Several Unix programs expect to be able to use to filenames
spelled the same way, but with different case. A prime example spelled the same way, but with different case. A prime example
of this is perl's configuration script, which wants <literal>Makefile</literal> and of this is perl's configuration script, which wants
<literal>makefile</literal>. WIN32 can't tell the difference between files with <literal>Makefile</literal> and <literal>makefile</literal>. Windows can't
just different case, so the configuration fails. tell the difference between files with just different case, so the
configuration fails.
</para> </para>
<para>To help with this problem, starting in <literal>cygwin-1.5.0</literal> it is <para>To help with this problem, Cygwin supports casesensitivity
possible to have a case sensitive Cygwin managed mount. This is an starting with Cygwin 1.7.0. For a detailed description how to use that
experimental feature and should be used with caution. You should only feature see the Cygwin User's Guilde at
use it for directories that are initially unpopulated and are due to <ulink url="http://cygwin.com/cygwin-ug-net/using-specialnames.html">http://cygwin.com/cygwin-ug-net/using-specialnames.html</ulink>.
be completely managed by cygwin (hence the name). So, the best use
would be to create an empty directory, mount it, and then add files to
it:
</para> </para>
<screen>
mkdir /managed-dir
mount -o managed c:/cygwin/managed-dir /managed-dir
cd /managed-dir/
touch makefile
touch Makefile
</screen>
</answer></qandaentry> </answer></qandaentry>
@ -749,14 +682,20 @@ touch Makefile
<question><para>What about DOS special filenames?</para></question> <question><para>What about DOS special filenames?</para></question>
<answer> <answer>
<para>Files cannot be named com1, lpt1, or aux (to name a few); either as <para>In Windows, files cannot be named com1, lpt1, or aux (to name a few);
the root filename or as the extension part. If you do, you'll have either as the root filename or as the extension part. If you do, you'll have
trouble. Unix programs don't avoid these names which can make things trouble. Unix programs don't avoid these names which can make things
interesting. E.g., the perl distribution has a file called interesting. E.g., the perl distribution has a file called
<literal>aux.sh</literal>. The perl configuration tries to make sure that <literal>aux.sh</literal>. The perl configuration tries to make sure that
<literal>aux.sh</literal> is there, but an operation on a file with the magic <literal>aux.sh</literal> is there, but an operation on a file with the magic
letters 'aux' in it will hang. letters 'aux' in it will hang.
</para> </para>
<para>At least that's what happens when using native Windows tools. Cygwin
1.7.0 and later can deal with these filenames just fine. Again, see the
User's Guide at
<ulink url="http://cygwin.com/cygwin-ug-net/using-specialnames.html">http://cygwin.com/cygwin-ug-net/using-specialnames.html</ulink>
for a detailed description of what's possible with filenames and what is not.
</para>
</answer></qandaentry> </answer></qandaentry>
<qandaentry id="faq.using.hangs"> <qandaentry id="faq.using.hangs">
@ -772,7 +711,7 @@ bet that the hung process is still running somewhere. Use the Task
Manager, pview, or a similar utility to kill the process. Manager, pview, or a similar utility to kill the process.
</para> </para>
<para>And, if all else fails, there's always the reset button/power switch. <para>And, if all else fails, there's always the reset button/power switch.
This should never be necessary under Windows NT. In theory this should never be necessary, though.
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -928,57 +867,9 @@ this message from the Cygwin mailing list:
<question><para>Is there a better alternative to the standard console window?</para></question> <question><para>Is there a better alternative to the standard console window?</para></question>
<answer> <answer>
<para>Yes! Use rxvt instead. It's an optional package in Cygwin Setup. <para>Yes! Use rxvt or mintty instead. Both are optional packages in
You can use it with or without X11. You can resize it easily by Cygwin Setup. You can use rxvt with or without X11, while mintty is a
dragging an edge or corner. Copy and paste is easy with the left and Cygwin application providing a native GUI.
middle mouse buttons, respectively. It will honor settings in your
~/.Xdefaults file, even without X. For details see
<literal>/usr/share/doc/Cygwin/rxvt-&lt;ver&gt;.README</literal>.
</para>
</answer></qandaentry>
<qandaentry id="faq.using.info-error">
<question><para>info error "dir: No such file or directory"</para></question>
<answer>
<para>Cygwin packages install their info documentation in the
<literal>/usr/share/info</literal> directory. But you need to create a <literal>dir</literal>
file there before the standalone info program (probably
<literal>/usr/bin/info</literal>) can be used to read those info files. This is how
you do it:
<screen>
bash$ cd /usr/share/info
bash$ for f in *.info ; do install-info $f dir ; done
</screen>
This may generate warnings:
<screen>
install-info: warning: no info dir entry in `gzip.info'
install-info: warning: no info dir entry in `time.info'
</screen>
The <literal>install-info</literal> command cannot parse these files, so you will
have to add their entries to <literal>/usr/share/info/dir</literal> by hand.
</para>
<para>Even if the dir file already exists, you may have to update it when
you install new Cygwin packages. Some packages update the dir file
for you, but many don't.
</para>
</answer></qandaentry>
<qandaentry id="faq.using.out-of-queue">
<question><para>Why do I get a message saying Out of Queue slots?</para></question>
<answer>
<para>"Out of queue slots!" generally occurs when you're trying to remove
many files that you do not have permission to remove (either because
you don't have permission, they are opened exclusively, etc). What
happens is Cygwin queues up these files with the supposition that it
will be possible to delete these files in the future. Assuming that
the permission of an affected file does change later on, the file will
be deleted as requested. However, if too many requests come in to
delete inaccessible files, the queue overflows and you get the message
you're asking about. Usually you can remedy this with a quick chmod,
close of a file, or other such thing. (Thanks to Larry Hall for
this explanation).
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -998,15 +889,9 @@ file:
<para>Note that the 0775 can be anything as long as the 0010 bit is set. <para>Note that the 0775 can be anything as long as the 0010 bit is set.
</para> </para>
</answer></qandaentry> <para>Alternatively, use Windows shortcuts as symlinks. See the CYGWIN
environment variable option "winsymlinks"
<qandaentry id="faq.using.df-incorrect"> <ulink url="http://cygwin.com/cygwin-ug-net/using-cygwinenv.html">http://cygwin.com/cygwin-ug-net/using-cygwinenv.html</ulink>
<question><para>Why does df report sizes incorrectly.</para></question>
<answer>
<para>There is a bug in the Win32 API function GetFreeDiskSpace that
makes it return incorrect values for disks larger than 2 GB in size.
Perhaps that may be your problem?
</para> </para>
</answer></qandaentry> </answer></qandaentry>
@ -1016,8 +901,8 @@ Perhaps that may be your problem?
<para>The versions of Tcl/Tk distributed with Cygwin (e.g. cygtclsh80.exe, <para>The versions of Tcl/Tk distributed with Cygwin (e.g. cygtclsh80.exe,
cygwish80.exe) are not actually "Cygwin versions" of those tools. cygwish80.exe) are not actually "Cygwin versions" of those tools.
They are built with the <literal>-mno-cygwin</literal> option to <literal>gcc</literal>, which They are built as native libraries, which means they do not understand
means they do not understand Cygwin mounts or symbolic links. Cygwin mounts or symbolic links.
</para> </para>
<para>See the entry "How do I convert between Windows and UNIX paths?" <para>See the entry "How do I convert between Windows and UNIX paths?"
elsewhere in this FAQ. elsewhere in this FAQ.