在为 iStats 安装 ruby​​ gem 时遇到问题

在为 iStats 安装 ruby​​ gem 时遇到问题

我正在尝试通过 ruby​​ gem 安装 iStats。

首先我运行以下命令:

xcode-select --install输出为:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates. 所以没关系。

然后我跑了:

sudo gem install iStats

输出为:

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

current directory: /Library/Ruby/Gems/2.3.0/gems/iStats-1.6.1/ext/osx_stats
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20190117-44665-taivle.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.3.0/gems/iStats-1.6.1/ext/osx_stats
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.3.0/gems/iStats-1.6.1/ext/osx_stats
make "DESTDIR="
make: *** No rule to make target `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/universal-darwin16/ruby/config.h', needed by `smc.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/iStats-1.6.1 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-16/2.3.0/iStats-1.6.1/gem_make.out

我不确定这一切意味着什么,但我知道它不起作用。所以我尝试使用以下命令安装 ruby​​:

brew install ruby,它似乎发挥了作用。

然后我再次尝试该sudo gem命令,但得到的是与上面相同的输出。

这里出了什么问题?

编辑:

我刚刚读https://stackoverflow.com/a/26600110/6678549并尝试了这个:

sudo gem update --system并得到以下输出:

Updating rubygems-update
Successfully installed rubygems-update-3.0.2
Parsing documentation for rubygems-update-3.0.2
Installing darkfish documentation for rubygems-update-3.0.2
Done installing documentation for rubygems-update after 108 seconds
Parsing documentation for rubygems-update-3.0.2
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.0.2
ERROR:  While executing gem ... (Errno::EPERM)
Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

所以它几乎成功了,但我仍然没有接近安装 iStats。

编辑2:

我的 ruby​​ 版本是,ruby 2.3.7p456以防万一它相关,我使用的是 MacOS Sierra。我读了一些书,找到了有关系统完整性保护的信息。我尝试了一些其他命令,例如sudo gem install iStats -n /usr/local/bin, but still nothing works. Although after runningsudo gem update --system`,现在它显示最新版本已安装。

答案1

我已经做了!

我不确定我到底做对了什么,但我使用了这两个命令:

export LDFLAGS="-L/usr/local/opt/ruby/lib"

export CPPFLAGS="-I/usr/local/opt/ruby/include"

然后我尝试:

sudo gem install iStats

sudo gem install iStats -n /usr/local/bin

现在我已经成功安装了iStats 1.6.1。

但奇怪的是,我之前使用过这两个export命令,但它们并没有起作用。所以在此期间一定发生了一些变化,我不知道是什么。

相关内容