Cannot install thin on windows

后端 未结 6 832
遇见更好的自我
遇见更好的自我 2020-12-02 16:33

I cannot install thin gem on windows. Something happen during build of native extensions.

Do anybody face same issues?

Here is the stack trace:



        
相关标签:
6条回答
  • 2020-12-02 16:59

    This might help:

    $ gem install specific_install
    $ gem specific_install -l http://github.com/eventmachine/eventmachine.git
    
    0 讨论(0)
  • 2020-12-02 17:03

    Installing from the git or rubygems repositories no longer works (currently) under 1.9.2 or 1.9.3 (confirmed still broken on 2012-June-22). Instead, you need to simply:

    gem install eventmachine --pre
    gem install thin
    

    Note that on 2012-June-18 the current prerelease was renamed to 1.0.0.rc.1, so there is a possibility that 'soon' the version that works with Windows will become the official release and this will no longer be a problem.


    If you try to build the gem under 1.9.2 from the github repo you may see this (included for search engine hits):

    C:\eventmachine> rake build
    (in C:/eventmachine)
    cd ext
    C:/Ruby/bin/ruby.exe extconf.rb
    checking for rb_trap_immediate in ruby.h,rubysig.h... *** 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.
    

    If you try to install the gem under 1.9.3 from the rubygems repo you may see this (included for search engine hits):

    C:\>gem install eventmachine
    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    ERROR:  Error installing eventmachine:
            ERROR: Failed to build gem native extension.
    
            C:/Ruby193/bin/ruby.exe extconf.rb
    checking for rb_trap_immediate in ruby.h,rubysig.h... no
    checking for rb_thread_blocking_region()... yes
    checking for inotify_init() in sys/inotify.h... no
    checking for __NR_inotify_init in sys/syscall.h... no
    checking for writev() in sys/uio.h... no
    checking for rb_thread_check_ints()... yes
    checking for rb_time_new()... yes
    checking for windows.h... yes
    checking for winsock.h... yes
    checking for main() in -lkernel32... yes
    checking for main() in -lrpcrt4... yes
    checking for main() in -lgdi32... yes
    checking for main() in -lssl... no
    creating Makefile
    
    make
    generating rubyeventmachine-i386-mingw32.def
    compiling binder.cpp
    cc1plus.exe: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
    cc1plus.exe: warning: command line option "-Wimplicit-function-declaration" is valid for C/ObjC but not for C++
    In file included from binder.cpp:20:0:
    project.h:85:0: warning: "FD_SETSIZE" redefined
    :0:0: note: this is the location of the previous definition
    In file included from project.h:137:0,
                     from binder.cpp:20:
    binder.h:35:34: warning: type qualifiers ignored on function return type
    In file included from project.h:138:0,
                     from binder.cpp:20:
    em.h:91:47: warning: type qualifiers ignored on function return type
    em.h:92:76: warning: type qualifiers ignored on function return type
    em.h:93:56: warning: type qualifiers ignored on function return type
    em.h:95:57: warning: type qualifiers ignored on function return type
    em.h:96:60: warning: type qualifiers ignored on function return type
    em.h:97:58: warning: type qualifiers ignored on function return type
    em.h:98:55: warning: type qualifiers ignored on function return type
    em.h:99:36: warning: type qualifiers ignored on function return type
    em.h:101:47: warning: type qualifiers ignored on function return type
    em.h:106:42: warning: type qualifiers ignored on function return type
    em.h:123:45: warning: type qualifiers ignored on function return type
    em.h:132:36: warning: type qualifiers ignored on function return type
    In file included from project.h:145:0,
                     from binder.cpp:20:
    eventmachine.h:45:61: warning: type qualifiers ignored on function return type
    eventmachine.h:46:112: warning: type qualifiers ignored on function return type
    eventmachine.h:47:69: warning: type qualifiers ignored on function return type
    eventmachine.h:49:73: warning: type qualifiers ignored on function return type
    eventmachine.h:62:75: warning: type qualifiers ignored on function return type
    eventmachine.h:63:74: warning: type qualifiers ignored on function return type
    eventmachine.h:64:77: warning: type qualifiers ignored on function return type
    eventmachine.h:65:41: warning: type qualifiers ignored on function return type
    In file included from project.h:145:0,
                     from binder.cpp:20:
    eventmachine.h:99:60: warning: type qualifiers ignored on function return type
    eventmachine.h:100:58: warning: type qualifiers ignored on function return type
    eventmachine.h:102:60: warning: type qualifiers ignored on function return type
    eventmachine.h:105:41: warning: type qualifiers ignored on function return type
    compiling cmain.cpp
    cc1plus.exe: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
    cc1plus.exe: warning: command line option "-Wimplicit-function-declaration" is valid for C/ObjC but not for C++
    In file included from cmain.cpp:20:0:
    project.h:85:0: warning: "FD_SETSIZE" redefined
    :0:0: note: this is the location of the previous definition
    In file included from project.h:137:0,
                     from cmain.cpp:20:
    binder.h:35:34: warning: type qualifiers ignored on function return type
    In file included from project.h:138:0,
                     from cmain.cpp:20:
    em.h:91:47: warning: type qualifiers ignored on function return type
    em.h:92:76: warning: type qualifiers ignored on function return type
    em.h:93:56: warning: type qualifiers ignored on function return type
    em.h:95:57: warning: type qualifiers ignored on function return type
    em.h:96:60: warning: type qualifiers ignored on function return type
    em.h:97:58: warning: type qualifiers ignored on function return type
    em.h:98:55: warning: type qualifiers ignored on function return type
    em.h:99:36: warning: type qualifiers ignored on function return type
    em.h:101:47: warning: type qualifiers ignored on function return type
    em.h:106:42: warning: type qualifiers ignored on function return type
    em.h:123:45: warning: type qualifiers ignored on function return type
    em.h:132:36: warning: type qualifiers ignored on function return type
    In file included from project.h:145:0,
                     from cmain.cpp:20:
    eventmachine.h:45:61: warning: type qualifiers ignored on function return type
    eventmachine.h:46:112: warning: type qualifiers ignored on function return type
    eventmachine.h:47:69: warning: type qualifiers ignored on function return type
    eventmachine.h:49:73: warning: type qualifiers ignored on function return type
    eventmachine.h:62:75: warning: type qualifiers ignored on function return type
    eventmachine.h:63:74: warning: type qualifiers ignored on function return type
    eventmachine.h:64:77: warning: type qualifiers ignored on function return type
    eventmachine.h:65:41: warning: type qualifiers ignored on function return type
    In file included from project.h:145:0,
                     from cmain.cpp:20:
    eventmachine.h:99:60: warning: type qualifiers ignored on function return type
    eventmachine.h:100:58: warning: type qualifiers ignored on function return type
    eventmachine.h:102:60: warning: type qualifiers ignored on function return type
    eventmachine.h:105:41: warning: type qualifiers ignored on function return type
    cmain.cpp:98:71: warning: type qualifiers ignored on function return type
    cmain.cpp:109:122: warning: type qualifiers ignored on function return type
    cmain.cpp:119:79: warning: type qualifiers ignored on function return type
    cmain.cpp:129:83: warning: type qualifiers ignored on function return type
    cmain.cpp:260:85: warning: type qualifiers ignored on function return type
    cmain.cpp:270:84: warning: type qualifiers ignored on function return type
    cmain.cpp:280:88: warning: type qualifiers ignored on function return type
    cmain.cpp:290:51: warning: type qualifiers ignored on function return type
    cmain.cpp:300:70: warning: type qualifiers ignored on function return type
    cmain.cpp:320:55: warning: type qualifiers ignored on function return type
    cmain.cpp:546:70: warning: type qualifiers ignored on function return type
    cmain.cpp:669:68: warning: type qualifiers ignored on function return type
    cmain.cpp: In function 'int evma_send_file_data_to_connection(long unsigned int, const char*)':
    cmain.cpp:752:6: error: cannot convert 'stat*' to '_stati64*' for argument '2' to 'int _fstati64(int, _stati64*)'
    make: *** [cmain.o] Error 1
    
    
    Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10 for inspection.
    Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/eventmachine-0.12.10/ext/gem_make.out
    0 讨论(0)
  • 2020-12-02 17:05

    You can install Thin without needing to build it yourself by using the pre-built binaries but you need to know which ones. To get the latest pre-built win32 version do the following:

    1. Go to the RubyGems Thin page
    2. Look under the "Versions" section for a version that has "x86-mswin32" to the right of it. (As of today versions 1.2.11, 1.2.10, etc all have win32 binaries)
    3. Run the following following "gem install" command with the version of Thin included with the "-v" flag:

    gem install thin -v 1.2.11

    Here are the results from my installation:

    c:\>gem install thin -v 1.2.11
    Successfully installed thin-1.2.11-x86-mswin32
    1 gem installed
    Installing ri documentation for thin-1.2.11-x86-mswin32... 
    Updating ri class cache with 3611 classes... 
    Installing RDoc documentation for thin-1.2.11-x86-mswin32...
    
    0 讨论(0)
  • 2020-12-02 17:14

    Try the running the following

    gem install thin –ignore-dependencies
    

    If it fails retry installing rack and eventmachine and then re-running the above command.

    gem install rack
    gem install eventmachine -l
    gem install thin –ignore-dependencies
    
    0 讨论(0)
  • 2020-12-02 17:14

    This will help you...

    Add this below line to your gem file

    gem 'eventmachine', :git => 'https://github.com/eventmachine/eventmachine.git'

    then run bundle install

    0 讨论(0)
  • 2020-12-02 17:18

    First, install the DevKit from the RubyInstaller for Windows website (which it appears you have already done).

    Then install eventmachine separately from the git repository as Roger shows.

    > gem install specific_install
    Successfully installed backports-1.18.1
    Successfully installed specific_install-0.2.3
    2 gems installed
    ...
    > gem specific_install -l http://github.com/eventmachine/eventmachine.git
    git installing from http://github.com/eventmachine/eventmachine.git
    ...
    Successfully built RubyGem
    Name: eventmachine
    Version: 0.12.11
    File: eventmachine-0.12.11.gem
    Temporarily enhancing PATH to include DevKit...
    Building native extensions.  This could take a while...
    Successfully installed eventmachine-0.12.11
    1 gem installed
    ...
    successfully installed
    

    You should then be able to install thin from the gem.

    > gem install thin
    Temporarily enhancing PATH to include DevKit...
    Successfully installed thin-1.2.7-x86-mingw32
    1 gem installed 
    ...
    > thin start
    Using rack adapter
    Thin web server (v1.2.7 codename No Hup)
    Maximum connections set to 1024
    Listening on 0.0.0.0:3000, CTRL+C to stop
    
    0 讨论(0)
提交回复
热议问题