diff options
Diffstat (limited to 'winsup/doc')
-rw-r--r-- | winsup/doc/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/doc/faq-setup.xml | 35 | ||||
-rw-r--r-- | winsup/doc/faq-using.xml | 403 |
3 files changed, 164 insertions, 279 deletions
diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index b6b33687d..78a0aa3bd 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -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> * faq-programming.xml: Revamp (mostely) for Cygwin 1.7. diff --git a/winsup/doc/faq-setup.xml b/winsup/doc/faq-setup.xml index 55c291672..6e6f0fa55 100644 --- a/winsup/doc/faq-setup.xml +++ b/winsup/doc/faq-setup.xml @@ -238,7 +238,7 @@ ought to check whether you <emphasis>really</emphasis> want to install everythin <answer> <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 code. </para> @@ -413,9 +413,8 @@ installed are <literal>sshd</literal>, <literal>cron</literal>, </para> </listitem> <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 -<literal>umount -A</literal> and then exit the command prompt and ensure that no Cygwin -processes remain. Note: If you want to save your mount points for a later +that might be running in the background. Exit the command prompt and ensure +that no Cygwin 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 <ulink url="http://cygwin.com/cygwin-ug-net/using-utils.html#mount" />. </para> @@ -453,10 +452,10 @@ remove it. </para> </listitem> <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 -will have already removed all the mount information which is typically the only -thing stored in the registry. +will have already removed everything important. Typically only the installation +directory has been stored in the registry at all. </para> </listitem> </orderedlist> @@ -540,10 +539,13 @@ the Cygwin Setup homepage at <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 -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 -<ulink url="http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html">http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html</ulink>. (Thanks -to fergus at bonhard dot uklinux dot net for these instructions.) +<ulink url="http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html">http://www.cygwin.com/ml/cygwin/2003-07/msg01117.html</ulink> +(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> </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> <answer> -<para>Currently Cygwin stores its mount table information in the registry. It -is recommended that you use the <literal>mount</literal> and <literal>umount</literal> commands -to manipulate the mount information instead of directly modifying the -registry. -</para> -<para>To save the mount information to a file for later restoration, use -<literal>mount -m > 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>Since Cygwin 1.7, there's nothing important in the registry anymore, +except for the installation directory information stored there for the sake +of setup.exe. There's nothing left to manipulate anymore. </para></answer></qandaentry> diff --git a/winsup/doc/faq-using.xml b/winsup/doc/faq-using.xml index 1e5516c72..8a49b1423 100644 --- a/winsup/doc/faq-using.xml +++ b/winsup/doc/faq-using.xml @@ -1,29 +1,23 @@ <!-- faq-problems.xml --> <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> -<para>If you upgraded recently, and suddenly vim (or some other Cygwin -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>Well, something has gone wrong somehow... </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> button. This lists all packages, even those that are already -installed. Scroll down to locate the <literal>libncurses5</literal> package. -Click on the ``cycle'' glyph until it says ``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. +installed. Scroll down to locate the missing package, for instance +<literal>libncurses8</literal>. Click on the ``cycle'' glyph until it says +``Reinstall''. Continue with the installation. </para> <para>For a detailed explanation of the general problem, and how to extend -it to other missing DLLs (like cygreadline5.dll) and identify their -containing packages, see +it to other missing DLLs and identify their containing packages, see <ulink url="http://cygwin.com/ml/cygwin/2002-01/msg01619.html">http://cygwin.com/ml/cygwin/2002-01/msg01619.html</ulink>. </para> </answer></qandaentry> @@ -32,46 +26,33 @@ containing packages, see <question><para>Why is Cygwin suddenly <emphasis>so</emphasis> slow?</para></question> <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 access a network share. You may have the obsolete <literal>//c</literal> -notation in your PATH or startup files. This now means the -<emphasis>network share</emphasis> <literal>c</literal>, which will slow things down -tremendously if it does not exist. -</para> -<para>Using //c (for C:) doesn't work anymore. (Similarly for any drive -letter, e.g. <literal>//z</literal> for <literal>Z:</literal>) This ``feature'' has long been -deprecated, and no longer works at all in the latest release. As of -release 1.3.3, <literal>//c</literal> now means the <emphasis>network share</emphasis> <literal>c</literal>. +notation in your PATH or startup files. Using <literal>//c</literal> means +to contact the <emphasis>network server</emphasis> <literal>c</literal>, which +will slow things down tremendously if it does not exist. +</para> +<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 deprecated. 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>. +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> </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"> <question><para>Why can't my services access network shares?</para></question> <answer> -<para>When a service switches to a certain user, it is running as -<literal>SYSTEM</literal> impersonating the user account. During -impersonation, the user's password is not available and so non-public -network shares are not available. For more information, see +<para>If your service is one of those which switch the user context +(sshd, inetd, etc), then it depends on the method used to switch to +another user. This problem as well as its solution is described in +detail in the Cygwin User's Guide, see <ulink url="http://cygwin.com/cygwin-ug-net/ntsec.html" />. </para> <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 all sorts of problems running Cygwin applications. </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> <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> <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 </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), 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: @@ -156,8 +140,7 @@ as such. <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 -to set HOME correctly, or move your .bashrc to the top of the drive -mounted as / in Cygwin. +to set HOME (and the home dir in your /etc/passwd entry) correctly. </para> </answer></qandaentry> @@ -206,13 +189,13 @@ or <question><para>Why can't I cd into a shortcut to a directory?</para></question> <answer> -<para>Cygwin versions < 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 cannot "cd" into it. </para> -<para>Since version 1.3.0, Cygwin uses shortcuts as symlinks by default. -</para> -<para>Cygwin shortcuts are different from shortcuts created by native Windows +<para>Cygwin is also capable to create POSIX symlinks as Windows shortcuts +(see the CYGWIN environment variable option "winsymlinks"), but these +shortcuts are different from shortcuts created by native Windows applications. Windows applications can usually make use of Cygwin shortcuts but not vice versa. This is by choice. The reason is that 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 currently installed as part of the sh-utils, but again, it does not work. </para> -<para>You may be able to use <literal>login</literal> instead, but you should read -<ulink url="http://www.cygwin.com/ml/cygwin/2001-03/msg00337.html">http://www.cygwin.com/ml/cygwin/2001-03/msg00337.html</ulink> first. +<para>You should rather install <literal>sshd</literal> and use +<literal>ssh username@localhost</literal> as a <literal>su</literal> +replacement. </para> <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 @@ -264,7 +248,7 @@ related messages. </answer></qandaentry> <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> <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. </para> <para>If you're using FAT32 instead of NTFS, <literal>chmod</literal> -will fail since FAT32 does not provide any security. You might consider -converting the drive to NTFS with <literal>CONVERT.EXE</literal>. +will fail since FAT32 does not provide any permission information. +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>For other cases, understand that Cygwin attempts to show UNIX 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> </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"> <question><para>Why doesn't my shell script work?</para></question> <answer> <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>bash-3.0-6</command>, <command>/bin/sh</command> was ash). and is -missing some features you might expect in <command>/bin/sh</command>, -particularly if you are used to <command>/bin/sh</command> actually being -<command>zsh</command> (MacOS X "Panther") or <command>ksh</command> (Tru64). +<command>/bin/sh</command> is really <command>bash</command>. +It could be missing some features you might expect in +<command>/bin/sh</command>, if you are used to <command>/bin/sh</command> +actually being <command>zsh</command> (MacOS X "Panther") or +<command>ksh</command> (Tru64). </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 -they are executable. If your script does not start with +<para>Or, it could be a permission problem, and Cygwin doesn't understand +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> <screen> #! /bin/sh @@ -346,7 +321,8 @@ idiom <para>also works. </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 files as well as directories. Then Cygwin will not bother to read files 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 <literal>file</literal> command is now available as part of Cygwin setup. </para> -<para>Alternatively, on NT, you can use the Windows <literal>print</literal> command. (It -does not seem to be available on Win9x.) Type +<para>Alternatively, on NT, you can use the Windows <literal>print</literal> +command. (It does not seem to be available on Win9x.) Type </para> <screen> bash$ print /\? @@ -391,10 +367,15 @@ formfeed character to your file. <answer> <para>Internationalization is a complex issue. The short answer is that -Cygwin is not Unicode-aware, so things that might work in Linux will -not necessarily work on Cygwin. However, some things do work. To type -international characters (£äö) in <literal>bash</literal>, add the following -lines to your <literal>~/.inputrc</literal> file and restart <literal>bash</literal>: +Cygwin relies on the setting of the CYGWIN environment variable as well +as on the setting of LANG environment variable. The underlying C library, +newlib, only supports a small subset of LANG settings. The default is "C". +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 (£äö) in +<literal>bash</literal>, add the following lines to your +<literal>~/.inputrc</literal> file and restart <literal>bash</literal>: </para> <screen> set meta-flag on @@ -404,11 +385,12 @@ lines to your <literal>~/.inputrc</literal> file and restart <literal>bash</lite set kanji-code sjis </screen> -<para>These are options to the <literal>readline</literal> library, which you can read -about in the <literal>bash(1)</literal> and <literal>readline(3)</literal> man pages. Other -tools that do not use <literal>readline</literal> for display, such as <literal>less</literal> -and <literal>ls</literal>, require additional settings, which could be put in your -<literal>~/.bashrc</literal>: +<para>These are options to the <literal>readline</literal> library, which +you can read about in the <literal>bash(1)</literal> and +<literal>readline(3)</literal> man pages. Other tools that do not use +<literal>readline</literal> for display, such as <literal>less</literal> +and <literal>ls</literal>, require additional settings, which could be put +in your <literal>~/.bashrc</literal>: <screen> alias less='/bin/less -r' 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 you will want to change them for your own locale. </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> <qandaentry id="faq.using.multiple-copies"> @@ -463,15 +411,16 @@ have multiple versions, they will conflict and cause problems. </para> <para>If you get the error "shared region is corrupted" or "shared region version mismatch" it means you have multiple versions of cygwin1.dll -running at the same time. This could happen, for example, if you update -cygwin1.dll without exiting <emphasis>all</emphasis> Cygwin apps (including inetd) -beforehand. +running at the same time which conflict with each other. This could happen, +for example, if you update cygwin1.dll without exiting +<emphasis>all</emphasis> Cygwin apps (including inetd) beforehand. </para> <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 -directory controlled by this program. If you have other versions on -your system and desire help from the cygwin project, you should delete -or rename all DLLs that are not installed by <filename>setup.exe</filename>. +you get by running <ulink url="http://cygwin.com/setup.exe">setup.exe</ulink>, +installed in the directory controlled by this program. If you have other +versions on your system and desire help from the cygwin project, you should +delete or rename all DLLs that are not installed by +<filename>setup.exe</filename>. </para> <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 @@ -512,17 +461,20 @@ GPL-compatible license, *or* purchase a cygwin license from Red Hat. <qandaentry id="faq.using.private-cygwin"> <question><para> 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> <answer><para> 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 -must be run serially. This means that you can't be running programs -using both versions of Cygwin at the same time. Please be aware that -currently both versions will use the same mount table entries although -this wil change in Cygwin version 1.7.x. -</para><para> -This usage is not recommeded for novices. Only limited support will be +must be run serially. The only exception from this rule is, if one of +the DLLs is a pre-1.7 DLL and the other is a 1.7.0 or later DLL. These +DLLs can work concurrently without knowing about each other due to +massive changes using shared resources in Cygwin 1.7. However, +processes using different DLLs will not interact with each other +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> if you run into problems. </para></answer></qandaentry> @@ -535,9 +487,10 @@ DLL on top of a newer DLL, my application will break? <answer><para> 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 -directory then the rules in 9.3 apply. If the application installs an -older version of the DLL in /bin then you should complain loudly to the -application provider. +directory then the rules in +<xref linkend="faq.using.third-party.multiple-copies"></xref> apply. +If the application installs an older version of the DLL in /bin then you +should complain loudly to the application provider. </para><para> Remember that the Cygwin DLL strives to be backwards compatible so a 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 or that you'll receive a response to your request, however. </para> -<para>Remeber that the operative term here is "volunteer". +<para>Remember that the operative term here is "volunteer". </para> </answer></qandaentry> @@ -630,24 +583,15 @@ get there. Then <literal>/cygdrive/c/Windows</literal> becomes <literal>/c/Windows</literal> which is a little less typing. </para> -<para>Note that you only need to mount drives once. The mapping is kept -in the registry so mounts stay valid pretty much indefinitely. -You can only get rid of them with umount, or the registry editor. -</para> -<para>The '-b' option to mount mounts the mountpoint in binary mode -("binmode") where text and binary files are treated equivalently. This -should only be necessary for badly ported Unix programs where binary -flags are missing from open calls. It is also the setting for /, -/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>Note that you have to enter the mount point into the +<filename>/etc/fstab</filename> file to keep it indefinitely. +The mount command will only add the mount point for the lifetime +of your current Cygwin session. </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>You can change the default <literal>cygdrive</literal> prefix and whether it is binmode or textmode using the <filename>/etc/fstab</filename> file +as well. See the Cygwin User's Guide at +<ulink url="http://cygwin.com/cygwin-ug-net/using.html#mount-table">http://cygwin.com/cygwin-ug-net/using.html#mount-table</ulink> +for more details. </para> </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> <answer> -<para>First, consider using rxvt instead of the standard console window. In -rxvt, selecting with the left-mouse also copies, and middle-mouse -pastes. It couldn't be easier! +<para>First, consider using rxvt or mintty instead of the standard console +window. In rxvt/mintty, selecting with the left-mouse also copies, +and middle-mouse pastes. It couldn't be easier! </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 be ON. Save the properties. </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 the following line to your .inputrc file: <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> <answer> -<para>During development, we have both Linux boxes running Samba and Windows -machines. We often build with cross-compilers under Linux and copy +<para>During development, we have Linux boxes running Samba and NFS as well +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 -directly off the Samba-mounted partition. On dual-boot NT/Windows 9x -machines, we usually use the FAT filesystem so we can also access the -files under Windows 9x. +directly off the Samba-mounted partition. Or, we use the Microsoft NFS +client and just use NFS shares on Linux from Windows. And then there are +tools like <literal>scp</literal>, <literal>ftp</literal>, +<literal>rsync</literal>, ... </para> </answer></qandaentry> <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> <para>Several Unix programs expect to be able to use to filenames spelled the same way, but with different case. A prime example -of this is perl's configuration script, which wants <literal>Makefile</literal> and -<literal>makefile</literal>. WIN32 can't tell the difference between files with -just different case, so the configuration fails. -</para> -<para>To help with this problem, starting in <literal>cygwin-1.5.0</literal> it is -possible to have a case sensitive Cygwin managed mount. This is an -experimental feature and should be used with caution. You should only -use it for directories that are initially unpopulated and are due to -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: +of this is perl's configuration script, which wants +<literal>Makefile</literal> and <literal>makefile</literal>. Windows can't +tell the difference between files with just different case, so the +configuration fails. +</para> +<para>To help with this problem, Cygwin supports casesensitivity +starting with Cygwin 1.7.0. For a detailed description how to use that +feature see the Cygwin User's Guilde at +<ulink url="http://cygwin.com/cygwin-ug-net/using-specialnames.html">http://cygwin.com/cygwin-ug-net/using-specialnames.html</ulink>. </para> -<screen> -mkdir /managed-dir -mount -o managed c:/cygwin/managed-dir /managed-dir -cd /managed-dir/ -touch makefile -touch Makefile -</screen> </answer></qandaentry> @@ -749,14 +682,20 @@ touch Makefile <question><para>What about DOS special filenames?</para></question> <answer> -<para>Files cannot be named com1, lpt1, or aux (to name a few); either as -the root filename or as the extension part. If you do, you'll have +<para>In Windows, files cannot be named com1, lpt1, or aux (to name a few); +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 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> is there, but an operation on a file with the magic letters 'aux' in it will hang. </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> <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. </para> <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> </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> <answer> -<para>Yes! Use rxvt instead. It's an optional package in Cygwin Setup. -You can use it with or without X11. You can resize it easily by -dragging an edge or corner. Copy and paste is easy with the left and -middle mouse buttons, respectively. It will honor settings in your -~/.Xdefaults file, even without X. For details see -<literal>/usr/share/doc/Cygwin/rxvt-<ver>.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>Yes! Use rxvt or mintty instead. Both are optional packages in +Cygwin Setup. You can use rxvt with or without X11, while mintty is a +Cygwin application providing a native GUI. </para> </answer></qandaentry> @@ -998,15 +889,9 @@ file: <para>Note that the 0775 can be anything as long as the 0010 bit is set. </para> -</answer></qandaentry> - -<qandaentry id="faq.using.df-incorrect"> -<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>Alternatively, use Windows shortcuts as symlinks. See the CYGWIN +environment variable option "winsymlinks" +<ulink url="http://cygwin.com/cygwin-ug-net/using-cygwinenv.html">http://cygwin.com/cygwin-ug-net/using-cygwinenv.html</ulink> </para> </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, 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 -means they do not understand Cygwin mounts or symbolic links. +They are built as native libraries, which means they do not understand +Cygwin mounts or symbolic links. </para> <para>See the entry "How do I convert between Windows and UNIX paths?" elsewhere in this FAQ. |