dalao 们说我钦点安全源 gems.ruby-china.org 的力度不够,那么涉及到 rails 有关的可以使用这个
rails new app -m https://raw.githubusercontent.com/RGSS3/rails-new/master/zh-CN/win/app.rb
这个不是 gem 换源,而是在已有 rails 情况下提供source “http://gems.ruby-china.org/”
和 devkit 的 url 的硬编码支持
关于有唯一 option 的情况是否要做成钦点而不是靠自动/手动推荐的问题,真正钦点的例子我只见过like Gecko
新装好的 Ruby 可以直接运行:
ruby -ropen-uri -e"puts open('http://codepad.org/CPe9wJuo/raw.rb', &:read)" | ruby
包括:
gem install rails
rails new app (不打断)
cd app
rails s
项目的 github: https://github.com/RGSS3/gemsource
顺便卖 https://github.com/RGSS3/doremi
顺便求深圳或远程 Ruby 岗位
看了下楼主的文件,打开一看源码,我吓尿了……
听说过“百度一下,你就上当”吗?由于很多人针对百度做垃圾站木马站排名。
楼主这段代码直接从百度取搜索结果,强行替换用户的 gem 源,不出 1 个月,就会有木马站来做排名,木马进入所有用这段代码换源的开发者电脑中,到时候再经过 Rails 项目发布,感染到更多网站。。。。
RubyGems 源的问题,早已被解决了。
#3 楼 @marksloan 楼主我读书不多,当然认可层主这一楼的方法。层主的担忧不无道理,但是也并不见得有这么大的风险。毕竟层主的描述是有具体上下文的,而我这个脚本的写作也是有具体上下文的,并且两者并不太一样。
不过既然层主是谈解决方案,这里谈一下这个脚本作为微型产品的合理性的角度,并非一定要争论什么的,而且真的出现了此类攻击,甚至可以作为 rails 或相关 gems 的安全性的一个技术研究蜜罐,见详述 :
用户群的角度 (谁会用这个脚本):
开源自动化的角度
RubyGems 源的角度(源的问题,不能算是完全解决)
被木马站针对的问题的对应以及攻击的角度
你搞这个东西还是在于你自身的问题:
所以,你还是安安心心换一种环境,不要在错误的道路上一条路走到死,还为了错误的路搞一些无用的解决方案。
#5 楼 @huacnlee 我长期在 windows 下维护,mirror list 也是另一种方式(见 repo),但我也希望发现更多的源,而且曾经连不上 ruby-china 用了备选 sdutlinux 一段时间,速度还是可以的。
我说这么多就在于表明,即便只有两条路(甚至可能只有一条),也还是可以做一个泛化的工具,因为 pragmatic way。而且是 Ruby 解决 Ruby 的问题,不是某 shell 解决 ruby 的环境问题。
为何不能换环境的问题,可能我对环境的依存不是那么大吧,而且 ruby 系列对 windows 的支持是越来越好了,至少我现在接触到的问题里面,只有 rubinius 是官方明确表明不支持 windows,而且我也尝试了一周还是移植失败了的。至于其他的问题…… 不过我的路线可能比较非主流,11 年开始玩 RPGMaker,RPGMaker 的 Ruby 不能 require 二进制插件的问题(比如 socket.so),以及无法使用 Fiddle 作为 windows 回调函数的问题,到现在也找到了 Ruby way 的解决方法。而且我现在主要的方向是 Ruby 生成,Ruby 的 runtime 和生成代码的 runtime 可以不在一个环境,所以对环境的依赖真心不大。
三四个长篇回复下来连别人在关心啥都没搞清楚,哎...
此外:
Ruby China 镜像是国内最首选考虑的镜像(你承认的),那直接介绍和使用 Ruby China 镜像就已经解决问题了,遇到访问不畅的情况,及时提交 issue。
对于环境问题,Ruby 在 Windows 环境的生态就是不好:
所以,你还是安安心心换一种环境,不要在错误的道路上一条路走到死,还为了错误的路搞一些无用的解决方案。
大家关心的安全问题
为何不直接写呢
我这个脚本并不是一定要钦点本论坛的源或者黑它的立场。你知道我为了跟进这个结果换了多少个百度关键词吗
如果想要完全钦点的你可以rails new app -m https://raw.githubusercontent.com/RGSS3/rails-new/master/zh-CN/win/app.rb
既然假设用户不知道 Ruby China 镜像,那更不会知道你的脚本,用户真不知道 Ruby China 镜像,直接告诉他 Ruby China 镜像就好了
用户不知道 RC 镜像但有可能知道我的脚本,事实上我是 QQ 群党,之前论坛上来得不多,也同样很多不来论坛的人士。这是论坛的普及问题,如果普及力度不够再怎么样也只会有种钦点的感觉。
第二,
安全是最重要的问题,任何时候都必须选择受信任的源或者镜像
用户真不知道 RC,也以跑起来为第一要务的情况,是不能光说安全的。 给你讲个真实的故事,有个人在 rails 群找源,当时还是 ruby.taobao.org 的时代,然后其他人随口说了句淘宝源。然后他去淘宝上面逛了一下午没看到卖源的,接着他就从http://rubygems.org 手动下载* .gem 然后本地安装,然后这些 gem 又有依赖 gem 吧,然后人就继续手动解决依赖关系,反正最后也就陆续装上了几个 gem,也没有解决他的主要问题。
虽然当时现场是当笑话看的,这也可能是个个例,我想说的只是,光说淘宝源或者 ruby-china 源,知道的还是知道,不知道的还是不知道。安全问题当然重要,但人家要求的是 availability 的时候强调 security 是毫无意义的。
第三
对于环境问题,Ruby 在 Windows 环境的生态就是不好:
Ruby 官方不提供 Windows 的构建版本,官方推荐的 Ruby Installer 不能及时跟进 Ruby 最新版本
https://github.com/ruby/ruby/blob/trunk/win32/configure.bat
请解释用这个成功跟进到 HEAD,而且其依赖工具链可以只用 winsdk.exe 安装的理由。
可以理解你把[*-mingw32]
当做 win 上全部 ruby 构建的理由,毕竟[*-mswin32]
的 case 是另一个折腾方向。
且 gem instaill rails 现在可以直接在 windows 装。
第四
我所谓的非主流只是自嘲而并不是什么把柄,你所谓的主流不要给人一种钦点的感觉,世界上都在打破和融合原来的界限,比如 rubyinstaller 从无到有,
rails 现在无障碍在 windows 下gem install
,而我们还在拒绝给 windows 用户技术支持,是想等彻底成熟了直接拿来别人的成果吗。
Ruby China 镜像是国内最首选考虑的镜像(你承认的),那直接介绍和使用 Ruby China 镜像就已经解决问题了,遇到访问不畅的情况,及时提交 issue。
前一句我承认,后一句我只能说我一般不提交也不建议优先 issue,一般提交 pr,这样对于当时发生问题的个例解决问题的时间进度比较有利。
On Windows machines, you can use RubyInstaller.
这是官方的推荐,并且对比 RubyInstaller 对各个 build 的发布时间,明显没有紧跟步伐,至今 2.3.3
的包还没有提供gem install
本身并没有什么问题现在#14 楼 @jasl 其实这样的回答我是认可的,而且我基本上是暗自钦点 rc 源了(见#11 我的解释)。但是作为脚本,并且我的标题是换源工具 (中立向) 而不是换 RC 源的工具 (特化向), 毕竟我和楼上的 dalao 不一样,并没有 ruby-china 的钦点的立场。
作为换 RC 源的情况可以做另一个工具或者加选项,那又是另一件事了,起码我不能用一个中立的 repo,明显做钦点的事情吧。其他的回答里面提到的 information security(vulnerability) 的问题,跟这个工具在意的 information safety(availability) 的问题还是有点不同的。