基於Ubuntu虛擬機安裝edx-platform


基於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也可以訪問
CMS:   http://localhost:9000/    
 
建議用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, 詳細安裝請參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM