cygwin mise à jour de cause “Erreur: impossible de fourche processus enfant: Ressource temporairement non disponible.”
J'ai mis à jour mon cygwin à l'aide de la setup-x86_64.exe outil (version 2.873) sur Windows 7.
J'ai besoin d'installer quelques paquets supplémentaires (principalement zip/unzip etc).
Depuis, j'obtiens les erreurs suivantes lorsque j'essaie d'exécuter le Terminal Cygwin (le raccourci points à C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -):
Error: could not fork child process: Resource temporarily unavailable.
DLL rebasing may be required. See 'rebaseall /rebase --help'.
J'ai cherché en ligne comment faire pour exécuter le rebaseall commande ils les conseillent dans le message. Essentiellement, la recommandation est de commencer cygwin/bin/dash.exe et de lancer:
bin/rebaseall
Je l'ai fait à quelques reprises, j'ai aussi utilisé l'option-v de commentaires, et pas d'erreurs revenir. Encore je ne peux pas commencer à cygwin.
J'ai aussi essayé de lancer cygwin-x/XWin-serveur rien ne se passe.
J'ai regardé les journaux d'installation dans cygwin/var/log/setup.log
je ne vois pas d'erreur.
J'ai essayé d'exécuter le programme d'installation un peu plus de temps à la réinstallation de certains des paquets que j'ai déjà eu, cela n'a pas aidé non plus.
Des idées comment puis-je obtenir que cela fonctionne?
Vous devez vous connecter pour publier un commentaire.
Un de mes collègues a les mêmes erreurs lors de la openening le terminal de SourceTree (Mingw32), et a également eu des erreurs lors de la tentative de
pull
,rebase
, etc (ce qui n'est pas local). Il a résolu en désinstallant Sourcetree, à l'aide de CCleaner pour nettoyer ses registres (pas sûr si cela était nécessaire), redémarré et installé Sourcetree de nouveau.Je sais que c'est légèrement différent du problème décrit par l'OP, mais il pourrait encore être résolues par l'onu/ré-installation et nettoyage des registres, et cela pourrait aussi aider le futur, les personnes à trouver cette question avec le Sourcetree problème (comme je l'ai fait).
Edit:
Un autre collègue a eu le problème, et il a réussi à le résoudre simplement avec un redémarrage sans aucun onu/ré-installation ou l'utilisation de CCleaner.
De https://chromium.googlesource.com/chromium/src/+/master/docs/cygwin_dll_remapping_failure.md
La manipulation des échecs répétés de rebaseall pour permettre cygwin reconfigure
Parfois Dll sur laquelle cygwin n'a aucun contrôle répertoriées dans cygwin
les processus à des endroits que cygwin a choisi pour ses bibliothèques.
Cela a été vu principalement avec des anti-virus, Dll. Lorsque cela se produit,
cygwin doivent être informés, au cours de la rebase pour éviter la zone de
la mémoire où cette DLL est mappé.
Fond
Une toile de fond pour ce qui est disponible sur
http://www.dont-panic.cc/capi/2007/10/29/git-svn-fails-with-fatal-error-unable-to-remap/
En raison de unix fourche sémantique (sans doute), cygwin les bibliothèques doivent être
mappé dans le même emplacement à la fois le parent et l'enfant d'une fourchette. Tous
cygwin bibliothèques ont des conseils en eux l'endroit où ils devraient être mappé
dans un processus de l'espace d'adresse; si ces conseils sont suivis, chaque
la bibliothèque sera mappé dans le même endroit dans les deux espaces d'adressage.
Cependant, Windows est parfaitement heureux de cartographie d'une DLL n'importe où dans le
adresse de l'espace; l'indicateur n'est pas considéré comme un contrôle. La reconfiguration
erreur se produit lorsqu'un cygwin processus commence et l'un de ses bibliothèques
ne peut pas être mappé à l'emplacement spécifié par son indice.
/usr/bin/rebaseall changements de la DLL de conseils pour tous les cygwin
les bibliothèques de sorte qu'il n'y a pas d'inter-bibliothèque des conflits; il ne ce
en choisissant un contigus, mais pas de chevauchement de la bibliothèque mise en page de départ
à une adresse de base et de travail vers le bas. Ce processus permet de s'assurer qu'il ya des
pas intra-cygwin conflits, mais ne peut pas faire face à des conflits avec
externe Dll qui sont dans cygwin processus d'espaces d'adressage
(par exemple, anti-virus, Dll).
Pour gérer ce cas, vous avez besoin de comprendre quelle est la problématique
non cygwin bibliothèque de l'est, où il est dans l'espace d'adressage, et ne le
rebase sorte qu'il n'cygwin conseils carte les bibliothèques de l'emplacement.
Détails
sysinternals
Dll dans le processus qui ne ressemble pas à de la Dll cygwin (comme un AV). Note
l'emplacement de ces bibliothèques (il y a généralement le seul).
ash /usr/bin/rebaseall -b <base address>
(Cette commande peut également prendre un-v
drapeau si vous voulez voir la DLL mise en page.)Qui devrait résoudre le problème.
Échoué rebaseall
Si vous choisissez une adresse de base qui est trop faible, vous pouvez vous retrouver avec une fracture de la cygwin
installer. Vous pouvez le réinstaller en cours d'exécution de cygwin setup.exe encore une fois, et sur le
paquet de sélection de la page, en cliquant sur le "Tous" entrée de la Réinstaller. Vous pourriez avoir à
le faire deux fois, comme vous pouvez obtenir des erreurs sur la première réinstaller passer.
J'ai été souffrant de problèmes similaires beaucoup récemment. J'ai été incapable de déterminer la cause, si c'est en raison d'une récente Windows7 patch ou une mise à jour dans la dernière cygwin. Je suis dans un contrôle étroit environnement d'entreprise avec seulement limité de droits élevés, beaucoup de la lutte contre les logiciels malveillants et les disques cryptés. Je suis en utilisant 32 bits Cygwin à l'heure actuelle.
Questions pour moi a commencé après que j'ai installé Git Git-Svn paquets Perl nécessaires et la mise à niveau de divers autres Cygwin paquetages.
Changement d'année de base à l'aide de git rebase-déclencheur ou rebaseall ne résout pas le problème pour moi. Ne ré-installation et configuration à plusieurs reprises des erreurs dans la post-installation pahse lorsque vous essayez de faire cela lui-même.
Mon premier succès a été par la dégradation de Perl à la version précédente, c'est à dire. en bas à 5.22.1.2 de 5.22.2.1. Après quelques semaines, le retour d'erreur, peut-être après un obligatoire mise à jour de windows et redémarrez l'ordinateur.
Mon dernier succès a été atteint en ignorant le tableau de bord/rebaseall script et en cours d'exécution rebase.exe directement comme suit:-
$ cd /bin
$ ls -1 *.dll | egrep -v '(cygwin1|cyglsa).*\.dll' >rebasedlls.txt
cygpath -wa /bin
).C:\apps\cygwin\bin> rebase.exe --info cygwin1.dll
/usr/bin/cygwin1.dll base 0x61000000 size 0x00500000
C:\apps\cygwin\bin> rebase -b 0x62000000 -4 -n -v -t -T rebasedlls.txt
Donc bon, mon Cygwin est de retour à un état nouveau.
setup.exe
sans installation/mise à jour. Il semble que par défaut effectuer rebase. Pour déclencher plein rebase appelrebase-trigger full
avantsetup.exe
.rebaseall
). Maintien de l'ordinateur du développeur sans AntiVirus peut être une solution.Voici le correctif.
personnaliser" -> "Choisissez exact chemin d'accès au fichier"
Également ajouter ces autres fichiers binaires à partir du même dossier: expr.exe, uname.exe, grep.exe, rm.exe
Bonne chance,
Gabriel
Il y a un rebase utilitaire qui déclenche le rebase après la phase d'installation.
De tableau de bord ou bash:
fermez tous les processus et de courir à nouveau setup-x86_64.exe.
de le désinstaller,
et installer le logiciel 32-bit.
J'ai redémarré 3 fois, et puis il était beau. wtf Windows 7
Exactement le même message d'erreur a plusieurs causes, pas toutes liées à la setup-x86_64.exe, bien que je l'ai vu dans ce contexte. Mais si rebaseall n'a pas de résoudre votre problème, voici une suggestion qui pourrait fonctionner.
Dans le cas que j'ai vu ce matin, il s'est avéré avoir été causé par la présence d'un couple de processus qui a continué à fonctionner après je suis sorti de la mintty un émulateur de terminal. Mon intuition est que ces zombie processus d'éviter que la console soit recyclé. Dans mon cas, les deux processus ont été déterminées expérimentalement, par l'examen d'une liste de processus en cours d'exécution pour les errants des processus qui ne sont plus nécessaires. J'ai trouvé les deux processus qui me bloquaient par la révision de la liste des tâches en cours d'exécution.
J'ai vu sur certains autres stackoverflow questions que git est souvent le zombie processus que les causes de ce symptôme (pour certains utilisateurs). Malheureusement, tout résidu de processus qui survit après votre session de la console est fermée, cela peut provoquer ce problème, de sorte que vous avez à l'expérience.