美文网首页
本地部署 GitHub Pages 环境

本地部署 GitHub Pages 环境

作者: ytxing | 来源:发表于2018-09-25 11:30 被阅读141次

    安装 Ruby

    确保本地已经安装了 Ruby

    ruby --version
    

    需要 2.x.x 版本。

    安装 Bundler

    gem install bundler
    

    安装 Jekyll

    在 GitHub Pages 目录新建文件Gemfile,内容如下:

    source 'https://rubygems.org'
    gem 'github-pages', group: :jekyll_plugins
    

    然后执行:

    bundler install
    

    运行Jekyll

    bundle exec jekyll serve
    

    手动安装 nokogiri

    我在安装过程中,遇到安装 nokogiri 错误的提示(系统是Mac)。通过手动安装解决。

    报错信息如下:

    Installing nokogiri 1.8.4 with native extensions
    Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
    
    current directory:
    /private/var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/gems/nokogiri-1.8.4/ext/nokogiri
    /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r
    ./siteconf20180925-1251-2xjm9w.rb extconf.rb
    checking if the C compiler accepts ... yes
    checking if the C compiler accepts
    -Wno-error=unused-command-line-argument-hard-error-in-future... no
    Building nokogiri using packaged libraries.
    Using mini_portile version 2.3.0
    checking for iconv.h... yes
    checking for gzdopen() in -lz... yes
    checking for iconv... yes
    ************************************************************************
    IMPORTANT NOTICE:
    
    Building Nokogiri with a packaged version of libxml2-2.9.8
    with the following patches applied:
        - 0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
    
    Team Nokogiri will keep on doing their best to provide security
    updates in a timely manner, but if this is a concern for you and want
    to use the system library instead; abort this installation process and
    reinstall nokogiri as follows:
    
        gem install nokogiri -- --use-system-libraries
            [--with-xml2-config=/path/to/xml2-config]
            [--with-xslt-config=/path/to/xslt-config]
    
    If you are using Bundler, tell it to use the option:
    
        bundle config build.nokogiri --use-system-libraries
        bundle install
    
    Note, however, that nokogiri is not fully compatible with arbitrary
    versions of libxml2 provided by OS/package vendors.
    ************************************************************************
    Extracting libxml2-2.9.8.tar.gz into
    tmp/x86_64-apple-darwin17/ports/libxml2/2.9.8... OK
    Running git apply with
    /private/var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/gems/nokogiri-1.8.4/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch...
    OK
    Running 'configure' for libxml2 2.9.8... OK
    Running 'compile' for libxml2 2.9.8... ERROR, review
    '/private/var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/gems/nokogiri-1.8.4/ext/nokogiri/tmp/x86_64-apple-darwin17/ports/libxml2/2.9.8/compile.log'
    to see what happened. Last lines are:
    ========================================================================
      CCLD     libxml2.la
      CC       testdso.lo
      CCLD     testdso.la
      CC       xmllint.o
      CCLD     xmllint
    ld: warning: ignoring file /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib, file
    was built for x86_64 which is not the architecture being linked (i386):
    /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib
    Undefined symbols for architecture i386:
      "_lzma_auto_decoder", referenced from:
          _xz_head in libxml2.a(xzlib.o)
      "_lzma_code", referenced from:
          _xz_decomp in libxml2.a(xzlib.o)
      "_lzma_end", referenced from:
          ___libxml2_xzclose in libxml2.a(xzlib.o)
      "_lzma_properties_decode", referenced from:
          _is_format_lzma in libxml2.a(xzlib.o)
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [xmllint] Error 1
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2
    ========================================================================
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    
    Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/$(RUBY_BASE_NAME)
        --help
        --clean
        --use-system-libraries
        --enable-static
        --disable-static
        --with-zlib-dir
        --without-zlib-dir
        --with-zlib-include
        --without-zlib-include=${zlib-dir}/include
        --with-zlib-lib
        --without-zlib-lib=${zlib-dir}/lib
        --enable-cross-build
        --disable-cross-build
    /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:402:in
    `block in execute': Failed to complete compile task (RuntimeError)
    from
    /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:373:in
    `chdir'
    from
    /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:373:in
    `execute'
    from
    /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:115:in
    `compile'
    from
    /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:154:in
    `cook'
        from extconf.rb:365:in `block (2 levels) in process_recipe'
        from extconf.rb:257:in `block in chdir_for_build'
        from extconf.rb:256:in `chdir'
        from extconf.rb:256:in `chdir_for_build'
        from extconf.rb:364:in `block in process_recipe'
        from extconf.rb:262:in `tap'
        from extconf.rb:262:in `process_recipe'
        from extconf.rb:551:in `<main>'
    
    To see why this extension failed to compile, please check the mkmf.log which can
    be found here:
    
    /var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/extensions/universal-darwin-17/2.3.0/nokogiri-1.8.4/mkmf.log
    
    extconf failed, exit code 1
    
    Gem files will remain installed in
    /var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/gems/nokogiri-1.8.4
    for inspection.
    Results logged to
    /var/folders/mj/mkwhd7897qn3ml_mc_tp0_700000gn/T/bundler20180925-1251-1q2t8mknokogiri-1.8.4/extensions/universal-darwin-17/2.3.0/nokogiri-1.8.4/gem_make.out
    
    An error occurred while installing nokogiri (1.8.4), and Bundler cannot
    continue.
    Make sure that `gem install nokogiri -v '1.8.4' --source
    'https://rubygems.org/'` succeeds before bundling.
    
    In Gemfile:
      github-pages was resolved to 192, which depends on
        jekyll-mentions was resolved to 1.4.1, which depends on
          html-pipeline was resolved to 2.8.4, which depends on
            nokogiri
    

    先安装 pkg-config

    sudo gem install pkg-config -v "~> 1.1"
    

    手动安装 nokogiri

    原始安装命令是

    gem install nokogiri -v '1.8.4' --source 'https://rubygems.org/'
    

    使用不一样的命令参数--use-system-libraries,强制使用系统库。

    sudo gem install nokogiri -- --use-system-libraries
    

    继续安装

    重新运行安装命令。

    bundler install
    

    原文参考

    https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/

    相关文章

      网友评论

          本文标题:本地部署 GitHub Pages 环境

          本文链接:https://www.haomeiwen.com/subject/mhwkoftx.html