`require':没有要加载的文件 - mkmf(LoadError)

本文详细记录了在Ubuntu Natty Narwhal 11.04上使用Ruby 1.9.1安装Rails过程中遇到的错误及解决方法,包括安装必要依赖、使用RVM管理和安装build-essential等步骤。

本文翻译自:`require': no such file to load — mkmf (LoadError)

I was trying to install rails on Ubuntu Natty Narwhal 11.04, using ruby1.9.1. 我试图使用ruby1.9.1在Ubuntu Natty Narwhal 11.04上安装rails。

I installed ruby using apt-get install ruby1.9.1-full which contains the dev package. 我使用apt-get install ruby1.9.1-full安装了ruby,其中包含dev包。 I googled the error and all have suggested I install the 1.9.1-dev which I already have. 我用Google搜索了错误,所有人都建议我安装我已经拥有的1.9.1-dev。

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

#1楼

参考:https://stackoom.com/question/W53G/require-没有要加载的文件-mkmf-LoadError


#2楼

You can use RVM(Ruby version manager) which helps in managing all versions of ruby on your machine , which is very helpful for you development (when migrating to unstable release to stable release ) 您可以使用RVM(Ruby版本管理器)来帮助您管理计算机上所有版本的ruby,这对您的开发非常有用(迁移到不稳定版本到稳定版本时)

or for Linux (ubuntu) go for sudo apt-get install ruby1.8-dev 或者对于Linux(ubuntu)去sudo apt-get install ruby1.8-dev

then sudo gem install rails to verify it do rails -v it will show version on rails 然后sudo gem install rails来验证它做rails -v它会在rails上显示版本

after that you can install bundles (required gems for development) 之后你可以安装bundle(开发所需的宝石)


#3楼

This is the answer that worked for me. 这个答案对我有用。 Was in the comments above, but deserves its rightful place as answer for ubuntu 12.04 ruby 1.8.7 在上面的评论中,但作为ubuntu 12.04 ruby​​ 1.8.7的答案应该得到应有的地位

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential

#4楼

我还需要build-essential安装:

sudo apt-get install build-essential

#5楼

The problem is still is recursive on Ubuntu 13/04/13.10/14.04 问题仍然是Ubuntu 13/04 / 13.10 / 14.04的递归问题

and

sudo apt-get install ruby1.9.1-dev

worked out for me okay. 为我做好了没关系。 So If you are using Ubuntu 13.04/13.10/14.04 then using this will really come in handy. 所以,如果您使用的是Ubuntu 13.04 / 13.10 / 14.04,那么使用它将会派上用场。

This works even if ruby version is 1.9.3. 即使ruby版本是1.9.3,这也适用。 This is because there is no ruby1.9.3-dev available in the Repository... 这是因为存储库中没有可用的ruby1.9.3-dev ...


#6楼

I think is a little late but 我觉得有点晚了但是

sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel

worked for me on fedora. 在fedora为我工作。

http://nokogiri.org/tutorials/installing_nokogiri.html http://nokogiri.org/tutorials/installing_nokogiri.html

### Ruby LoadError: cannot load such file -- rubygems.rb 解决方法 在 Ruby 环境中,出现 `LoadError: cannot load such file -- rubygems.rb` 错误通常与 Ruby 环境配置、路径问题或用户权限有关。以下是解决此类问题的几种有效方法: #### 1. 检查 Ruby 环境路径 确保 Ruby 的安装路径和 `rubygems.rb` 文件的位置正确。可以通过以下命令查看当前 Ruby 和 Gem 的路径: ```bash which ruby gem env ``` 如果路径不正确,可能需要调整环境变量 `PATH` 或重新安装 Ruby。某些系统中,`rubygems.rb` 文件可能位于 `/usr/lib/ruby/` 或 `/usr/local/lib/ruby/` 目录下。如果该文件缺失,可能需要重新安装 RubyGems。 #### 2. 重新安装 RubyGems 如果发现 `rubygems.rb` 文件缺失,可以尝试重新安装 RubyGems。首先下载 RubyGems 的最新版本: ```bash curl -O https://rubygems.org/rubygems/rubygems-latest.zip ``` 解压并安装: ```bash unzip rubygems-latest.zip cd rubygems-* ruby setup.rb ``` 这将重新安装 RubyGems 并恢复缺失的文件,包括 `rubygems.rb` [^2]。 #### 3. 使用 RVM 或 rbenv 管理 Ruby 版本 如果系统自带的 Ruby 版本较低或配置复杂,建议使用 **RVM** 或 **rbenv** 来管理 Ruby 环境。例如,使用 RVM 安装 Ruby: ```bash \curl -sSL https://get.rvm.io | bash -s stable rvm install ruby rvm use ruby --default ``` 这样可以确保每个用户拥有独立的 Ruby 环境,并避免因权限问题导致的路径错误 [^2]。 #### 4. 检查用户权限和环境隔离 如引用中所述,某些情况下不同用户之间的 Ruby 环境可能存在隔离。例如,`root` 用户安装的 Gem 在 `redis` 用户下可能不可见。可以通过以下方式解决: - **使用相同用户安装 Ruby 和 Gem**:确保安装 Ruby、Gem 插件以及运行脚本的用户一致。 - **设置 GEM_HOME 和 GEM_PATH**:手动配置环境变量以指向全局 Gem 安装路径: ```bash export GEM_HOME=/usr/local/lib/ruby/gems export PATH=$GEM_HOME/bin:$PATH ``` #### 5. 安装缺失的依赖库 某些 Ruby 脚本依赖于额外的库,如 `colored2`。如果提示类似错误,可以尝试安装相关依赖: ```bash gem install colored2 ``` 对于 Redis 集群脚本,确保已安装 `redis` Gem: ```bash gem install redis ``` #### 6. 检查 Ruby 脚本的 `require` 路径 如果错误发生在某个特定脚本中,检查其 `require` 语句是否正确引用了 RubyGems 或其他依赖库。例如,在脚本顶部应包含: ```ruby require 'rubygems' require 'redis' ``` 如果 `rubygems` 路径不正确,可以尝试通过 `Kernel#require` 的相对路径或绝对路径方式加载 [^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值