注册 登录
编程论坛 Ruby论坛

Win7手工配置Ruby on Rails新版本环境,终于成功了

不懂才问 发布于 2019-02-28 10:44, 5992 次点击
这两天网上搜git的一些资料,无意间找到一神贴:https://,贴子不神,回复神了。

放下git,先搞搞

第一步:做准备,先下载最新的rubyinstaller,我今天下的是2.6.0-1(不带DevKit的)。再下载msys2最新版msys2-x86_64-20180531.exe。

第二步,先装msys2,之后不用立即运行,完成,放那就行。

第三步,安装rubyinstaller-2.6.0-1-x64.exe,即将完成的run 'ridk install'....选上,直接运行ridk install,按3,回车,中间的过程还是比较长的,再出来选1,2,3的时候,直接回车。完成了ruby的安装。

第四步,按神贴来说,上一步应该在命令行手动执行"ridk install",可第一次安装的,肯定会发现这个命令无法使用。因为ruby在安装过程中,对系统环境变量加了东西。所以,不懂的最好重启下,让新环境变量生效。懂的自己看着处理吧。重启这一步,很矬很无赖,不管怎样,都要让新路径生效,否则,后面“ruby setup.rb config”等等命令还是会出错。如果有强迫症的同学,应该先装ruby不ridk install,重启,再命令行ridk install。

第五步,“ridk enable->gcc -v”可以省略这步。
按神贴来说,gem install sqlite3肯定会出错,因为它会安装sqlite3 1.40,又试了一下以前别的贴子里说的
gem install sqlite3-ruby,也会出错。

关键部分来了,也是本贴自身加的东西,要使用带版本号的方法,与神贴的版本对应:
gem install sqlite3 -v 1.3.13  #很快,很顺利,但你不要高兴太早

之后,在irb中require "sqlite3"还是会出错。这时就可以按神贴说的,
先开启msys2的编译环境 ridk enable(我在刚才试着编译sqlite3 1.40时,就开启过,可后来只是重装个带版本号的1.3.13,就编译出错,没隔几步,居然又要开启一次)
ruby setup.rb config   #后面这几步,要是不正常,肯定是没正确开启ridk enable,估计是你装完ruby没重启
ruby setup.rb setup
ruby setup.rb instal

#在读https://,书上说rails安装要带版本号,我也带上
gem install rails -v 5.1.4

现在貌似可以用这个环境了,可是,一建项目,就卡在sqlite3-1.40上面,看来还是跳不过去啊。

rails new --help  各种skip是什么意思呢?一个也看不懂。

rails _5.1.4_ new blog  -d sqlite3 _1.3.13_ 也是逃不过sqlte3-1.4啊!!!

解决办法:看5楼。

[此贴子已经被作者于2019-3-1 17:24编辑过]

5 回复
#2
不懂才问2019-02-28 12:07
都删了又重来的,这回装的rubyinstaller-2.5.3-1-x64.exe,谁能解释一下,只是gem install sqlite3 -v 1.3.13,再ridk enable,然后ruby setup.rb config,还是出错,要gem install sqlite3一遍,虽然不成功,但ruby setup.rb config过了。谁能解释为什么要虚晃这一枪?
#3
不懂才问2019-02-28 16:00
找了一些资料,换一种角度,不带sqlite3玩了

换了mysql2:
gem install mysql2
rails _5.1.4_ new blog -d mysql
过了是过了,不会装新版mysql。。。
只有本站会员才能查看附件,请 登录

停这半小时了,不会要我装个虚拟机,再装2008啥的吧?放弃

换postgresql:
下了postgresql-9.4.21-1-windows-x64.exe,安装
gem install postgresql
rails _5.1.4_ new blog -d postgresql
rails _5.1.4_ server
程序代码:
         5: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundle
r/runtime.rb:76:in `each'
         4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundle
r/runtime.rb:81:in `block (2 levels) in require'
         3: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundle
r/runtime.rb:81:in `require'
         2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/pg-0.19.0-x64-mingw32/li
b/pg.rb:3:in `<top (required)>'
         1: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/pg-0.19.0-x64-mingw32/li
b/pg.rb:14:in `rescue in <top (required)>'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/pg-0.19.0-x64-mingw32/lib/pg.rb:14:in `re
quire': cannot load such file -- 2.5/pg_ext (LoadError)


最后再试试sql server,win7下安装的sqlserver2008,也不知道会咋样了
gem install activerecord-sqlserver-adapter
看到介绍,我又想明哥了
activerecord-sqlserver-adapter 5.1.6                              2,043,717
ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.          下载

我只是对着苍天喊了一句:给足我一万个放弃ruby的理由,我就放弃!
结果没到一秒钟......
#4
不懂才问2019-02-28 17:06
装了一下sqlserver2012,

gem install activerecord-sqlserver-adapter
gem install tiny_tds

程序代码:
D:\studyRuby\rails\blog>rails _5.1.4_ server
=> Booting Puma
=> Rails 5.1.6.1 application starting in development
=> Run `rails server -h` for more startup options
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.3-p105), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
Started GET "/" for 127.0.0.1 at 2019-02-28 17:03:35 +0800
Processing by Rails::WelcomeController#index as HTML
  Rendering C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.6.1/lib/rails/te
mplates/rails/welcome/index.html.erb
  Rendered C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.6.1/lib/rails/tem
plates/rails/welcome/index.html.erb (12.0ms)
Completed 200 OK in 211ms (Views: 119.5ms)


最终,一个开源的编程语言和一个开源的框架,完美的支持了闭源的数据库。

我又是一脸的懵逼啊!
#5
不懂才问2019-03-01 17:22
今天换了一种版本,试试2.3.3,gem install sqlite3-ruby
还是不行,找到一个帖子,解决办法如下:
在比如D盘建个sqlite3
里面放的文件去sqlite3官网下载几个包,拼凑成的。
程序代码:
D:\sqlite3>dir /a/s
 驱动器 D 中的卷是 500gD
 卷的序列号是 0008-6801

 D:\sqlite3 的目录

2019/03/01  16:36    <DIR>          .
2019/03/01  16:36    <DIR>          ..
2019/03/01  16:28    <DIR>          include
2019/03/01  16:33    <DIR>          liby
2019/02/26  00:33           492,544 sqldiff.exe
2019/02/26  00:34           919,552 sqlite3.exe
2019/02/26  00:33         2,006,016 sqlite3_analyzer.exe
               3 个文件      3,418,112 字节

 D:\sqlite3\include 的目录

2019/03/01  16:28    <DIR>          .
2019/03/01  16:28    <DIR>          ..
2019/02/26  00:32           557,708 sqlite3.h
2019/02/26  00:32            33,713 sqlite3ext.h
               2 个文件        591,421 字节

 D:\sqlite3\liby 的目录

2019/03/01  16:33    <DIR>          .
2019/03/01  16:33    <DIR>          ..
2019/02/26  00:32           520,309 shell.c
2019/02/26  00:32         7,823,412 sqlite3.c
2019/02/26  08:42             5,962 sqlite3.def
2019/02/26  08:43         1,881,600 sqlite3.dll
               4 个文件     10,231,283 字节

     所列文件总数:
               9 个文件     14,240,816 字节
               8 个目录 31,876,907,008 可用字节

然后:
gem install sqlite3 -v 1.3.13 --platform=ruby -- --with-sqlite3-include=D:/sqlite3/include --with-sqlite3-lib=D:/sqlite3/liby --with-sqlite3-dir=D:/sqlite3

然后:rails new的时候,加个参数
rails new blog --skip-bundle
cd blog
notepad Gemfile

在gem ' sqlite3'那一句后面加上半句,如下图蓝底选中的文字
只有本站会员才能查看附件,请 登录

然后再bundle install

就通过了,rails new部分的方法,也适用于一楼。

至此,问题解决!原来就在书上,我说在哪看到过解决办法,就是想不起来。。。。。。。。。。岁数大了,唉!~
#6
不懂才问2019-03-01 19:22
对于在x64的Win7等系统上,使用railsinstaller套件的人来说,楼上的解决办法是,把sqlite3官网下载32位的.def和.dll文件复制到如楼上所述目录中,
2019/02/26  00:32           520,309 shell.c
2019/02/26  00:32         7,823,412 sqlite3.c
2019/02/26  00:34             5,537 sqlite3.def
2019/02/26  00:34           916,735 sqlite3.dll

然后:
gem install sqlite3 -v 1.3.13 --platform=ruby -- --with-sqlite3-include=D:/sqlite3x86/include --with-sqlite3-lib=D:/sqlite3x86/liby --with-sqlite3-dir=D:/sqlite3x86
1