![](/img/trans.png)
[英]running sudo gem install fastlane -NV throws the error installing fastlane rubyzip requires ruby version >= 2.4 when
[英]Getting an error when installing 'sudo gem install mechanize'
即使我已經安裝了ruby-dev和ruby-make,但仍然給出相同的錯誤? 如何解決錯誤?
sudo gem install mechanize
Building native extensions. This could take a while...
ERROR: Error installing mechanize:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.4.0/gems/unf_ext-0.0.7.5/ext/unf_ext
/usr/bin/ruby2.4 -r ./siteconf20180417-8728-15wdd1s.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.4.0/gems/unf_ext-0.0.7.5 for inspection.
Results logged to /var/lib/gems/2.4.0/extensions/x86_64-linux/2.4.0/unf_ext-0.0.7.5/gem_make.out
您沒有Ruby的源代碼,因此,當它嘗試編譯gem時,它將失敗。 它正在尋找/usr/lib/ruby/include/ruby.h
但是該文件不在您的系統上。
通常,使用Ruby的系統版本不是一個好主意。 (出於這個原因,以及其他原因)您應該使用Ruby管理器將Ruby安裝到您的用戶個人資料中,因為這將使gem的編譯更加容易。
例如,您可以使用RVM安裝Ruby:
\curl -sSL https://get.rvm.io | bash -s stable
這將安裝rvm
的最新版本,然后可以使用該版本來安裝Ruby 2.4:
rvm install 2.4
您可以通過指定Ruby版本來安裝幾乎所有版本,例如Ruby 2.5:
rvm install 2.5
之后,運行ruby
將自動運行RVM安裝的版本。 並且由於它已安裝在您的配置文件中,因此您無需對任何操作使用sudo
。 (並且在使用rvm
安裝的rvm
或rvm
時,絕對不要使用sudo
)
在您的情況下,您將能夠成功運行gem install mechanize
因為它將使用主目錄中的Ruby安裝,其中包括源代碼和頭文件的副本。
如果由於某種原因您不能使用RVM或不想使用RVM,則需要安裝Ruby頭文件。 這些標頭的安裝方式因操作系統而異,因此我無法給您任何答案。 例如,如果您的操作系統是基於Debian的Linux版本,則可以使用以下命令安裝標頭:
sudo apt-get install ruby2.4-dev
有關更多信息,請參見關於stackoverflow的另一個答案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.