Hello All
In this tutorial I will show how to install Odoo 8 and Odoo 9, the setup mechanism is almost the same, I will let you know when there is something that is required by Odoo 9 but its almost the same for both versions of Odoo.
I will be writing this tutorial on Ubuntu 14.04 but you can also apply it to Ubuntu 12.04, I chose these versions for their stability and alot others but you can try it on any Flavor of Ubuntu (and Linux).
1. Set up System and Pre-requisite packages for Odoo
Lets First Update our repository and update all the packages by issuing the following commands
P.S.
Before we get started, you can just download a ready-made VM of Odoo 8 and Odoo 9 I created based on the Process below in case you want to save your self some time and the trouble.
The username of VM is odoo and its password is admin
btw I will be deleting Odoo 8 soon, because I dont have that much space on my google drive to keep all this stuff.
To do it Manually Follow the Process Below…
sudo apt-get update
sudo apt-get upgrade
Now Lets install all the Pre-Requisites
sudo apt-get install git openssh-server graphviz ghostscript \
python-dateutil python-feedparser python-matplotlib \
python-ldap python-libxslt1 python-lxml python-mako \
python-openid python-psycopg2 python-pybabel python-pychart \
python-pydot python-pyparsing python-reportlab python-simplejson \
python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-imaging \
gcc python-dev mc bzr python-setuptools python-babel \
python-feedparser python-reportlab-accel python-zsi python-openssl \
python-egenix-mxdatetime python-jinja2 python-unittest2 python-mock \
python-docutils lptools make python-psutil python-paramiko poppler-utils \
python-pdftools python-scipy python-decorator python-requests python-pyPdf \
antiword postgresql postgresql-client postgresql-server-dev-9.3
Some more packages for Odoo 9
sudo apt-get install build-essential libldap2-dev libsasl2-dev npm nodejs libxml2-dev libxslt1-dev libjpeg-dev python-pip gdebi
NodeJS and other stuff to Run Odoo website
sudo npm install -g less less-plugin-clean-css -y && sudo ln -s /usr/bin/nodejs /usr/bin/node
wkhtmltopdf to print odoo 8 and odoo 9 reports
cd /tmp && wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb && sudo gdebi -n wkhtmltox-0.12.2.1_linux-trusty-amd64.deb && rm wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin/ && sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin/
For Ubuntu 14.04 users, Install the Package “python-passlib” as ivan albizu just commented that its lack causes “error 500 Internal Server” Error. To Install this package simply type.
sudo apt-get install python-passlib
2. Setup Eclipse
- If you haven’t Already, Click here to Download Eclipse. I recommend the Eclipse Luna version. Once Eclipse is Downloaded and Extracted. Launch it.
- Now we need to install pydev. To do so Click Help -> Install New Software
- From the “Install” Dialog box, Click Add
- In “Add Repository” dialog box, Type “pydev” in the “Name:” field and “http://pydev.org/updates” in “Location:” field and Click OK.
- In Next Windows, uncheck “Show only the latest version of the available software“, You will get a list of available versions of pydev to select from, Select 2.7.5 version and click Next. If you dont fine pydev 2.7.5 check the note below.
- NOTE:
While I was trying to install pydev for odoo 9, I couldn’t find pydev 2.7.5, It only showed the 4.4 version. To work around this problem, Download pydev from this link. Extract the zip archive, The Repeat the steps of installing pydev by going to HELP -> Install New Software -> Click “Add” and this time instead of adding, pydev url, click the Local Button as show in the image below and navigate to the directory where you extracted pydev and click ok.
- Next uncheck “Groups Items by category” and you will see the 2.7.5 version of pydev check it and carry on with the Rest of Installation.
- Click Next again and In Next Windows from accept the license Agreement and and Click Finish and the Installation Process will begin.
- Somewhere during installation you will be asked whether you trust the certificates of Aptana Pydev, Click “Select All” and Click OK to to exit the dialog box.
- Once pydev installation is Done. We need to setup the GIT repository in order to download Odoo Source code. To do so, Click Windows -> Open Perspective -> Other
- A Window will Open ask you to select a perspective. Click Git
- In Next Windows Select “Clone a Git Repository“
- Here type “https://github.com/odoo/odoo.git“. The Rest of the Fields will get auto-fill, If not Do it according to the image below. Click Next
- You will be presented which Branches you want to clone, You can see all of the versions of Odoo. Deselect All and and Select 8.0 or 9.0 or which ever you will to.
- In next windows Select the Directory where you want to clone the Source and Click Finish. The Cloning Process will begin. This Process may Take a while depending on the speed of you Internet.
- Once the Cloning is Done. We need to import the source in to Eclipse. To do So, First we need to Setup eclipse’s Perspective to work with Python. To do so click Window -> Open Perspective -> Other and from the Window Select Pydev and Click OK.
- Next we Need to setup the Interpreter for python. To do so, Click Windows -> Preference and In the Left Pane, Select Pydev and the Interpreter Python and then Click Auto-Config on the Right side, The System will automatically detect Your python version and setup paths and rest of environment variables. Click OK to Close this Windows once eclipse is done setting up Environment.
- Now to import the source code into eclipse Click File -> Pydev Project. In project name type odoo (or which ever name you like). uncheck Use Default and click Browse and select the source directory as shown below and click Finish.
- And you are done with Setting up Eclipse.
3. Setting up Odoo Configuration File
To create configure file for odoo type the following command
sudo nano /etc/openerp-server.conf
and then copy and paste the content below
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /home/waqar/odoo/addons
ctrl + o to save the file and ctrl + x to exit nano.
Note:
To Understand the Complete Odoo Configuration File, Watch This Video I recently Created.
Note:
Replace the Path to addons with your own addons directory. If you have followed exactly what I did, You wont be needing to change any of the above configuration.
4. Configure PostgreSQL server
Now we need create a role in PostgreSql for the user that will be Running Eclipse (and the Odoo Server in return). In Normal cases the will be the current logged-in user i.e your username with which you login.
To do so Type
sudo su postgres
psql -t template1
template1=# create user waqar with superuser password ‘postgres’;
template1=# \q
and type “exit” to exit from postgres user.
5. Running the Code
In Eclipse, Package Explorer, Right Click odoo.py and select Run As Python Run
The Server will start Running.
Now to access the Webclient. Open your favorite Browser even if its Internet Explorer and type “localhost:8069” or “your IP Address:8069” and your done, Below the screen shot of Odoo 8.
Here the Screenshot of Odoo 9
Thats it. Do let me know If I am missing anything or I can add anything to it.
New Updates:
I have created a video on How to create Odoo 13 developer Environment in Ubuntu 18.04.
Check it out by clicking the following Link.
Thank you very much for the explanation. It is well understood.
The only question is on the last screen:
I add a database name and password, but I have a error 500 Internal Server.
I din’t know that failure
Thank you very much in advance!
I honestly never got this Error, I think you might have a previous version of OpenERP installed. You can try to solve it by clearing your Cookies and deleting user’s sessions. You will find them in your home Dir under the folder
.local/share/Odoo/sessions
delete the content of session folder by using command
rm -rf .local/share/Odoo/sessions/*
Let me know if this works.
Thank you very much for the reply.
Yesterday I got it working. In the beginning of the article you mention it was for Ubuntu 12.04, and I’m doing with 14.04. The problem came from there. To fix it I added: sudo apt-get install python-passlib.
Now I have Odoo running!
Thanks, great post!
Glad to know its working, I will your add your Fix so that someone reading in near future might not have to go through the same problem 🙂
Reblogged this on maquetador and commented:
Gran artículo para instalar Odoo 8 en local y usar Eclipse para el desarrollo.
I really don’t understand why people doing it this way. What’s the point do it manually instead of add one line of code into the /etc/apt/sources-list
deb http://nightly.odoo.com/8.0/nightly/deb/ ./
then apt-get update and apt-get install odoo.
Whole process is fully automatic and I’ve never had any problems with.
Once system is up and running if you require anything else then just add it.
The Point is this Process is for developers, Not for the End users.
First I want to thank you for this tutu it is so helpfull , but I am having this error don t know why
Exception in thread openerp.service.httpd:
Traceback (most recent call last):
File “/usr/lib/python2.7/threading.py”, line 810, in __bootstrap_inner
self.run()
File “/usr/lib/python2.7/threading.py”, line 763, in run
self.__target(*self.__args, **self.__kwargs)
File “/home/lamia/git/odoo/openerp/service/server.py”, line 282, in http_thread
self.httpd = ThreadedWSGIServerReloadable(self.interface, self.port, app)
File “/home/lamia/git/odoo/openerp/service/server.py”, line 92, in __init__
handler=RequestHandler)
File “/usr/lib/python2.7/dist-packages/werkzeug/serving.py”, line 410, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File “/usr/lib/python2.7/SocketServer.py”, line 419, in __init__
self.server_bind()
File “/home/lamia/git/odoo/openerp/service/server.py”, line 102, in server_bind
super(ThreadedWSGIServerReloadable, self).server_bind()
File “/usr/lib/python2.7/BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.7/SocketServer.py”, line 430, in server_bind
self.socket.bind(self.server_address)
File “/usr/lib/python2.7/socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 98] Address already in use
Read the very last line of the Error “error: [Errno 98] Address already in use” means the port on which you are trying to connect is already in use, means another instance of odoo is using this port. To solve this problem, kill the other instance. to do this type the following command
ps aux | grep odoo
this will return the all the running processes by the name of odoo, copy the pid of running and kill that process by using the following command
sudo kill -9 PID
Alternativly if you have previuosly odoo install and its up and running, you can stop it by issueing the following command
sudo service odoo stop
thanks for your response, actually this is my first installation of odoo in ubuntu 14.04 that is odd to have this exception although I can access to odoo via the web browser. I tried the commands above but it gave me another error :Internal server error.
Hi
First of all, thank you for this tutorial, it was helpful for me.
Just when I come to the postgreSQL Configuration, I can’t run the command :: create user waqar with superuser password ‘postgres’;.
And that’s why I have this error when I try to run odoo Server:
File “/home/ghandi/workspace/odoo/addons/bus/bus.py”, line 114, in loop
with openerp.sql_db.db_connect(‘postgres’).cursor() as cr:
File “/home/ghandi/workspace/odoo/openerp/sql_db.py”, line 571, in cursor
return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
File “/home/ghandi/workspace/odoo/openerp/sql_db.py”, line 181, in __init__
self._cnx = pool.borrow(dsn)
File “/home/ghandi/workspace/odoo/openerp/sql_db.py”, line 460, in _locked
return fun(self, *args, **kwargs)
File “/home/ghandi/workspace/odoo/openerp/sql_db.py”, line 522, in borrow
result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
File “/usr/lib/python2.7/dist-packages/psycopg2/__init__.py”, line 179, in connect
connection_factory=connection_factory, async=async)
OperationalError: FATAL: role “ghandi” does not exist
Thank you very much
Sorry for replying so late, I just saw this comment, Weird How come I havent before For your Error, You can read the Last Line “OperationalError: FATAL: role “ghandi” does not exist” It means you have not created the Role, You think you have but haven’t, This occurs due to Copying and pasting the commands directly from page and then running it, try to type the database part manually.
A colleague of mine was also have the same problem. And he was also just copy pasting :p by typing it manually, He did it.
Thank you for your reply. Indeed what you said is correct.
I managed this by using:
# sudo su – postgres
# createuser –createdb –username postgres –no-createrole –no-superuser –pwprompt ghandi
It’s work for me, thx bro, but I want to install both odoo v8 and odoo master (v9) in the same server, but it’s not work. Although I have created different database and user for odoo master. Help pls.
Thanx for commenting, Well…I havent done anything like so far, So I dont know what to say, you can ask this question from odoo community but here are few things you can try…
First use different ports for both server, e.g. odoo 8 xml rpc server runs on port 8069 and so will odoo 9, you will get a Port in Use Error if you want to use both, So change the port number of one of the servers.
Next I think the database structure might conflict, but you already said that you are using different databases. I had the same issue when I was using Openerp 5 and odoo 8 together, I was in hurry so I moved one to a VM, but I never tried it again. You can and then you can post here on how you did it 🙂
Yes, I have used different port for xmlrpc_port ,
xmlrpcs_port and netrpc_port 8070.
Hehehe, yup, VM is my choice to solve this.
Thx u for your respon.
Rgds
¿password VM?
odoo
its “admin” without quotes, all small letters
Thank You very much for great job. I couldn’t mount VBoxGuestAdditions.iso for change the monitor settings. How to change it? Thank You in advance.
i fixed problem. thank you for your work)))
Glad to know that 🙂 you can post the solution here so that many other benefit from it. JIC you can put the VM in bridge mode and then ssh -X into it and access everything, the File Manager, Eclipse etc on your host PC. I usually prefer this way as I dont have to switch back and forth.
Hi Waqarafridi
I can run odoo8 without any problems
But when i try to run odoo9 I get this error: CRITICAL ? openerp.modules.module: Couldn’t load module web.
Thats because its trying to read the path from odoo8 wich is: /home/hermanhy/git/odoo/openerp/addons but my odoo9 its saved here: /home/hermanhy/git/odoo9/openerp/addons
in the openerp-server.conf its changed
Thank You
You tried to run both on a single System, which you can’t (as far as I know), You have to run one version of Odoo on a single system, If you want to run both, you can use virtual Machines, I have already provided the links for the VMs that I created.
Next you have changed that paths of Addons in /etc/openerp-server.conf but I think the problem is with the database as its still of OLD Odoo 8.
Thank You
I’m not trying to run them at the same time, I want to run them separately on the same system but I see that there is a problem with the paths. I don’t know where to change.
Here is a screen shot.
Eclipse error
http://postimg.org/image/f6l4jwy2n/
Paths of local saved odoos
http://postimg.org/image/701f4a63p/
Databases
http://postimg.org/image/pd5x5bict/
Thank you waqarafridi
You Misread my previous comment, You should NOT run two versions of ODOO on the Same System, Either Running or even STOP odoo, they shouldn’t be on the same system, as a Solution, either use Virtual Machines or TRY (I haven’t done it my self yet, but theoretically it should work) make another user in the database for the version 9, I mean REPEAT the the whole database part for odoo with different database user, and when running odoo 9 pass the argument -c /path/to/odoo9/addons.
Hope this will work, if it does, let me know also.
Hello , I would like to know why the Pydev must be version 2.7.5 ? Why not the latest version ?
Well as far as I know, you cant run something written in python 2.7 in 3.x or latest, the code will break but you give it a try and let me know if it works, I will update it on my blog.
pydev version is not related to python version. the latest version works fine
That’s good to know, have you tested it your self?
how to create modules in windows odoo 9?
I am thinking of writing a detail tutorial but for the time being you can take this course https://www.udemy.com/mastering-odoo-9-development-technical-fundamentals/
Loved it … worked great… But struggling how to setup run configuration parameters.. i.e. ./odoo.py –update [module]
–update? are you trying to update some module?
The article is awesome! Thank you very much.
Thanks for you kind comments 🙂
Thanks this is wonderful and helpful tutorial.