我正在尝试安装packetgen,这是一个用于制作和处理网络数据包的库。我按照所有说明进行操作,并安装了所有必需的库。但是,当我运行sudo gem install packetgen
时
在我的Linux机器上安装它会引发错误:
ERROR: Error installing packetgen:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/pcaprub-0.12.4/ext/pcaprub_c
/usr/bin/ruby2.3 -r ./siteconf20181009-29130-us1azm.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.3.0/gems/pcaprub-0.12.4 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0 /pcaprub-0.12.4/gem_make.out [here][1]
我以sudo身份运行了命令,但遇到了相同的错误。有人知道我在做什么错吗?安装说明的链接为here.
答案 0 :(得分:1)
请勿使用sudo gem install
,但强烈建议您使用ruby版本管理器(可能是RVM),原因更多,请参见'sudo gem install' or 'gem install' and gem locations
根据您的错误,您似乎正在尝试使用系统红宝石,这可能会导致权限和/或库依赖性问题。使用版本管理器可以轻松解决这些问题,该版本管理器具有很多优点,包括可以在同一系统上使用不同的ruby版本,而不必使用sudo
或gem的root级安装。
您可以安装RVM from here
您发布的gem链接说明确实gem取决于sudo apt install libpcap-dev
,这是您gem需要构建的系统库。我认为您已经正确执行了该步骤?