La instalación se hará sobre Ubuntu Server 12.04 Precise Pangolin, esta es la última versión LTS. Como seguramente no tengamos esa versión en nuestro equipo o no queramos ensuciar nuestro sistema operativo host, vamos a optar por montar el entorno de desarrollo en un entorno virtualizado con LXC.
Instalación de herramientas de espacio de usuario:
sudo apt-get install lxc debootstrap
Crear el contenedor:
lxc-create -n edx -t ubuntu
Editar la red de la máquina virtual:
sudo vim /var/lib/lxc/edx/rootfs/etc/network/interfaces allow-hotplug eth0 iface eth0 inet static address 10.0.3.10 netmask 255.255.255.0 network 10.0.3.0 broadcast 10.0.3.255 gateway 10.0.3.1 dns-nameservers 8.8.8.8
Iniciamos la máquina virtual, el usuario y la contraseña para entrar son ubuntu/ubuntu:
sudo lxc-start -n edx
Si todo ha ido bien podemos apagar la máquina para acceder con un terminall mejor a través de SSH. Desde la máquina host:
sudo lxc-stop -n edx
La volvemos a iniciar pero en modo demonio:
sudo lxc-start -n edx -d
Por último nos falta configurar en el host el routing para que la máquina virtual pueda salir a Internet. Sustituir wlan0 por el nombre del interfaz por el que estamos conectardos a Internet. Así que ejecutamos:
sudo su - echo 1 \> /proc/sys/net/ipv4/ip\_forward iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Puesta a punto del software para desarrollar
Instalar el cliente de Git en la máquina virtual, donde trabajaremos en esta sección:
ssh ubuntu@10.0.3.10 (contraseña ubuntu) sudo apt-get install git-core
Clonamos el repositorio Git de trabajo:
git clone https://github.com/alabs/edx-platform.git ~/edx-platform
Instalar entorno:
cd ~/edx-platform ./scripts/create-dev-env.sh
Ahora creamos el entorno local para Python:
sudo apt-get install python-virtualenv virtualenvwrapper mkvirtualenv mitx workon mitx
Instalamos dependencias:
sudo apt-get install python-pip cd ~/edx\_all/edx-platform pip install -r requirements/edx/pre.txt pip install -r requirements/edx/base.txt pip install -r requirements/edx/post.txt bundle install npm install
Creamos bases de datos y migraciones:
rake django-admin[syncdb] rake django-admin[migrate] rake cms:update\_templates
Lanzamos CMS y LMS en diferentes terminales:
rake cms[dev,0.0.0.0:8001] rake lms[cms.dev,0.0.0.0:8000]
Y ahora desde el host podemos acceder desde el navegador al interfaz del alumno en:
http://10.0.3.10:8000/
Y al interfaz del profesorado en:
http://10.0.3.10:8001/