Installation ODOO 8.0 sur Debian 7.3

!! Attention, depuis la rédaction de cet article, le lieu de téléchargement de wkhtmltopdf a changé !!

Les précédentes procédures d'installation décrites dans ce blog (OpenERP7, OpenERP7 Ocb, OpenERP 8) ne sont plus d'actualité depuis le renommage de OpenERP en ODOO et le passage de Launchpad à Github.

Nous allons décrire la procédure d'installation de la v8 Odoo sur une debian 7.3, à partir de Github.

Environnement technique
- serveur virtualisé Debian 7.3 (version 32 bits) sur lequel sera installé ODOO
- navigateur sur PC Linux Mint 14  à partir duquel on accédera à ODOO

Description
Se connecter sur le serveur debian avec les droits "root"

Création de l'utilisateur linux "odoo" :
adduser --system --quiet --shell=/bin/bash --home=/home/odoo --gecos 'ODOO' --group odoo

Installation de la base de données PG 9.1  (PG=PostgreSQL) :
apt-get install postgresql

Créer l'utilisateur PG "odoo"
su - postgres -c "createuser -s odoo" 2> /dev/null || true 

Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"
su - postgres
psql
\password postgres
\password odoo
q

Se repositionner avec les droits "root"

Installer les dépendances nécessaires au bon fonctionnement de ODOO :
apt-get install python-dateutil python-feedparser 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-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf python-decorator python-requests git-core python-passlib

Ajouter la
dernière version de la librairie gdata-python-client depuis
http://code.google.com/p/gdata-python-client/downloads/list:
cd /tmp
wget http://gdata-python-client.googlecode.com/files/gdata-2.0.18.tar.gz
tar zxvf gdata-2.0.18.tar.gz
cd gdata-2.0.18/
python setup.py install 

Installer les outils wkhtmltopdf et wkhtmltoimage (nom du package wkhtmltox à adapter selon version linux 32 ou 64 bits)
cd /tmp


# nouvelle version 0.12.2.1
wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
(il vous faudra peut-être ajouter : apt-get install xfonts-75dpi)

cp /usr/local/bin/wkhtmltopdf /usr/bin
cp /usr/local/bin/wkhtmltoimage /usr/bin

Si vous avez un pb d'impression du pied de page, appliquer la procédure suivante

Se connecter avec l'utilisateur linux "odoo" 
su - odoo

Récupérer la dernière version de ODOO v8 du repository Github (cela va prendre plusieurs minutes)
git clone https://www.github.com/odoo/odoo --branch 8.0

Lancer le serveur ODOO :

cd /home/odoo/odoo
./openerp-server

Lancer dans votre navigateur, l'url : <adresse ip du serveur>:8069 pour passer à l'étape suivante de création des données de la BD

Voici un moyen simple pour démarrer ODOO au boot du serveur Debian, qui consiste à ajouter
la ligne suivante dans le fichier /etc/rc.local :
su - odoo -c "/home/odoo/odoo/openerp-server --logfile=/var/log/odoo/odoo.log &"

Optionnel : rendre accessible la BD à distance (ex: pour pgadmin3)

  •    maj de la ligne suivante dans le fichier /etc/postgresql/9.1/main/postgresql.conf

listen_addresses = '*'               # what IP address(es) to listen on; 

  • maj des lignes suivantes dans le fichier /etc/postgresql/9.1/main/pg_hba.conf

#host    all             all             127.0.0.1/32            md5
host    all             all              0.0.0.0/0             md5

Relancer PostgreSQL pour prendre en compte ces modifications :
service postgresql restart 

35 réflexions au sujet de « Installation ODOO 8.0 sur Debian 7.3 »

  1. Petite précision pour compléter le guide pour ceux qui n'ont pas l'habitude de Debian

    "Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo", pour cela lancer psql sous le user linux "postgres" puis les commandes suivantes : "

    Le user linux "postgres" est un utilisateur spécial, on ne peut pas se "connecter" avec comme on le fait avec les users classiques. Pour cela il faut prendre l'identité de l'user linux "postgres" en root grâce à la commande

    su -l postgres

    maintenant on peut lancer la commande "psql" pour accéder à la console de postgressql.

    On pourrait donc rajouter une ligne au guide

    "Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"
    pour cela lancer psql sous le user linux "postgres" :

    su -l postgres

    puis les commandes suivantes :

    password postgres
    password odoo"

  2. Merci pour ce tuto qui m'a grandement aidé ! (ainsi que le commentaire ci-dessus)

    J'ajouterai également une précision sur "se repositionner avec les droits root" qui m'a bloqué (je n'y connais pas grand chose en linux…) : il faut tout d'abord quitter Postgres puis se positionner en root ("su" puis le mot de passe).

  3. Merci pour ce très bon tuto.
    Petites précisions :
    – Pour quitter Postgres, il faut taper "q"
    – les paquets wkhtmltopdf et wkhtmltoimage existent en version 64B, il suffit de remplacer i386 par amd64 dans les commandes concernées.

    Une demande pour terminer 😉
    Quelle commande peu-t-on ajouter pour lancer Odoo automatiquement lors du démarrage du serveur ?
    Merci.

    Xavier

    1. Un moyen plus simple mais moins élégant pour démarrer ODOO au boot du serveur Debian consiste à ajouter la ligne suivante dans le fichier /etc/rc.local :
      su – odoo -c "/home/odoo/odoo/openerp-server 1>/dev/null 2>&1 &"

  4. Bonjour super tuto et d'avance merci de votre aide

    Je ne suis pas très doué mais je suis parvenu à m'en sortir .
    Toute fois après redémarrage de la base de donner je me retrouve avec une : "500 internal server error" petite recherche sur G et je trouve ça: faire la mise à jours de Framewark ??
    mais pas vraiment comment ?

    sinon coté terminal j'ai ca :

    aumon@aumon-VirtualBox:~$ cd /home/odoo/odoo
    aumon@aumon-VirtualBox:/home/odoo/odoo$ ./openerp-server
    2015-02-26 10:15:31,533 2762 INFO ? openerp: OpenERP version 8.0
    2015-02-26 10:15:31,534 2762 INFO ? openerp: addons paths: ['/home/aumon/.local/share/Odoo/addons/8.0', u'/home/odoo/odoo/openerp/addons', u'/home/odoo/odoo/addons']
    2015-02-26 10:15:31,534 2762 INFO ? openerp: database hostname: localhost
    2015-02-26 10:15:31,534 2762 INFO ? openerp: database port: 5432
    2015-02-26 10:15:31,534 2762 INFO ? openerp: database user: aumon
    2015-02-26 10:15:31,698 2762 INFO ? openerp.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069
    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/odoo/odoo/openerp/service/server.py", line 282, in http_thread
    self.httpd = ThreadedWSGIServerReloadable(self.interface, self.port, app)
    File "/home/odoo/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/odoo/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] Adresse déjà utilisée

    1. re Bonjour après qq recherche j'ai trouvé ce code :
      gksudo gedit /etc/rc.local:
      qui permet l'installation d'une appli qui peut modifier le fichier /etc/rc.local pour y ajouter :
      su – odoo -c "/home/odoo/odoo/openerp-server 1>/dev/null 2>&1 &"
      et c'est ok Ca fonctionne

  5. J'ai changé la configuration d'open erp pour se connecter à un serveur de base de données postgresql différent dans Openerp-server.conf.
    open erp ne prend pas en compte ce changement et se connecte toujours au serveur postgresql local
    avez vous une idée ?
    Merci

  6. Salut Mayjo79
    J'ai repris odoo depuis quelque temps. Afin de bien comprendre le processus d'installation, j'ai fait de nombreux tests.

    Peux-tu expliquer plus en détail la ligne suivante
    sudo su – postgres -c "createuser –superuser odooadmin" 2> /dev/null || true

    Elle est à l'origine de nombreuses erreurs de ma part.

    A l'inverse, je ne vois pas l'intérêt de l'opération
    – Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"

    1. A la date de l'article, je n'avais pas connaissance de cela … mais Il est effectivement possible d'utiliser les commandes :
      odoo.py setup_deps (pour installer les dépendances)
      odoo.py setup_pg (pour installer et configurer PostgreSQL)

    2. Peux-tu expliquer plus en détail la ligne suivante
      sudo su – postgres -c "createuser –superuser odoo" 2> /dev/null || true

      Avec le compte postgres création de l'utilisateur odoo mais la suite je dois avouer que je ne comprends pas
      "2> /dev/null || true"

    3. Cela serait suffisant d'exécuter :
      su – postgres -c "createuser -s odoo"

      la suite de la commande est un reste inutile de ma procédure d'installation de la v7 :
      "2>/dev/null" indique de ne pas afficher les éventuelles erreurs
      pour "||true" … je sèche

  7. Bonjour à tous,
    Tout d'abord j'aimerai vous remercier pour ce tuto.
    J'ai commencé l'installation, malheureusement je rencontre une erreur.Quand je lance mon navigateur :8069
    La console m'affiche le message suivant

    2015-06-02 12:16:22,776 3507 ERROR ? openerp.addons.bus.bus: Bus.loop error, sleep and retry
    Traceback (most recent call last):
    File "/home/odoo/odoo/addons/bus/bus.py", line 136, in run
    self.loop()
    File "/home/odoo/odoo/addons/bus/bus.py", line 114, in loop
    with openerp.sql_db.db_connect('postgres').cursor() as cr:
    File "/home/odoo/odoo/openerp/sql_db.py", line 575, in cursor
    return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
    File "/home/odoo/odoo/openerp/sql_db.py", line 181, in __init__
    self._cnx = pool.borrow(dsn)
    File "/home/odoo/odoo/openerp/sql_db.py", line 464, in _locked
    return fun(self, *args, **kwargs)
    File "/home/odoo/odoo/openerp/sql_db.py", line 526, in borrow
    result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
    File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)
    OperationalError: FATAL: role "odoo" does not exist

    Surtout n'hésitez pas si vous pas si vous avez une idée.
    Je vous remercie d'avance.

  8. Bon joir, greetings from the end of the world (Chile), voce tem um moito bom tutorial como e fala amigo brasileiro 🙂 and for me that i'm lover of the language, read this in your words are pretty clear. Regards from un Chileno 😀

  9. Bonjour à tous,

    J'ai suivi le tuto de A à Z, merci c'est très clair.

    Seulement, des que j'essaye de créer la moindre base de donnée via le database manager, j'ai l'erreur suivant dans mon terminale.

    2015-10-19 15:47:53,000 10673 ERROR None openerp.sql_db: bad query: CREATE DATABASE "test" ENCODING 'unicode ' TEMPLATE "template1"
    Traceback (most recent call last):
    File "/home/odoo/odoo/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
    DataError: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
    HINT: Use the same encoding as in the template database, or use template0 as template.

    Une idée ?

    Merci

  10. Bonjour à tous , s'il vous plait j'ai un problème avec l'installation de Odoo. j'ai suivi la tuto ci dessus et tout c'est bien passé. j'ai installé des modules tel que le module de comptabilité.Après installation il y a un message d'erreur s'il vous plait aidez moi

    File "/home/odoo/odoo/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
    File "/home/odoo/odoo/openerp/addons/base/ir/ir_ui_view.py", line 635, in read_combined
    view_arch = etree.fromstring(view['arch'].encode('utf-8'))
    File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70691)
    File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106689)
    File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105478)
    File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:100105)
    File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94543)
    File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:96003)
    File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95050)
    XMLSyntaxError: Opening and ending tag mismatch: h4 line 645 and br, line 645, column 106

    1. Bonjour à tous , s’il vous plait j’ai un problème avec l’installation de Odoo. j’ai suivi la tuto ci dessus et tout c’est bien passé. lorsque je fait deux ou troisième modules après installation il y a un message d’erreur s’il vous plait aidez moi

      Odoo Server Error
      Traceback (most recent call last):
      File « /odoo/odoo-server/openerp/http.py », line 643, in _handle_exception
      return super(JsonRequest, self)._handle_exception(exception)
      File « /odoo/odoo-server/openerp/http.py », line 680, in dispatch
      result = self._call_function(**self.params)
      File « /odoo/odoo-server/openerp/http.py », line 316, in _call_function
      return checked_call(self.db, *args, **kwargs)
      File « /odoo/odoo-server/openerp/service/model.py », line 118, in wrapper
      return f(dbname, *args, **kwargs)
      File « /odoo/odoo-server/openerp/http.py », line 309, in checked_call
      result = self.endpoint(*a, **kw)
      File « /odoo/odoo-server/openerp/http.py », line 959, in __call__
      return self.method(*args, **kw)
      File « /odoo/odoo-server/openerp/http.py », line 509, in response_wrap
      response = f(*args, **kw)
      File « /odoo/odoo-server/addons/web/controllers/main.py », line 896, in call_button
      action = self._call_kw(model, method, args, {})
      File « /odoo/odoo-server/addons/web/controllers/main.py », line 884, in _call_kw
      return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
      File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
      return old_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/addons/base/module/module.py », line 459, in button_immediate_install
      return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
      File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
      return old_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/addons/base/module/module.py », line 533, in _button_immediate_function
      registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
      File « /odoo/odoo-server/openerp/modules/registry.py », line 385, in new
      openerp.modules.load_modules(registry._db, force_demo, status, update_module)
      File « /odoo/odoo-server/openerp/modules/loading.py », line 338, in load_modules
      loaded_modules, update_module)
      File « /odoo/odoo-server/openerp/modules/loading.py », line 237, in load_marked_modules
      loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
      File « /odoo/odoo-server/openerp/modules/loading.py », line 156, in load_module_graph
      _load_data(cr, module_name, idref, mode, kind=’data’)
      File « /odoo/odoo-server/openerp/modules/loading.py », line 98, in _load_data
      tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 851, in convert_file
      convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 938, in convert_xml_import
      obj.parse(doc.getroot(), mode=mode)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 801, in parse
      self.parse(rec, mode)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 804, in parse
      self._tags[rec.tag](self.cr, rec, de, mode=mode)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 777, in _tag_template
      return self._tag_record(cr, record, data_node)
      File « /odoo/odoo-server/openerp/tools/convert.py », line 708, in _tag_record
      id = self.pool[‘ir.model.data’]._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
      File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
      return old_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/addons/base/ir/ir_model.py », line 1122, in _update
      res_id = model_obj.create(cr, uid, values, context=context)
      File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
      return old_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/addons/base/ir/ir_ui_view.py », line 351, in create
      context=context)
      File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
      return old_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/api.py », line 354, in old_api
      result = method(recs, *args, **kwargs)
      File « /odoo/odoo-server/openerp/models.py », line 4131, in create
      record = self.browse(self._create(old_vals))
      File « /odoo/odoo-server/openerp/api.py », line 248, in wrapper
      return new_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/api.py », line 490, in new_api
      result = method(self._model, cr, uid, *args, **old_kwargs)
      File « /odoo/odoo-server/openerp/models.py », line 4322, in _create
      recs._validate_fields(vals)
      File « /odoo/odoo-server/openerp/api.py », line 248, in wrapper
      return new_api(self, *args, **kwargs)
      File « /odoo/odoo-server/openerp/models.py », line 1270, in _validate_fields
      raise ValidationError(‘\n’.join(errors))
      ParseError: « Invalid view definition

      D\xe9tails de l’erreur :
      L’\xe9l\xe9ment  » ne peut \xeatre localis\xe9 dans la vue parente

      Contexte de l’erreur :
      Vue `report.external_layout_header`
      [view_id: 176, xml_id: report.external_layout_header, model: n/a, parent_id: n/a]
      None » while parsing None:9, near

      stock.external_layout_header_barcode_right

  11. bonjour a tous j'ai un problème avec mon installation de odoo. après installation tout est bien passé, mais lorsque j'ai installé le module de comptabilité j'ai des messages d'erreur:
    view_arch = etree.fromstring(view['arch'].encode('utf-8'))
    File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70691)
    File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106689)
    File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105478)
    File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:100105)
    File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94543)
    File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:96003)
    File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95050)
    XMLSyntaxError: Opening and ending tag mismatch: h4 line 645 and br, line 645, column 106d

  12. Bonjour à tous,

    Petite question, j’ai installé odoo 8 sur ubuntu 14 et cela fonctionne. Lorsque je veux installer mon fichier .dump de mon ancien odoo 8 provenant d’un serveur en vps il me dit, « impossible d’installer la base » … j’ai aussi remplacé le dossier addons par celui du serveur et installé les appli équivalentes au cas où … Rien y fait.

    Une idée?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *