* faq-using.xml (faq.using.multiple-copies): Modernize to reflect
installation separation since Cygwin 1.7. (faq.using.third-party.multiple-copies): Ditto.
This commit is contained in:
parent
9a52d79f10
commit
f2407e2210
|
@ -1,3 +1,9 @@
|
|||
2013-06-19 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* faq-using.xml (faq.using.multiple-copies): Modernize to reflect
|
||||
installation separation since Cygwin 1.7.
|
||||
(faq.using.third-party.multiple-copies): Ditto.
|
||||
|
||||
2013-06-17 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygwinenv.xml: Fix link to FAQ.
|
||||
|
|
|
@ -395,18 +395,33 @@ set is 65001.</para>
|
|||
<qandaentry id="faq.using.multiple-copies">
|
||||
<question><para>Is it OK to have multiple copies of the DLL?</para></question>
|
||||
<answer>
|
||||
<para>You should only have one copy of the Cygwin DLL on your system. If you
|
||||
have multiple versions, they will conflict and cause problems.
|
||||
<para>Yes, as long as they are used in strictly separated installations.</para>
|
||||
<para>The Cygwin DLL has to handle various sharing situations between
|
||||
multiple processes. It has to keep a process table. It has to maintain
|
||||
a mount table which is based on the installation path of the Cygwin DLL.</para>
|
||||
<para>For that reason, the Cygwin DLL maintains shared resources based on
|
||||
a hash value created from its own installation path. Each Cygwin DLL
|
||||
on the machine constitutes a Cygwin installation, with the directory
|
||||
the Cygwin DLL resides in treated as "/bin", the parent directory as "/".
|
||||
</para>
|
||||
<para>Therefore, you can install two or more separate Cygwin distros on
|
||||
a single machine. Each of these installations use their own Cygwin DLL,
|
||||
and they don't share the default POSIX paths, nor process tables, nor
|
||||
any other shared resource used to maintain the installation.</para>
|
||||
<para>However, a clean separation requires that you don't try to run
|
||||
executables of one Cygwin installation from processes running in another
|
||||
Cygwin installation. This may or may not work, but the chances that the
|
||||
result is not what you expect are pretty high.</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 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>
|
||||
running at the same time which conflict with each other. Apart from
|
||||
mixing executables of different Cygwin installations, this could also happen
|
||||
if you have one a single Cygwin installation, for example, if you update the
|
||||
Cygwin package without exiting <emphasis>all</emphasis> Cygwin apps (including
|
||||
services like sshd) 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
|
||||
installed in a 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>.
|
||||
|
@ -422,15 +437,17 @@ cygwin-mounted filesystems (as Cygwin 'find' would do).
|
|||
<qandaentry id="faq.using.third-party.multiple-copies">
|
||||
<question><para>
|
||||
I read the above but I want to bundle Cygwin with a product, and ship it
|
||||
to customer sites. How can I do this without conflicting with any
|
||||
Cygwin installed by the user?
|
||||
to customer sites. How can I do this without conflicting with any Cygwin
|
||||
installed by the user?
|
||||
</para></question>
|
||||
<answer><para>
|
||||
Third party developers who wish to use Cygwin should check if
|
||||
there is a version of cygwin installed and use the installed
|
||||
version if it is newer, or conditionally upgrade if it is not.
|
||||
(If you write a tool to make this easy, consider contributing
|
||||
it for others to use)
|
||||
Usually, if you keep your installation separate, nothing bad should happen.
|
||||
However, for the user's convenience, and to avoid potential problems which
|
||||
still can occur, consider to integrate your product with an already existing
|
||||
Cygwin installation on the user's machine, or, if there is none, consider
|
||||
to install the official Cygwin distro on behalf of the user and integrate
|
||||
your tools from there. (If you write a tool to make this easy, consider
|
||||
contributing it for others to use)
|
||||
</para></answer></qandaentry>
|
||||
|
||||
<qandaentry id="faq.using.bundling-cygwin">
|
||||
|
|
Loading…
Reference in New Issue