基于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. python——第二天

    类和实例: 创建实例是通过类名+()实现 但是!可以自由地给每个实例变量绑定新的属性(特指以前在类定义中没有的属性) __init__方法用来给类定义必要的几个属性,第一个参数永远是self type ...

  2. jquery获取url参数

    js/jquery 获取url参数 2010年04月27日 星期二 13:45 js代码: function GetQueryString(name) { var reg = new RegExp(& ...

  3. Angular系列------AngularJS入门教程:导言和准备(转载)

    学习AngularJS的一个好方法是逐步完成本教程,它将引导您构建一个完整的AngularJS web应用程序. 该web应用是一个Android设备清单的目录列表,您可以筛选列表以便查看您感兴趣的设 ...

  4. Gradle学习系列之二——创建Task的多种方法

    在本系列的上篇文章中,我们讲到了Gradle入门,在本篇文章中我们将讲到创建Task的多种方法. 请通过以下方式下载本系列文章的Github示例代码: git clone https://github ...

  5. czxt

    实验三 进程调度模拟程序 1.    目的和要求 1.1.           实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 1.2.           实验要 ...

  6. GitHub Extension for Visual Studio 2.0 is now available

    GitHub Extension for Visual Studio 2.0 is now available We're pleased to announce that version 2.0 o ...

  7. C#设计模式——抽象工厂模式(Abstract Factory Pattern)

    一.概述在软件开发中,常常会需要创建一系列相互依赖的对象,同时,由于需求的变化,往往存在较多系列对象的创建工作.如果采用常规的创建方法(new),会造成客户程序和对象创建工作的紧耦合.对此,抽象工厂模 ...

  8. iis7.5错误 配置错误

    iis7.5详细错误   HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS Web Core 通知 ...

  9. Java开发中的23种设计模式(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  10. 1 初识Orchard

    网上关于Orchard的介绍已经很多了,具体Orchard是干啥的我就不再啰嗦,这个系列的主要目的就是介绍学习和使用orchard的过程,和在此过程中碰到问题的解决方案.下面直接进入正题. 获取orc ...