Ruby: What does Errno :: EEXIST mean when installing a gem?

I am trying to install a ruby ​​stone called activeldap, however it will not allow me to install it. I keep getting all kinds of errors, including the Errno :: EEXIST error. I have added error information below. Any ideas?

C:\Ruby\www\demo>gem install activeldap ERROR: While executing gem ... (Errno::EEXIST) File exists - C: C:\Ruby\www\demo>gem install activeldap --debug -V Exception `NameError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:164 - uninitialized constant Gem::Commands::InstallCommand Exception `NoMethodError' at C:/Ruby187/lib/ruby/1.8/rational.rb:78 - undefined method `gcd' for Rational(1, 2):Rational Exception `Gem::LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:779 - Could not find RubyGem test-unit (>= 0) Exception `Gem::LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:779 - Could not find RubyGem sources (> 0.0.1) GET http://rubygems.org/latest_specs.4.8.gz 302 Found GET http://production.s3.rubygems.org/latest_specs.4.8.gz 200 OK Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - File exists - C:/Users/ktemplar/.gem/specs/rubygems.org%80 GET http://rubygems.org/specs.4.8.gz 302 Found GET http://production.s3.rubygems.org/specs.4.8.gz 304 Not Modified Installing gem locale-2.0.5 Exception `IOError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/format.rb:50 - closed stream Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - File exists - C:/Ruby187/lib/ruby/gems/1.8 Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - File exists - C:/Ruby187/lib/ruby/gems/1.8/gems/locale-2.0.5 Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - File exists - C:/Ruby187/lib/ruby/gems/1.8/gems/locale-2.0.5/lib C:/Ruby187/lib/ruby/gems/1.8/gems/locale-2.0.5/lib/locale.rb Exception `Errno::ENOENT' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - No such file or directory - C:/Ruby187/lib/ruby/gems/1.8/gems/locale-2.0.5/lib/locale/tag Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:243 - File exists - C: Exception `Errno::EEXIST' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:219 - File exists - C: ERROR: While executing gem ... (Errno::EEXIST) File exists - C: C:/Ruby187/lib/ruby/1.8/fileutils.rb:243:in `mkdir' C:/Ruby187/lib/ruby/1.8/fileutils.rb:243:in `fu_mkdir' C:/Ruby187/lib/ruby/1.8/fileutils.rb:217:in `mkdir_p' C:/Ruby187/lib/ruby/1.8/fileutils.rb:215:in `reverse_each' C:/Ruby187/lib/ruby/1.8/fileutils.rb:215:in `mkdir_p' C:/Ruby187/lib/ruby/1.8/fileutils.rb:201:in `each' C:/Ruby187/lib/ruby/1.8/fileutils.rb:201:in `mkdir_p' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:517:in `extract_files' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:500:in `each' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:500:in `extract_files' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:196:in `install' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:277:in `install' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:247:in `each' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:247:in `install' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/commands/install_command.rb:119:in `execute' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/commands/install_command.rb:116:in `each' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/commands/install_command.rb:116:in `execute' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command.rb:270:in `invoke' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:134:in `process_args' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:104:in `run' C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run' C:/Ruby187/bin/gem:21 
+4
source share
2 answers

July 13, 2010 Patch

It is very likely that this problem was caused by installing E Text Editor on Windows 7. To ensure compatibility with TextMate on Windows, E automatically installs Cygwin. During installation, a bash script is launched that tries to change permissions to C :. Here's the line:

 chmod ow `cygpath $HOMEDRIVE` 

Obviously, when Cygwin sets permissions, it creates a mess in the Windows ACL permissions. To protect the integrity of the system root drive, Windows UAC does something known as virtualization or data redirection. More info here . In our case, instead of spoiling the rights to the real root directory, virtualization launches and violates the access rights to the VirtualStore directory (% localappdata% \ VirtualStore), making it root inaccessible (although any directories inside remain intact and accessible). When Ruby installs gems, it tries to access the root directory C: \, which UAC forbids, so it tries to access% localappdata% \ VirtualStore, which it cannot if you have damaged permissions, so you get denied.

You can fix this by deleting the wrong permissions from VirtualStore (you will need to display the protected system files in Explorer to see VirtualStore). The correct permissions must be inherited from the parent folder and should be:

 SYSTEM (full control) *your users* (full control) Administrators (full control) 

Here is an example of matching broken permissions with the correct permissions:

http://gist.github.com/471087

Author E is aware of this issue and is working on a fix.


This seems like a strange permission error, which apparently only happens on Windows 7. Try opening an elevated command prompt and installing it there. Here is what I get when picking up:

 [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... 

If I run the standard command line, I get the following:

 [C:\Users\charlesr]gem install activeldap ERROR: While executing gem ... (Errno::EEXIST) File exists - C: 

I will update this answer if a better solution appears. It was never necessary to increase when installing gems in Windows, and therefore the behavior that we see here is incorrect.

The following issues are discussed here: http://groups.google.com/group/rubyinstaller/browse_thread/thread/df7b7c217ad7d882

+12
source

This is a file system error when calling mkdir. The author of this gem wrote his file path code in such a way that it breaks into win32 using backslashes instead of slashes, which leads to the termination of the mkdir call. It looks like your gem is not supported on win32.

+1
source

Source: https://habr.com/ru/post/1315094/


All Articles