zoukankan      html  css  js  c++  java
  • 如何确认Devkit是否安装成功

    昨天在安装了Ruby 1.9.2 ,并且将其路径加入到Devkitconfig.yml中,并且使用ruby dk.rb install安装(不幸的是,没注意安装信息)。。但是依然无法构建native gem。于是重装Ruby,按照devkit的安装说明来安装。还是不正确。 Devkit的安装说明的第4步为Run Installation Scripts:

    • cd <DEVKIT_INSTALL_DIR> from Step 3 above.
    • ruby dk.rb init to generate the config.yml file to be used later in this Step. Your installed Rubies will be listed there (only those installed by a RubyInstaller package are detected at present).
    • edit the generated config.yml file to include installed Rubies not automagically discovered or remove Rubies you do not want to use the DevKit with.
    • [optional] ruby dk.rb review to review the list of Rubies to be enhanced to use the DevKit and verify the changes you made to it are correct.
    • finally, ruby dk.rb install to DevKit enhance your installed Rubies. This step installs (or updates) an operating_system.rb file into the relevant directory needed to implement a RubyGems pre_install hook and a devkit.rb helper library file into <RUBY_INSTALL_DIR>\lib\ruby\site_ruby. NOTE: you may need to use the --force option to update (with backup of the originals) the above mentioned files as discussed at the SFX DevKit upgrade FAQ entry.

    在最后一步可知,安装Devkit其实就是更新了operating_system.rb文件,同时新建了devkit.rb文件。 在我的电脑上devkit.rb已经创建好(Devkit安装在D:/Ruby187/devkit目录下,其他电脑上的路径可能与我的不同):

    1. # enable RubyInstaller DevKit usage as a vendorable helper library 
    2. unless ENV['PATH'].include?('d:\\Ruby187\\devkit\\mingw\\bin') then 
    3.   puts 'Temporarily enhancing PATH to include DevKit...' 
    4.   ENV['PATH'] = 'd:\\Ruby187\\devkit\\bin;d:\\Ruby187\\devkit\\mingw\\bin;' + ENV['PATH'
    5. end 
    # enable RubyInstaller DevKit usage as a vendorable helper library
    unless ENV['PATH'].include?('d:\\Ruby187\\devkit\\mingw\\bin') then
      puts 'Temporarily enhancing PATH to include DevKit...'
      ENV['PATH'] = 'd:\\Ruby187\\devkit\\bin;d:\\Ruby187\\devkit\\mingw\\bin;' + ENV['PATH']
    end

    在Ruby1.9.2中,有两个operating_system.rb文件,分别位于lib\ruby\site_ruby\1.9.1\rubygems\defaultslib\ruby\1.9.1\rubygems\defaults下,其内容相同:

    1. # :DK-BEG: missing DevKit/build tool convenience notice 
    2.  
    3. Gem.pre_install do |gem_installer| 
    4.   unless gem_installer.spec.extensions.empty? 
    5.     have_tools = %w{gcc make sh}.all? do |t| 
    6.       system("#{t} --version > NUL 2>&1"
    7.     end 
    8.  
    9.     unless have_tools 
    10.       raise Gem::InstallError,<<-EOT 
    11. The '#{gem_installer.spec.name}' native gem requires installed build tools. 
    12.  
    13. Please update your PATH to include build tools or download the DevKit 
    14. from 'http://rubyinstaller.org/downloads'and follow the instructions 
    15. at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit' 
    16. EOT 
    17.     end 
    18.   end 
    19. end 
    20. # :DK-END: 
    # :DK-BEG: missing DevKit/build tool convenience notice
    
    Gem.pre_install do |gem_installer|
      unless gem_installer.spec.extensions.empty?
        have_tools = %w{gcc make sh}.all? do |t|
          system("#{t} --version > NUL 2>&1")
        end
    
        unless have_tools
          raise Gem::InstallError,<<-EOT
    The '#{gem_installer.spec.name}' native gem requires installed build tools.
    
    Please update your PATH to include build tools or download the DevKit
    from 'http://rubyinstaller.org/downloads' and follow the instructions
    at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
    EOT
        end
      end
    end
    # :DK-END:

    参考了我电脑上其他版本的Ruby(1.8.7-p334和1.8.7-p330,分别都只有一个operating_system.rb),在安装好Devkit之后,该文件应该为:

    1. Gem.pre_install do |i| 
    2.   unless ENV['PATH'].include?('d:\\Ruby187\\devkit\\mingw\\bin') then 
    3.     puts 'Temporarily enhancing PATH to include DevKit...' 
    4.     ENV['PATH'] = 'd:\\Ruby187\\devkit\\bin;d:\\Ruby187\\devkit\\mingw\\bin;' + ENV['PATH'
    5.   end 
    6. end 
    Gem.pre_install do |i|
      unless ENV['PATH'].include?('d:\\Ruby187\\devkit\\mingw\\bin') then
        puts 'Temporarily enhancing PATH to include DevKit...'
        ENV['PATH'] = 'd:\\Ruby187\\devkit\\bin;d:\\Ruby187\\devkit\\mingw\\bin;' + ENV['PATH']
      end
    end

    在修改了lib\ruby\1.9.1\rubygems\defaults\operating_system.rb之后,构建native gem时,依然找不到Devkit;但修改lib\ruby\site_ruby\1.9.1\rubygems\defaults\operating_system.rb 后(不修改lib\ruby\1.9.1\rubygems\defaults\operating_system.rb),便可以成功构建。 所以,如何确认Devkit是否安装成功呢? 答:检查devkit.rboperating_system.rb 文件,其内容应该和上面的内容相同;否则,安装不成功。 可以手动更改这两个文件为上面的形式(好像也可以删除这两个文件,然后使用ruby dk.rb install命令,此时会创建 – 未验证)。在使用ruby dk.rb install时候,需要注意安装信息或警告,如果某些文件已经存在,可能会跳过。 但是,为什么在看似“正常”的安装步骤下,为什么没能安装好Devkit? 我没有找到原因;或许我的某个步骤有问题。我发现,虽然我安装的是1.9.2,但是却被安装在了lib\ruby\1.9.1目录下,官方解释说:

    This version is a “library compatible version.” Ruby 1.9.2 is almost 1.9.1 compatible, so the library is installed in the 1.9.1 directory.

  • 相关阅读:
    HTTP下载文件校验失败原因分析与解决
    读《软件测试的艺术》
    CXF wsdl2java 错误
    oracle 存储过程 多参数 多返回值
    ORACLE 函数 调用
    typescript学习入门(学习笔记)
    js常用方法总结
    jenkins安装及项目构建发布回滚
    Centos8中创建LVM精简逻辑卷
    k8s kubectl命令自动补全
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2843556.html
Copyright © 2011-2022 走看看