在windows上安装ruby-ldap gem(使用ruby 2.1.6)

时间:2015-06-21 18:35:26

标签: ruby windows ldap

我在windows上安装ruby-ldap gem时遇到问题(我有ruby 2.1.6并已配置devkit来编译扩展)。当我尝试安装gem时出现以下错误,它会抛出以下错误

extconf.rb:197:in ``': Permission denied - lib /def:./win/wldap32.def /out:./win/wldap32.lib (Errno:
:EACCES)

我尝试以管理员身份安装 我尝试在win文件夹中添加wldap32.lib文件

以下是此问题的完整日志     暂时增强PATH以包括DevKit ......     构建原生扩展。这可能需要一段时间......     错误:安装ruby-ldap时出错:     错误:无法构建gem原生扩展。

C:/Ruby21/bin/ruby.exe extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of      necessary libraries and/or headers.  Check the mkmf.log file for more details.You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby21/bin/ruby
        --with-netscape
        --without-netscape
        --without-netscape
        --with-mozilla
        --without-mozilla
        --without-mozilla
        --with-openldap1
        --without-openldap1
        --without-openldap1
        --with-openldap2
        --without-openldap2
        --without-openldap2
        --with-wldap32
        --without-wldap32
        --without-wldap32
        --with-ldap-dir
        --without-ldap-dir
        --with-ldap-include
        --without-ldap-include=${ldap-dir}/include
        --with-ldap-lib
        --without-ldap-lib=${ldap-dir}/lib
        --with-ldap-dir
        --without-ldap-dir
        --without-ldap-dir
        --with-ldap
        --without-ldap
        --without-ldap
extconf.rb:197:in ``': Permission denied - lib /def:./win/wldap32.def /out:./win/wldap32.lib (Errno:
:EACCES)
        from extconf.rb:197:in `<main>'
--with-wldap32

extconf failed, exit code 1

1 个答案:

答案 0 :(得分:1)

来自README

的Windows不正式支持Windows
PORTS

  * FreeBSD ("Akinori -Aki- MUSHA" <knu@idaemons.org>)
  * Debian (Akira Yamada <akira@ruby-lang.org>)
-------------------------------------------------------------------------------

此外,还有https://github.com/bearded/ruby-ldap/wiki/How-to-compile-ruby-ldap-on-Windows但是我没有看到它与最新版本一起使用,以下是为了支持它而需要更改的一些内容。

  1. 它使用lib,devkit使用link,因此必须在extconf.rb中将其更改为link /lib,这就是为您提供权限被拒绝的错误。
  2. 存在加载time.h问题,因此time.h中的每个包含都必须更改为
  3. #if HAVE_SYS_TIME_H && !defined(_WIN32)
    #include 
    #endif
    
      extconf.rb中的
    1. 应该类似于have_header("sys/time.h") unless win32
    2. 最后但并非最不重要conn.c:183: undefined reference to ldap_initialize'most likely because something isn't installed, I'm thinking ldap.h`(读ldap二进制文件)
    3. 所以,抱歉,但我认为这是不行的。