Обновление от 13 июля 2010 г.
Весьма вероятно, что эта проблема вызвана установкой E Text Editor в Windows 7. Чтобы обеспечить совместимость с TextMate в Windows, E автоматическиустанавливает Cygwin.Во время установки запускается скрипт bash, который пытается изменить разрешения на C :.Вот строка:
chmod o-w `cygpath $HOMEDRIVE`
Очевидно, что когда Cygwin устанавливает разрешения, он вносит беспорядок в разрешения Windows ACL.Чтобы защитить целостность корневого диска системы, Windows UAC выполняет функцию, известную как виртуализация или перенаправление данных. Подробнее здесь .В нашем случае вместо того, чтобы испортить разрешения для реального корневого каталога, виртуализация активирует и повреждает разрешения для каталога VirtualStore (% localappdata% \ VirtualStore) вместо этого, делая его корневой недоступным (хотя любые каталоги внутри остаются нетронутыми и доступными).Когда Ruby устанавливает gems, он пытается получить доступ к корневому каталогу C: \, который запрещен UAC, поэтому он пытается получить доступ к% localappdata% \ VirtualStore, который он не может получить, если у вас есть поврежденные разрешения, поэтому вы получаете ошибку.
Это можно исправить, удалив неверные разрешения из VirtualStore (вам нужно будет показать защищенные системные файлы в Explorer, чтобы увидеть VirtualStore).Правильные разрешения должны наследоваться от родительской папки и должны иметь следующий вид:
SYSTEM (full control)
*your users* (full control)
Administrators (full control)
Ниже приведен список, сравнивающий сломанные разрешения с правильными разрешениями:
http://gist.github.com/471087
Автор E знает об этой проблеме и работает над ее исправлением.
Кажется, что это странная ошибка разрешений, которая, по-видимому, возникает только в Windows 7. Попробуйте открыть командную строку с повышенными правами и выполнить установку оттуда.,Вот что я получаю при повышении:
[C:\Users\charlesr]gem install activeldap
Successfully installed activeldap-1.2.2
1 gem installed
Installing ri documentation for activeldap-1.2.2...
Installing RDoc documentation for activeldap-1.2.2...
Если я запускаю из стандартной командной строки, я получаю это:
[C:\Users\charlesr]gem install activeldap
ERROR: While executing gem ... (Errno::EEXIST)
File exists - C:
Я обновлю этот ответ, если найдется лучшее решение длясвет.Никогда не требовалось повышать уровень при установке гемов в Windows, поэтому поведение, которое мы здесь видим, является неправильным.
Здесь обсуждается эта проблема: http://groups.google.com/group/rubyinstaller/browse_thread/thread/df7b7c217ad7d882