无法构建 gem 本机扩展.(扩展失败)



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

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

我在这里检查了类似的线程,但就我而言,似乎没有缺少库。它说"您必须先安装开发工具",但没有指定哪个工具。 错误日志可以在这里看到。
我在 archlinux (4.12.4-1-ARCH( 上。

为了发现您需要的最少工具和库集,我从 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的情况下安装rails(这可能是你想要的,因为Nokogiri感叹与操作系统捆绑版本的libxml2不是100%兼容(,只需安装git并通过pacmanawk而不是安装xml库,例如

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

享受!