无法构建gem原生扩展。(extconf失败)

时间:2017-08-12 17:58:06

标签: ruby-on-rails ruby linux

我在rails安装时生成可执行文件时遇到运行时错误。

gem install rails -- --use-system-libraries

我在这里检查了类似的thread,但在我的情况下似乎没有库丢失。它说“你必须先安装开发工具”但不指定哪个工具。 可以看到错误日志here 我在archlinux(4.12.4-1-ARCH)。

1 个答案:

答案 0 :(得分:1)

为了发现您需要的最少工具和库,我开始在Docker中使用全新的archlinux/base图像,如下所示:

docker run -it archlinux/base

...现在在容器内...

首先,我更改了默认镜像列表,因为图像中的镜像似乎不起作用。如果您的pacman工作正常,则无需执行此操作。

rm /etc/pacman.d/mirrorlist
echo "Server = http://mirrors.kernel.org/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
pacman-db-upgrade
pacman -Syyu --noconfirm

接下来,我安装了ruby和C ++工具。

pacman -S ruby gcc make --noconfirm

试图运行gem install rails -- --use-system-libraries导致了关于Nokogiri缺少图书馆的预期投诉。这取决于libxml2libxslt,所以......

pacman -S libxml2 libxslt --noconfirm

最后,您可以运行gem install rails -- --use-system-libraries,它将成功完成。

如果您想安装没有--use-system-libraries的导轨(可能是您想要的),因为Nokogiri感叹不能与操作系统捆绑的libxml2版本100%兼容)只需通过pacman安装gitawk,而不是安装xml库,例如

pacman -S ruby gcc make git awk --noconfirm
gem install rails

享受!