基于Ubuntu虚拟机安装edx-platform
 
一. 前提准备
1. 虚拟机中安装Ubuntu12.04,然后再使用Vagrant方式搭建开发环境,请确保这个虚拟机可以使用2GB的内存,否则容易IO Error。
2. 建议用VirtualBox 4.2.12,Vagrant 可以用最新版。
 
二. 安装软件
1. 安装 VirtualBox 4.2.12 https://www.virtualbox.org/wiki/Downloads 
2. 安装 Vagrant http://www.vagrantup.com/ 
 
三. 安装edx-platform
1. 本地创建edx目录,下载Ubuntu X86虚拟机放到此目录
 
2. 命令行模式进入edx目录,执行 : vagrant init
自动生成Vagrantfile文件。用本文编辑器修改如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
 
Vagrant.configure("2") do |config|
  config.vm.box = "edx_platform_precise32"
  #注意,此处要指向虚拟机文件
  config.vm.box_url = "precise32.box"
 
  config.vm.network :forwarded_port, guest: 8000, host: 8000
  config.vm.network :forwarded_port, guest: 9000, host: 9000
 
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network :private_network, ip: "192.168.20.40"
 
  nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
 
  # Make it so that network access from the vagrant guest is able to
  # use SSH private keys that are present on the host without copying
  # them into the VM.
  config.ssh.forward_agent = true
 
  config.vm.provider :virtualbox do |vb|
    # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "2048"]
 
    # This setting makes it so that network access from inside the vagrant guest
    # is able to resolve DNS using the hosts VPN connection.
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end
 
注意:
我用LMS端口是8000, CMS端口是9000,不是默认的8000, 8001
 
3. 启动虚拟机,命令行执行 : vagrant up
 
4. 启动Putty, 登录 192.168.20.40:22
账号 : vagrant
密码:vagrant
 
5. 修改 sourcelist,否则后面的安装都从美国服务器下载,巨慢无比,哥刚开始下了一天啊,还没有下载完,还经常重新下载,坑爹啊~
#备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
sudo gedit /etc/apt/sources.list
 
6. 安装Git
sudo apt-get install git
 
7. 创建edx目录
sudo mkdir /opt/edx
cd /opt/edx
 
8. 克隆edx-platform,等吧,下载200M左右,此处可以上个洗手间。
git clone https://github.com/edx/edx-platform.git
 
9. 修改权限, 否则后边会报错说目录属性不对。
sudo chown vagrant:vagrant /opt/edx -R  
 
10. 卸载系统默认的1.6.1版本的numpy,prev.txt里面说必须要安装1.6.2版本,否则后面会rake报如下错误:
vagrant@precise32:/opt/edx/edx-platform/scripts$ rake lms
(in /opt/edx/edx-platform)
rake aborted!
./rakelib/helpers.rb:61: syntax error, unexpected tIDENTIFIER, expecting tAMPER
    pid = Process.spawn({}, *command, spawn_opts)
查看numpy版本可以用 pip freeze | grep numpy
#卸载numpy 1.6.1
sudo apt-get remove numpy
#安装numpy 1.6.2
sudo pip install --upgrade numpy==1.6.2
 
11. 编辑 requirements/base.txt , 找到“polib = 1.0.3" ,把这一行注释掉;
 
12. 编辑 scripts/create_dev_env.sh文件,找到
”pip install -r $BASE/edx-platform/requirements/edx/pre.txt“,在后面添加一行
”pip install http://bitbucket.org/izi/polib/get/1.0.3.tar.gz“
*** 原因:polib依赖项经过pypi的解析得到的下载地址是:http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz
但是在天朝,这个地址上访问不上的,然而前面的downloads是可以的,polib是必须的依赖项,所以只能是使用变相的方式将其安装上去。
错误如下:
Error timed out while getting http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz (from https://pypi.python.org/simple/polib/)
Exception:
 
 
13. 编辑 rakelib/prereqs.rake, 修改pre.txt, base.txt, post.txt 安装如下:增加sudo, 否则后面会报权限不够错误,  同时去掉无效参数。
sh('sudo pip install -r requirements/edx/pre.txt')
sh('sudo pip install -r requirements/edx/base.txt')
sh('sudo pip install -r requirements/edx/post.txt')
 
14. 开始安装,下载一堆升级包,这时候你就指导第5步的重要性,但是还要等待很长时间,此处可以吃个饭。
如果出错,重新运行create-dev-env.sh,已安装的文件不会再安装。
./scripts/create-dev-env.sh
 
15. 运气好的话可以看到Success, 接着可以编译lms 每个命令都下载一堆升级包,编译一大坨文件,此处可以喝杯咖啡。
如果出错,重新运行命令,已安装的文件不会再安装。
#注意:必须用sudo,否则会有权限错误,用cms的课程,必须用cms.dev编译
sudo rake lms[cms.dev,0.0.0.0:8000]
 
16. 继续编译 cms,接着等,此处可以上个洗手间或再来一杯咖啡,或同时来。
#使用dev环境
sudo rake cms[dev,0.0.0.0:9000]
  
17. 创建管理员账号
rake django-admin["createsuperuser"]
按照提示创建管理员账号
 
18. 最终可以访问服务了,可以自己注册账号,但是账号都没有激活而且也不会发激活邮件,要用管理员在后台去激活。
如果vagrant端口映射正确, localhost也可以访问
 
建议用Chrome, Firefox, IE10以上版本浏览器访问, IE7/8/9不兼容
LMS默认没有课程,可以在CMS里面创建,参考手册:http://files.edx.org/Getting_Started_with_Studio.pdf 
 
19. 后台管理网址,用第18步创建的管理员账号登录,随便玩吧~
 
 
四. 其他:
1. 如果要把VirtualBox虚拟机制作vagrant 包,可以用如下命令
vagrant package --output ubuntu_32.box --base vagrant-precise32
 
2. Windows 操作系统的文件夹中打开命令行:
Shift + 鼠标右键点击,在此处打开命令窗口。
 
五. 参考文档:
 
补充:
如果要安装Comment_Services, 必须要安装 Ruby 1.9.3, 详细安装请参考

基于Ubuntu虚拟机安装edx-platform的更多相关文章

  1. 基于VirtualBox虚拟机安装Ubuntu教程

    基于VirtualBox虚拟机安装Ubuntu图文教程 一. 下载安装VirtualBox 官网下载VirtualBox,目前版本:VirtualBox 6.0.4 for Windows hosts ...

  2. windows系统中ubuntu虚拟机安装及web项目到服务上(一)

    一:ununtu虚拟机安装 安装vm, 桥接,换国内源,安装ssh 服务 装jdk,装tomcat,装mysql, 部署,完成 主要用到的软件工具 Xmanager Enterprise 4,VMwa ...

  3. Ubuntu 虚拟机安装几点细节整理

    虚拟机或者Wubi安装其实都挺简单的,这里还是再次总结下,给遇到麻烦的同学一点参考. 虚拟机安装 虚拟机直接通过新建-标准-选择镜像,Vmware能够自动识别镜像并进行Easy Install安装,E ...

  4. ubuntu虚拟机安装简单pxe服务器

    安装环境: vmware2台虚拟机,一台用来做pxe服务器(安装tftp.dhcp.apache2等服务),另一台用来做安装测试. 虚拟机的网络配置:dhcp的虚拟网络为192.168.10.100/ ...

  5. Ubuntu虚拟机安装VMware Tools

    前言 在用VMware安装好Linux虚拟机后,发现在虚拟机下安装的Ubuntu16.04 64位无法进入全屏模式,同时存在物理机和虚拟机之间无法实现文件传输的问题,通过安装VMware Tools得 ...

  6. ubuntu 虚拟机安装vmware tools

    1.打开ubuntu虚拟机,点击“虚拟机”---> "安装   vmware tools" 2.进入vmware tools光盘,将VMwaretools压缩包复制粘贴到桌面 ...

  7. ubuntu虚拟机安装ssh教程

    大家好,这期给大家带来一期Ubuntu虚拟机中ssh的安装教程,话不多说,开整 第一步:输入su后输入密码进入root权限 第二步:在管理员模式下运行apt-get install openssh-s ...

  8. windows系统中ubuntu虚拟机安装及web项目到服务上(三)

    项目在ubuntu虚拟机下的部署 一:将war从本地通过Xftp 4 传到虚拟机tomcat目录下的webapps目录下 2:修改tomcat下的server.xml  <Host name=& ...

  9. VMware Ubuntu 虚拟机安装 VMwareTools (VMware虚拟机如何与主机互相复制文件)

    1.关闭虚拟机 2.CD-ROM开机连接取消对号 3.开启虚拟机 4.此时可能提示安装,点击即可 或者在VMware上方选择 :虚拟机 → 安装VMware Tools 5.虚拟机桌面会弹出相应安装包 ...

随机推荐

  1. Java序列化中的serialVersionUID有什么用?

    如果一个实现了Serializable的类没有serialVersionUID属性,IDE(比如Eclipse)通常会报这样一个warning: The serializable class Foo ...

  2. Django--BBS项目

    需求 模仿抽屉()和虎嗅()做一个网站bbs 知识点 Django知识: models表字段第一个属性可以用 2 3 from django.contrib.auth.models import Us ...

  3. 在SQL存储过程中给条件变量加上单引号

    在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) ), )), )+ ...

  4. 用stimulsoft Reports报表工具制作简单报表的过程

    这是在数据库sql server中People表的数据

  5. Java集合框架之Collection接口

    Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...

  6. 那些教程没有的php1-基础知识补漏

    php.net 字符串 heredoc结构 类似双引号,其中的变量会被解析.严格遵循下边的格式,结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符. <?php $str = < ...

  7. PHP学习笔记:对命名空间(namespace)学习资料的翻译

    Name collisions means: you create a function named db_connect, and somebody elses code that you use ...

  8. 中国快递包裹总量的预测-基于SARIMA模型

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  9. 六个创建模式之单例模式(Singleton Pattern)

    定义: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.三个特点:一个类只有一个实例:必需自己创建这个实例:必需自行向整个系统提供这个实例. 结构图: Singleton:单例类,提 ...

  10. AngularJS的指令用法

    scope的绑定策略: @ :把当前属性作为字符串传递,你还可以绑定来自外层scope的值,在属性值中插入 {{}}即可 示例代码: scopeAt.html <!doctype html> ...