• 微信小程序 at 2018年11月12日

    微信端要有 https 协议,需要你注册个域名,之后就是 https 网络传输了,微信端支持推送文件就可以实现

  • Ruby China 7 岁生日快乐 at 2018年10月29日

    感谢 👋 👋 👋 👋 👋

  • 收藏起来,很不错!

  • 这个因为缺少 sqlite3/sqlite_native.so导致的问题,
    我最近找到了解决办法
    在window10 安装ruby2.5.2-x64版本
    
    1. https://rubyinstaller.org/downloads/ 下载 ruby版本,我是用的是最新版本2.5.2
    首先安装ruby版本 一步步安装 最后 不要快安装完成时不要勾选 ridk install选项,因为从命令行下载太慢,单独下载安装
    2.安装编译环境
      步骤:
      去 http://www.mys2.org/ 下载  http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20161025.exe
      然后一步步安装
      安装完成后 关闭即可。
    3.打开命令行 运行 ridk install 
    

    输入数字3 剩下的不用管了,自己下载mingw源码包然后生成环境。
    tip:可以测试mingw环境 cmd->ridk enable->gcc -v
    
    4.接下来解决sqlite3/sqlite_native.so问题(github中sqlite3-ruby有编译介绍)
    
    5.第1步骤 打开命令行 输入 gem install sqlite3
      第二步骤 进入 sqlite3 gem路径
    cd C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32
     开启mingw编译环境 ridk enable
    然后 ruby setup.rb config
            ruby setup.rb setup
            ruby setup.rb  install
    
    然后就可以了
    测试  irb > require "sqlite3"   =>true
    安装 rails
    gem install rails
    
    rails new blog
    
    cd blog
    
    rails s
    
    打开浏览器 输入 localhost:3000/
    

    至此结束。

    我拷贝了ruby官方api文档 放置在 https://iwetuan.shop 目前网站空闲
    
    sqlite3 github
    https://github.com/sparklemotion/sqlite3-ruby
    
    粘贴我的过程
    
    C:\Users\haitun\Desktop\wechat\df>rails s
    Could not find rake-12.3.1 in any of the sources
    Run `bundle install` to install missing gems.
    
    C:\Users\haitun\Desktop\wechat\df>rails install
    Could not find rake-12.3.1 in any of the sources
    Run `bundle install` to install missing gems.
    
    C:\Users\haitun\Desktop\wechat\df>bundle install
    Fetching gem metadata from https://gems.ruby-china.org/..........
    Fetching rake 12.3.1
    Installing rake 12.3.1
    Using concurrent-ruby 1.0.5
    Using i18n 0.9.5
    Fetching minitest 5.11.3
    Installing minitest 5.11.3
    Using thread_safe 0.3.6
    Using tzinfo 1.2.5
    Using activesupport 5.1.5
    Using builder 3.2.3
    Using erubi 1.7.1
    Using mini_portile2 2.3.0
    Using nokogiri 1.8.2 (x64-mingw32)
    Using rails-dom-testing 2.0.3
    Using crass 1.0.3
    Using loofah 2.2.2
    Using rails-html-sanitizer 1.0.4
    Using actionview 5.1.5
    Using rack 2.0.4
    Using rack-test 0.8.3
    Using actionpack 5.1.5
    Using nio4r 2.3.0
    Using websocket-extensions 0.1.3
    Using websocket-driver 0.6.5
    Using actioncable 5.1.5
    Using globalid 0.4.1
    Using activejob 5.1.5
    Using mini_mime 1.0.0
    Using mail 2.7.0
    Using actionmailer 5.1.5
    Using activemodel 5.1.5
    Using arel 8.0.0
    Using activerecord 5.1.5
    Fetching public_suffix 3.0.2
    Installing public_suffix 3.0.2
    Fetching addressable 2.5.2
    Installing addressable 2.5.2
    Fetching bindex 0.5.0
    Installing bindex 0.5.0 with native extensions
    Using bundler 1.16.1
    Fetching byebug 10.0.1
    Installing byebug 10.0.1 with native extensions
    Fetching xpath 3.0.0
    Installing xpath 3.0.0
    Fetching capybara 2.18.0
    Installing capybara 2.18.0
    Fetching ffi 1.9.23 (x64-mingw32)
    Installing ffi 1.9.23 (x64-mingw32)
    Fetching childprocess 0.9.0
    Installing childprocess 0.9.0
    Fetching coffee-script-source 1.12.2
    Installing coffee-script-source 1.12.2
    Fetching execjs 2.7.0
    Installing execjs 2.7.0
    Fetching coffee-script 2.4.1
    Installing coffee-script 2.4.1
    Using method_source 0.9.0
    Using thor 0.20.0
    Using railties 5.1.5
    Fetching coffee-rails 4.2.2
    Installing coffee-rails 4.2.2
    Fetching multi_json 1.13.1
    Installing multi_json 1.13.1
    Fetching jbuilder 2.7.0
    Installing jbuilder 2.7.0
    Fetching puma 3.11.3
    Installing puma 3.11.3 with native extensions
    Using sprockets 3.7.1
    Using sprockets-rails 3.2.1
    Using rails 5.1.5
    Fetching rb-fsevent 0.10.3
    Installing rb-fsevent 0.10.3
    Fetching rb-inotify 0.9.10
    Installing rb-inotify 0.9.10
    Fetching rubyzip 1.2.1
    Installing rubyzip 1.2.1
    Fetching sass-listen 4.0.0
    Installing sass-listen 4.0.0
    Fetching sass 3.5.6
    Installing sass 3.5.6
    Fetching tilt 2.0.8
    Installing tilt 2.0.8
    Fetching sass-rails 5.0.7
    Installing sass-rails 5.0.7
    Fetching selenium-webdriver 3.11.0
    Installing selenium-webdriver 3.11.0
    Fetching sqlite3 1.3.13 (x64-mingw32)
    Installing sqlite3 1.3.13 (x64-mingw32)
    Fetching turbolinks-source 5.1.0
    Installing turbolinks-source 5.1.0
    Fetching turbolinks 5.1.0
    Installing turbolinks 5.1.0
    Fetching tzinfo-data 1.2018.3
    Installing tzinfo-data 1.2018.3
    Fetching uglifier 4.1.8
    Installing uglifier 4.1.8
    Fetching web-console 3.5.1
    Installing web-console 3.5.1
    Bundle complete! 13 Gemfile dependencies, 67 gems now installed.
    Use `bundle info [gemname]` to see where a bundled gem is installed.
    
    C:\Users\haitun\Desktop\wechat\df>rails s
    Traceback (most recent call last):
            22: from bin/rails:4:in `<main>'
            21: from bin/rails:4:in `require'
            20: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/commands.rb:16:in `<top (required)>'
            19: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/command.rb:44:in `invoke'
            18: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/command/base.rb:63:in `perform'
            17: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
            16: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
            15: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
            14: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/commands/server/server_command.rb:130:in `perform'
            13: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/commands/server/server_command.rb:130:in `tap'
            12: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/commands/server/server_command.rb:133:in `block in perform'
            11: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.5/lib/rails/commands/server/server_command.rb:133:in `require'
            10: from C:/Users/haitun/Desktop/wechat/df/config/application.rb:7:in `<top (required)>'
             9: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler.rb:114:in `require'
             8: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:65:in `require'
             7: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:65:in `each'
             6: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:76:in `block in require'
             5: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:76:in `each'
             4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:81:in `block (2 levels) in require'
             3: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:81:in `require'
             2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb:2:in `<top (required)>'
             1: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb:6:in `rescue in <top (required)>'
    C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
    
    C:\Users\haitun\Desktop\wechat\df>ls
    'ls' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    
    C:\Users\haitun\Desktop\wechat\df>cd C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>ruby setup.rb config
    ---> lib
    ---> lib/sqlite3
    ---> lib/sqlite3/2.0
    <--- lib/sqlite3/2.0
    ---> lib/sqlite3/2.1
    <--- lib/sqlite3/2.1
    ---> lib/sqlite3/2.2
    <--- lib/sqlite3/2.2
    ---> lib/sqlite3/2.3
    <--- lib/sqlite3/2.3
    ---> lib/sqlite3/2.4
    <--- lib/sqlite3/2.4
    <--- lib/sqlite3
    <--- lib
    ---> ext
    ---> ext/sqlite3
    C:/Ruby25-x64/bin/ruby C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3/extconf.rb
    checking for sqlite3.h... *** C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3/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=C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3
            --curdir
            --ruby=C:/Ruby25-x64/bin/$(RUBY_BASE_NAME)
            --with-sqlite3-config
            --without-sqlite3-config
            --with-pkg-config
            --without-pkg-config
            --with-sqlite3-dir
            --without-sqlite3-dir
            --with-sqlite3-include
            --without-sqlite3-include=${sqlite3-dir}/include
            --with-sqlite3-lib
            --without-sqlite3-lib=${sqlite3-dir}/lib
    Traceback (most recent call last):
            11: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3/extconf.rb:50:in `<main>'
            10: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:1149:in `find_header'
             9: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:946:in `checking_for'
             8: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:346:in `postpone'
             7: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:320:in `open'
             6: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:350:in `block in postpone'
             5: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:320:in `open'
             4: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:350:in `block (2 levels) in postpone'
             3: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:947:in `block in checking_for'
             2: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:1150:in `block in find_header'
             1: from C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:590:in `try_cpp'
    C:/Ruby25-x64/lib/ruby/2.5.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
    You have to install development tools first.
    'system C:/Ruby25-x64/bin/ruby C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3/extconf.rb ' failed
    Try 'ruby setup.rb --help' for detailed usage.
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>ridk enable
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "RI_DEVKIT=C:\msys64"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "MSYSTEM=MINGW64"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "ACLOCAL_PATH=/mingw64/share/aclocal:/usr/share/aclocal"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "MANPATH=/mingw64/share/man"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "MINGW_PACKAGE_PREFIX=mingw-w64-x86_64"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "LANG=zh_CN.UTF-8"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>set "PATH=C:\Ruby25-x64\bin;C:\msys64\mingw64\bin;C:\msys64\usr\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\CMake\bin;C:\Program Files\PuTTY\;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Go\bin;C:\Users\haitun\AppData\Local\Programs\Python\Python36;C:\Users\haitun\AppData\Local\Programs\Python\Python36\Scripts;C:\Ruby25-x64\bin;C:\Users\haitun\AppData\Local\Microsoft\WindowsApps"
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>ruby setup.rb config
    ---> lib
    ---> lib/sqlite3
    ---> lib/sqlite3/2.0
    <--- lib/sqlite3/2.0
    ---> lib/sqlite3/2.1
    <--- lib/sqlite3/2.1
    ---> lib/sqlite3/2.2
    <--- lib/sqlite3/2.2
    ---> lib/sqlite3/2.3
    <--- lib/sqlite3/2.3
    ---> lib/sqlite3/2.4
    <--- lib/sqlite3/2.4
    <--- lib/sqlite3
    <--- lib
    ---> ext
    ---> ext/sqlite3
    C:/Ruby25-x64/bin/ruby C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/ext/sqlite3/extconf.rb
    checking for sqlite3.h... yes
    checking for pthread_create() in -lpthread... yes
    checking for sqlite3_libversion_number() in -lsqlite3... yes
    checking for rb_proc_arity()... yes
    checking for rb_integer_pack()... yes
    checking for sqlite3_initialize()... yes
    checking for sqlite3_backup_init()... yes
    checking for sqlite3_column_database_name()... no
    checking for sqlite3_enable_load_extension()... yes
    checking for sqlite3_load_extension()... yes
    checking for sqlite3_open_v2()... yes
    checking for sqlite3_prepare_v2()... yes
    checking for sqlite3_int64 in sqlite3.h... yes
    checking for sqlite3_uint64 in sqlite3.h... yes
    creating Makefile
    <--- ext/sqlite3
    <--- ext
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>ruby setup.rb setup
    ---> lib
    ---> lib/sqlite3
    ---> lib/sqlite3/2.0
    <--- lib/sqlite3/2.0
    ---> lib/sqlite3/2.1
    <--- lib/sqlite3/2.1
    ---> lib/sqlite3/2.2
    <--- lib/sqlite3/2.2
    ---> lib/sqlite3/2.3
    <--- lib/sqlite3/2.3
    ---> lib/sqlite3/2.4
    <--- lib/sqlite3/2.4
    <--- lib/sqlite3
    <--- lib
    ---> ext
    ---> ext/sqlite3
    make
    generating sqlite3_native-x64-mingw32.def
    compiling backup.c
    compiling database.c
    compiling exception.c
    compiling sqlite3.c
    compiling statement.c
    linking shared-object sqlite3/sqlite3_native.so
    <--- ext/sqlite3
    <--- ext
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>ruby setup.rb install
    ---> lib
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/
    install sqlite3.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/
    ---> lib/sqlite3
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install constants.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install database.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install errors.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install pragmas.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install resultset.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install statement.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install translator.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install value.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    install version.rb C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3
    ---> lib/sqlite3/2.0
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3/2.0
    <--- lib/sqlite3/2.0
    ---> lib/sqlite3/2.1
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3/2.1
    <--- lib/sqlite3/2.1
    ---> lib/sqlite3/2.2
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3/2.2
    <--- lib/sqlite3/2.2
    ---> lib/sqlite3/2.3
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3/2.3
    <--- lib/sqlite3/2.3
    ---> lib/sqlite3/2.4
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/sqlite3/2.4
    <--- lib/sqlite3/2.4
    <--- lib/sqlite3
    <--- lib
    ---> ext
    ---> ext/sqlite3
    mkdir -p C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/x64-msvcrt/sqlite3
    install sqlite3_native.so C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/x64-msvcrt/sqlite3
    <--- ext/sqlite3
    <--- ext
    
    C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32>