À l'heure actuelle (septembre 2013), le plus gros problème avec Cygwin 64 est tout simplement qu'il n'a pas tous les paquetages portés sur elle encore. La majorité sont portés, mais la répartition peut être raté quelque chose dont vous dépendez. (Il y a un maintenu liste des paquets manquants.)
Le plus grand avantage de l'utilisation de la version 64 bits est l'accès à de plus grandes quantités de mémoire. Cela peut être une affaire énorme. Si vous utilisez la version Cygwin de R avec de grands ensembles de données, par exemple, vous devez passer à Cygwin 64 ASAP car R veut charger l'ensemble des données dans la RAM, donc l'utilisation de Cygwin 32 sur une machine 64 bits artificiellement les limites de ce que R peut accomplir sous Cygwin.
Si vous n'êtes pas à court de RAM dans le Cygwin programmes que vous exécutez, je n'aurais pas pris la peine de faire le changement, sauf si vous voulez juste jouer avec le nouveau jouet pour son propre bien.
Vous pouvez avoir les deux versions installées et fonctionnant en même temps. Vous pouvez même avoir un MinTTY fenêtre pour chaque lever à la même heure. Néanmoins, il est préférable de les traiter comme des mondes séparés, puisque les deux Cygwins sont fondamentalement incompatibles. Vous serez confronté à des problèmes si vous essayez de les faire interagir.
Cette incompatibilité fondamentale peut vous mordre dans plusieurs façons:
Même si un Cygwin 64 programme peut lancer un Cygwin 32 programme et vice-versa, plusieurs pistes de processus de mécanismes de ne pas travailler à travers les frontières: mémoire partagée POSIX, descripteur de fichier en passant, getppid(2)
...
Même certaines choses que vous ne pensez pas comme étant de la croix-processus échoue lorsque vous essayez de faire deux différents Cygwins interagir. Beaucoup de contenu de Cygwin l' /proc
vient de l'intérieur de la DLL, par exemple, de sorte qu'il sera différente entre les deux Cygwins, même si elles sont en cours d'exécution simultanément sur la même machine.
-
Disons que vous voulez partager /usr/local
entre le Cygwins de sorte que vous n'avez pas à avoir deux copies de tous les logiciels que vous avez construit à partir de la source.
Après la lecture du premier point ci-dessus, vous vous rendez compte que vous ne pouvez pas partager /usr/local/bin
.
Après réflexion, vous décidez que vous souhaitez partager des /usr/local/src
de sorte que vous au moins ne pas avoir de doublons source d'arbres. Vous allez encore avoir des problèmes si vous construisez un de ces programmes dans l'arbre source, comme il est typique. (c - ./configure && make && make install
)
Cela se produit pour deux raisons:
Généré les fichiers binaires (*.o
, *.so
, *.a
, *.exe
...) sera incompatible entre les deux Cygwins, de sorte que si vous make clean
lors de la commutation entre Cygwins, ils vont être laissé derrière, provoquant la confusion.
Même si vous vous rappelez de make clean
, la sortie de l' ./configure
sous chaque Cygwin seront probablement différents, afin de tenter de construire un programme sous Cygwin 64 qui a été configuré sous Cygwin 32 (ou vice versa) peut échouer.
Il y a plusieurs façons de sortir de ce piège:
Abandonner sur le partage de l' /usr/local/src
, trop.
N'oubliez pas de make clean && ./configure
chaque fois que vous basculez Cygwins.
-
Construire de construire de l'arbre séparément pour chaque Cygwin variante.
(Cette option est le meilleur choix disponible, mais pas tous les arbres sont mis en place pour permettre cela.)
Si vous n'avez pas une bonne raison pour le mettre en place avec des choses comme cela, installez une version ou l'autre, pas les deux. Si vous avez un fonctionnement Cygwin 32 installation et n'avez pas besoin de les avantages de Cygwin 64, rester avec elle. Cygwin 32 ne va pas disparaître de sitôt.
En même temps, si je devais monter un nouveau 64-bit de Windows, j'avais installer Cygwin 64 sur elle, sauf si je savais à l'avant il n'avait pas un paquet porté que j'avais besoin, et je n'étais pas prêt à faire le port de moi-même. Il est stable et pratiquement complète.