diff --git a/playbooks/roles/xserver/tasks/deploy.yml b/playbooks/roles/xserver/tasks/deploy.yml
index 44d7aee..89c84ee 100644
--- a/playbooks/roles/xserver/tasks/deploy.yml
+++ b/playbooks/roles/xserver/tasks/deploy.yml
@@ -9,7 +9,9 @@
   - deploy
 
 - name: install requirements
-  pip: requirements="{{ xserver_requirements_file }}" virtualenv="{{ xserver_venv_dir }}" state=present
+  pip: requirements="{{ xserver_requirements_file }}" virtualenv="{{ venv_dir }}" state=present
+  tags:
+  - deploy
 
 - name: start xserver
   service: name=xserver state=started
diff --git a/playbooks/roles/xserver/tasks/main.yml b/playbooks/roles/xserver/tasks/main.yml
index cfec414..487e3d4 100644
--- a/playbooks/roles/xserver/tasks/main.yml
+++ b/playbooks/roles/xserver/tasks/main.yml
@@ -44,6 +44,10 @@
 - name: setup upstart script
   template: src=xserver.conf.j2 dest=/etc/init/xserver.conf owner=root group=root
 
+- name: install system dependencies of xserver
+  apt: pkg={{ item }} state=present
+  with_items: xserver_debian_pkgs
+
 - include: nginx.yml
 
 - include: deploy.yml
diff --git a/playbooks/roles/xserver/vars/main.yml b/playbooks/roles/xserver/vars/main.yml
index 67e62bd..caa0d01 100644
--- a/playbooks/roles/xserver/vars/main.yml
+++ b/playbooks/roles/xserver/vars/main.yml
@@ -12,3 +12,14 @@ xserver_requirements_file: "{{ xserver_code_dir }}/requirements.txt"
 
 xserver_port: 8050
 xserver_nginx_port: 18050
+
+xserver_debian_pkgs:
+  - build-essential
+  - gcc
+  - gfortran
+  - liblapack-dev
+  - libxml++2.6-dev
+  - libxml2-dev
+  - libxml2-utils
+  - libxslt1-dev
+  - python-dev