簡體   English   中英

安裝'sudo gem install mechanize'時出現錯誤

[英]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安裝的rvmrvm時,絕對不要使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM