2017-08-12 96 views
1

我在安装rails时生成可执行文件时出现运行时错误。无法构建gem本机扩展(extconf失败)

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

我已签类似thread这里,但对我来说,似乎没有图书馆丢失。它说“你必须首先安装开发工具”,但没有指定哪个工具。 错误日志可以看到here
我在archlinux上(4.12.4-1-ARCH)。

+0

我已经开始了一个全新的'archlinux/base' Docker镜像,我将记录所有Rails依赖关系构建的步骤。 一般来说,在这些情况下'开发工具'指的是'gcc'和'make',那么你会得到每个缺失库的消息,你可以一个一个地安装它们。 无论如何,我现在正在工作,我会写出答案。 – struthersneil

回答

1

要发现的最小集合的,你需要的工具和库,我开始与一个完全新鲜的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%兼容的)只需要安装gitawk通过吃豆子,而不是安装的xml库,例如

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

Enjoy!

+0

谢谢,我可以在不使用系统库的情况下使用git和awk进行安装。你能帮助我理解awk和git如何帮助解决这个问题吗? – krishnakant

+0

我仍然无法找到使用“rails --version”的rails。它正确安装了日志https://pastebin.com/Mdqc7YWv – krishnakant

+1

在Nokogiri构建过程中使用了awk和git。我不确定它使用的是什么 - awk可能已经用于简单的命令行文本处理,git将被用于从某处下载额外的代码。 – struthersneil

相关问题