| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1527 人关注过本帖
标题:在线安装rails,gem源被墙的解决办法
只看楼主 加入收藏
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8902
专家分:2567
注 册:2004-3-25
结帖率:100%
收藏
 问题点数:0 回复次数:0 
在线安装rails,gem源被墙的解决办法
听说rails不错,想在本地安装个开发环境试试,结果gem install rails老是失败,搜索后才知道官方源被墙了,万恶的gfw阻碍人类进步
好在还可以在http://手工下载gem文件手动安装,只是各种包依赖有好几十个,一个一个手工下载再安装好辛苦,遂写以下代码自动代我苦力

程序代码:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import commands
import os
import re
import urllib
import urllib2

"""
自动下载安装最新版的rails,如果缺少相关的gem包则递归下载相应的gem包,直到安装成功为止
by BCCN.静夜思 2011.11.11
尊重他人劳动,转载请保留本段注释

使用方法:
新建一空文件夹,把本段代码保存为install_rails.py,如
mkdir newdir
cd newdir
sudo python install_rails.py
"""

def getcontent(url):
    """爬虫函数"""
    request = urllib2.Request(url)
    request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')
    try:
        content = urllib2.urlopen(request).read()
    except Exception, e:
        content = e
    return content

def install(gem):
    if not re.search("%s[\-\d\.]+gem"%gem, str(os.listdir('.')), re.I|re.S):
        html = getcontent("http://"%gem)
        downurl = re.search('<a href="([^\"]+)" id="download">Download</a>', html, re.I|re.S).groups()[0]
        downurl = "http://" + downurl
        print "download %s .................."%gem
        urllib.urlretrieve(downurl, downurl.rsplit('/',1)[1])
    gem_file = re.search("%s[\-\d\.]+gem"%gem, str(os.listdir('.')), re.I|re.S).group()
    status, result = commands.getstatusoutput("sudo gem install %s"%gem_file)
    if 'ERROR' in result and 'dependencies' in result:
        for require_gem in re.findall(' ([0-9a-zA-Z\-]+) \([=~>]', result, re.I|re.S):
            install(require_gem)
        os.system("sudo gem install %s"%gem_file)
if __name__ == "__main__":
    install("rails")

使用方法:
1、首先确保你的系统装了python(不预装python的linux也不多见),如果确实没装,则
sudo apt-get install python
2、建一个空文件夹,并进入,如
mkdir newdir
cd newdir
3、把上面的python代码保存为一个文件,如install_rails.py
4、执行
sudo python install_rails.py
    此操作可能需要十几至几十分钟
5、为安装好的rails加个链接
sudo ln -s /usr/local/ruby/bin/rails /usr/bin/rails


注:
1、此方法会安装ruby on rails最新版,如需安装旧版,需要自己调整代码
2、上面的代码只适合在debian系使用,如ubuntu。如果是redhat、fedora或者windows,根据系统的不同调整下命令即可
搜索更多相关主题的帖子: 开发 color 在线安装 手工 
2011-11-11 23:19
快速回复:在线安装rails,gem源被墙的解决办法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018273 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved