使用 Nix 在本地构建 GitHub 个页面
Building GitHub pages locally using Nix
我在 NixOS 上,我想在本地构建一些 GitHub 页面。
GitHub seems to indicate 我应该创建一个 Gemfile
包含:
gem "github-pages", group: :jekyll_plugins
在 Nixpkgs manual section on Ruby 之后,我做了:
$ cat > Gemfile
source 'https://rubygems.org'
gem "github-pages", group: :jekyll_plugins
$ $(nix-build '<nixpkgs>' -A bundix --no-out-link)/bin/bundix --magic
导致 Nokogiri 构建失败:
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.
构建失败如下:
zlib is missing; necessary for building libxml2
我已经确认问题出在 运行:
构建 Nokogiri 时
gem install nokogiri -v '1.8.1'
在各种环境中(nix-shell -p zlib
、nix-shell -p zlibStatic
、nix-shell -p zlib libxml2
、nix-shell -p zlib pkgconfig
等)。
从Google上搜索,似乎Nokogiri是一个很常见的依赖(例如Rails依赖它),所以我想大多数人都克服了我遇到的困难。
我错过了什么?
短路径
如果您真正需要的只是构建一个 github 页面,您只需输入 shell 和 nix-shell -p jekyll
然后 jekyll build
因为现在 jekyll 被打包为申请
长路径 当你希望在同一个 Gemfile 中包含 jekyll 和其他 gem 时使用
您可以在此处找到详细说明:Building a Jekyll Environment with NixOS(即使没有任何特定于 NixOS 的内容)
我认为这是 --magic
标志的问题(或者我没有得到它的真正用法)并且它没有使用一些 gem 在 nixpkgs 中的特殊配置。
因此,为了避免出现该标志,您可以(post above 中的完整说明):
像您一样创建一个裸 Gemfile,没有 'group' 指令
在 shell 中使用捆绑程序调用 bundler lock
以获得 Gemfile.lock
不带参数调用bundix
获得gemset.nix
创建一个在 buildInputs
中具有 bundlerEnv
的推导,如手册中所述。
博客 default.nix
的奖励积分,因为它会在您键入 nix-shell
时启动 jekyll 本地服务器
我在 NixOS 上,我想在本地构建一些 GitHub 页面。
GitHub seems to indicate 我应该创建一个 Gemfile
包含:
gem "github-pages", group: :jekyll_plugins
在 Nixpkgs manual section on Ruby 之后,我做了:
$ cat > Gemfile
source 'https://rubygems.org'
gem "github-pages", group: :jekyll_plugins
$ $(nix-build '<nixpkgs>' -A bundix --no-out-link)/bin/bundix --magic
导致 Nokogiri 构建失败:
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.
构建失败如下:
zlib is missing; necessary for building libxml2
我已经确认问题出在 运行:
构建 Nokogiri 时gem install nokogiri -v '1.8.1'
在各种环境中(nix-shell -p zlib
、nix-shell -p zlibStatic
、nix-shell -p zlib libxml2
、nix-shell -p zlib pkgconfig
等)。
从Google上搜索,似乎Nokogiri是一个很常见的依赖(例如Rails依赖它),所以我想大多数人都克服了我遇到的困难。 我错过了什么?
短路径
如果您真正需要的只是构建一个 github 页面,您只需输入 shell 和 nix-shell -p jekyll
然后 jekyll build
因为现在 jekyll 被打包为申请
长路径 当你希望在同一个 Gemfile 中包含 jekyll 和其他 gem 时使用
您可以在此处找到详细说明:Building a Jekyll Environment with NixOS(即使没有任何特定于 NixOS 的内容)
我认为这是 --magic
标志的问题(或者我没有得到它的真正用法)并且它没有使用一些 gem 在 nixpkgs 中的特殊配置。
因此,为了避免出现该标志,您可以(post above 中的完整说明):
像您一样创建一个裸 Gemfile,没有 'group' 指令
在 shell 中使用捆绑程序调用
bundler lock
以获得Gemfile.lock
不带参数调用
bundix
获得gemset.nix
创建一个在
buildInputs
中具有bundlerEnv
的推导,如手册中所述。博客
时启动 jekyll 本地服务器default.nix
的奖励积分,因为它会在您键入nix-shell