使用Nix在本地构建GitHub页面

时间:2017-11-12 13:21:38

标签: ruby github-pages zlib nix nixos

我在NixOS上,我想在本地构建一些GitHub页面。

GitHub seems to indicate我应该创建一个select l.surname, l.Name, l.result_reported_date, l.drug1, l.drug2, l.drug3,l-drug4 from Labresults l inner join ( Select surname, name, max (result_reported_date) max_date from labresults group by surname,name ) t on t.max_date = l.result_reported_date and t.surname = l.surname and t.name = l.name 包含:

Gemfile

Nixpkgs manual section on Ruby之后,我做了:

gem "github-pages", group: :jekyll_plugins

导致Nokogiri的构建失败:

$ cat > Gemfile
source 'https://rubygems.org'
gem "github-pages", group: :jekyll_plugins
$ $(nix-build '<nixpkgs>' -A bundix --no-out-link)/bin/bundix --magic

构建失败如下:

An error occurred while installing nokogiri (1.8.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.8.1'` succeeds before bundling.

我已经确认问题在于通过运行来构建Nokogiri:

zlib is missing; necessary for building libxml2

在各种环境中(gem install nokogiri -v '1.8.1' nix-shell -p zlibnix-shell -p zlibStaticnix-shell -p zlib libxml2等。

从谷歌上搜索,似乎Nokogiri是一个非常普遍的依赖(例如Rails依赖它),所以我猜大多数人都克服了我遇到的困难。 我错过了什么?

1 个答案:

答案 0 :(得分:1)

短路径

如果您真正需要的是构建一个github页面,您只需要输入一个包含nix-shell -p jekylljekyll build的shell,因为现在jekyll被打包为一个应用程序

当您希望在同一个Gemfile中使用jekyll和其他宝石时,

长路径

您可以在此处找到详细说明:Building a Jekyll Environment with NixOS(即使NixOS没有特定的内容)

我认为这是--magic标志的问题(或者我没有得到它的真实用法)并且它没有使用某些宝石在nixpkgs中的特殊配置

所以为了避免这个标志你可以(post above中的完整说明):

  1. 像你一样创建一个裸Gemfile,没有&#39;组&#39;指令
  2. 在包含调用bundler lock的shell中,以获取Gemfile.lock
  3. 在没有参数的情况下调用bundix以获取gemset.nix
  4. 创建一个在buildInputs bundlerEnv中的推导,如手册中所述。

    博客default.nix的加分点,因为它在您输入nix-shell

    时启动了jekyll本地服务器