How to Install Odoo 13 on CentOS 8

In this article, we will show you how to install Odoo 13 on a CentOS 8 VPS.

In recent years, Odoo has grown into one of the most popular and robust business management platforms that you can find. The range of business applications that can be installed in one place makes Odoo so popular and beloved all over the world.

Among the most used modules for Odoo are Point of Sale (POS), Inventory, CRM, VoIP, Website, Live Chat, e-Commerce, manufacturing, billing, accounting, warehouse, project management, inventory, Forum, Android & iPhone Apps, eCommerce, and much more. That long list of apps directly shows just how versatile and conforming this platform really is – it really can do almost anything you need it to in order to run and manage your business. The install process is straightforward and easy, so let’s get started right away.

Odoo is known as a resource-intensive application, so our recommendation is to start with our SSD 2 VPS hosting plan or higher.

Step 1: Connect to Your Server

Before we begin, you need to connect to your server via SSH as the root user. To do this, use the following command:

ssh root@server_IP_address -p Port_number

of course, you will need to replace server_IP_address and Port_number with your actual server IP address and SSH port number.

Step 2: Update the System

We will update the server with the command:

dnf update

Once this is complete, the EPEL repository can be installed by typing:

dnf install epel-release

Step 3: Install Python packages and Odoo Dependencies

Firstly, we will install Python 3 by executing the following command:

dnf install python36 python36-devel

With the following command, we will install all the tools and dependencies we need to build the latest Odoo 13.

dnf install git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

Step 4: Create an Odoo User

With the following command, we will create a new system user and group that we need to run the Odoo service. The home directory we will define in the /opt/odoo directory.

useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

You can name the user whatever you prefer, just do not forget to create a PostgreSQL user with the same name.

Step 5: Install and Configure PostgreSQL

Install PostgreSQL by executing:

dnf install postgresql postgresql-server postgresql-contrib

Then initialize the database:

/usr/bin/postgresql-setup initdb

Once that’s done, we can start the PostgreSQL process and enable it to start on boot:

systemctl start postgresql
systemctl enable postgresql

Now, we’re going to create a new PostgreSQL user with the same name as the Odoo user system we created earlier in this tutorial.

su - postgres -c "createuser -s odoo"

Step 6: Install Wkhtmltopdf

Odoo requires the wkhtmltopdf package, which is an open-source tool that converts the HTML format to PDF so that Odoo can print PDF reports. We will install version 0.12.5, which is the latest version at the time this tutorial was written. The wkhtmltopdf package is not available in the official CentOS 8 repositories, so we will download and install it with the following commands:

cd /opt/ && wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm

dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Step 7: Install and Configure Odoo 13

In this step, we will clone the branch of Odoo 13.0 to the server and use a virtualenv that will create an isolated Python environment for the Odoo 13 instance. But first, we will switch to the Odoo user which we created in the previous steps.

su - odoo

To clone Odoo from the GitHub repository, we will use the git clone command:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13

With the command below we will create a new virtual environment that we will use for the new Odoo 13 instance.

cd /opt/odoo && python3 -m venv odoo13-venv

Once the virtual environment is created, we can activate it with this next command:

source odoo13-venv/bin/activate

We are now inside the virtual environment, where we can begin with the installation of the required Python modules for the Odoo installation:

pip3 install -r odoo13/requirements.txt

When the installation of the Python modules is complete, we can deactivate the virtual environment and return to the root user by using these commands:

deactivate && exit

The following few commands are optional and can be used if you want to use custom modules for the Odoo instance. The best practice is to install custom Odoo modules in a separated directory. Therefore we will create a new directory for the custom modules and change its ownership to the ‘odoo’ user.

mkdir /opt/odoo/odoo13-custom-addons
chown odoo: /opt/odoo/odoo13-custom-addons

The following commands will create a log file for the new Odoo installation and change its ownership to the “odoo” user:

mkdir /var/log/odoo13 && touch /var/log/odoo13/odoo.log
chown -R odoo: /var/log/odoo13/

The next step is to create a configuration file for the new Odoo instance.

nano /etc/odoo.conf

You can use your preferred text editor to create the configuration file. Paste the following lines into the file:

[options]
; This is the password that allows database operations:
admin_passwd = master_password
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
; longpolling_port = 8072
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons

Please do not forget to change the master_password with a new strong password. You can generate a strong password through the command line. Save and close the file. This completes the installation of Odoo on our system.

Step 8: Create a systemd Unit File

Now that our Odoo installation is complete, we will create a service unit file so that we can run Odoo as a service. This allows us to run Odoo in the background as a service as well as manage it, just like most other processes on the server.

Create a new odoo13.service file:

nano /etc/systemd/system/odoo13.service

Once the file is open, paste the configuration below:

[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Once the file is saved and closed, we will reload the daemon so it can acknowledge the newly created unit in systemd.

systemctl daemon-reload

Finally, we can use the following commands to start and enable on boot our new Odoo instance:

Need a fast and easy fix?
✔ Unlimited Managed Support
✔ Supports Your Software
✔ 2 CPU Cores
✔ 2 GB RAM
✔ 50 GB PCIe4 NVMe Disk
✔ 1854 GeekBench Score
✔ Unmetered Data Transfer
NVME 2 VPS

Now just $43 .99
/mo

GET YOUR VPS
systemctl start odoo13
systemctl enable odoo13

We can run the status command so that we can check if the new Odoo instance is active and running:

systemctl status odoo13.service
● odoo13.service - Odoo13
Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-10-30 14:22:16 EDT; 1min ago
Main PID: 12909 (python3)
Tasks: 6 (limit: 11543)
Memory: 72.2M
CGroup: /system.slice/odoo13.service
└─12909 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

Step 9: Access the Odoo Instance

Now that we know that the fresh Odoo installation is active and running on the server, we can access it by navigating to our server IP address along with the Odoo port number. In this case, our installed Odoo uses the default port 8069.

http://<your_server_IP_address>:8069

If the installation has been successfully completed, you will be able to see the Odoo setup screen as shown below:

Install Odoo 12 CentOS 7

Conclusion

Congratulations, if you carefully followed our instructions in this tutorial, you will have successfully installed the latest Odoo 13 on your CentOS 8 VPS. You can create your first database and start using the lastest Odoo 13.


Of course, you don’t have to install Odoo 13 on CentOS 8 if you use one of our Odoo VPS Hosting services, in which case you can simply ask our team of expert Linux admins to install and configure Odoo 13 for you. They are available 24×7 and will take care of your request immediately.

PS. If you liked this post on how to install Odoo 13 on CentOS 8, please share it with your friends on the social networks using the share shortcuts below, or simply leave a reply in the comments section. Thanks.

23 thoughts on “How to Install Odoo 13 on CentOS 8”

  1. I got an error for wkhtmltopdf. Any solutions for that?

    wkhtmltopdf: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory

    Reply
    • Run the following commands:

      cd /opt
      wget -O libpng-1.5.15.tar.gz https://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.15/libpng-1.5.15.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Flibpng%2Ffiles%2Flibpng15%2Folder-releases%2F1.5.15%2Flibpng-1.5.15.tar.gz%2Fdownload&ts=1575818772
      tar -xzvf /libpng-1.5.15.tar.gz
      cd libpng-1.5.15
      ./configure
      make install

      Reply
    • Hi,

      I have installed everystep in your intruction.
      But in step 8, after start & enable odoo 13, when im checking odoo service status, i got the following status:

      Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: disabled)
      Active: failed (Result: exit-code) since Fri 2020-06-05 09:12:04 +07; 1min 7s ago
      Process: 1556 ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf (code=exited, s>
      Main PID: 1556 (code=exited, status=1/FAILURE)

      Please help!
      Hung Nguyen

      Reply
      • Hi,
        After re-install step by step, i cannot enable odoo13 with an errror:
        Failed to enable unit: File odoo13.service: Invalid argument

        But when i check the odoo13 status, it’s running, but i also got below issues & i can’t access the odoo13 via my web browser: http://myip:8069
        Could you give me some advice, please

        ● odoo13.service
        Loaded: loaded (/etc/systemd/system/odoo13.service; bad; vendor preset: disabled)
        Active: active (running) since Fri 2020-06-05 10:07:39 +07; 35s ago
        Main PID: 21157 (python3)
        Tasks: 4 (limit: 26213)
        Memory: 60.8M
        CGroup: /system.slice/odoo13.service
        └─21157 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

        Jun 05 10:07:39 localhost.localdomain systemd[1]: Started odoo13.service.
        Jun 05 10:07:42 localhost.localdomain systemd[1]: /etc/systemd/system/odoo13.service:1: Missing ‘=’.
        Jun 05 10:07:50 localhost.localdomain systemd[1]: /etc/systemd/system/odoo13.service:1: Missing ‘=’.
        Jun 05 10:08:14 localhost.localdomain systemd[1]: /etc/systemd/system/odoo13.service:1: Missing ‘=’.

        Best regards
        Hung Nguyen

        Reply
  2. I get the following error in Step 7: Install and Configure Odoo 13

    pip3 install -r odoo13/requirements.txt

    Running setup.py install for lxml … error
    ERROR: Command errored out with exit status 1:
    command: /opt/odoo/odoo13-venv/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-nx41oay6/lxml/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-nx41oay6/lxml/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record /tmp/pip-record-_wbi002y/install-record.txt –single-version-externally-managed –compile –install-headers /opt/odoo/odoo13-venv/include/site/python3.6/lxml
    cwd: /tmp/pip-install-nx41oay6/lxml/
    Complete output (85 lines):
    Building lxml version 3.7.1.
    Building without Cython.
    Using build configuration of libxslt 1.1.32
    Building against libxml2/libxslt in the following directory: /usr/lib64
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/builder.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/sax.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.6/lxml
    creating build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.6/lxml/includes
    creating build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.6/lxml/html
    copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.6/lxml/html
    creating build/lib.linux-x86_64-3.6/lxml/isoschematron
    copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.6/lxml/isoschematron
    copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.6/lxml
    copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.6/lxml/includes
    copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.6/lxml/includes
    creating build/lib.linux-x86_64-3.6/lxml/isoschematron/resources
    creating build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/rng
    copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/rng
    creating build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl
    copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl
    creating build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    running build_ext
    building ‘lxml.etree’ extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/src
    creating build/temp.linux-x86_64-3.6/src/lxml
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/opt/odoo/odoo13-venv/include -I/usr/include/python3.6m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.6/src/lxml/lxml.etree.o -w
    gcc: fatal error: Killed signal terminated program cc1
    compilation terminated.
    Compile failed: command ‘gcc’ failed with exit status 1
    creating tmp
    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitdlg34hvz.c -o tmp/xmlXPathInitdlg34hvz.o
    /tmp/xmlXPathInitdlg34hvz.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    main (int argc, char **argv) {
    ^~~~
    cc tmp/xmlXPathInitdlg34hvz.o -L/usr/lib64 -lxml2 -o a.out
    error: command ‘gcc’ failed with exit status 1
    —————————————-
    ERROR: Command errored out with exit status 1: /opt/odoo/odoo13-venv/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-nx41oay6/lxml/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-nx41oay6/lxml/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record /tmp/pip-record-_wbi002y/install-record.txt –single-version-externally-managed –compile –install-headers /opt/odoo/odoo13-venv/include/site/python3.6/lxml Check the logs for full command output.

    Reply
    • If you want to upgrade Odoo version 12 to Odoo version 13 you need to send the database dump using the form at https://upgrade.odoo.com/database/upload then migrate the custom modules data to the new Odoo instance and import the modified database.

      Reply
  3. i have error after actived Odoo instance

    Created symlink from /etc/systemd/system/multi-user.target.wants/odoo13.service to /etc/systemd/system/odoo13.service.
    [root@server opt]# systemctl status odoo13.service
    ● odoo13.service – Odoo13
    Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Fri 2020-05-01 12:57:38 +08; 27s ago
    Main PID: 22404 (code=exited, status=1/FAILURE)

    May 01 12:57:38 server.evergreen systemd[1]: Started Odoo13.
    May 01 12:57:38 server.evergreen odoo13[22404]: Traceback (most recent call last):
    May 01 12:57:38 server.evergreen odoo13[22404]: File “/opt/odoo/odoo13/odoo-bin”, line 5, in
    May 01 12:57:38 server.evergreen odoo13[22404]: import odoo
    May 01 12:57:38 server.evergreen odoo13[22404]: File “/opt/odoo/odoo13/odoo/__init__.py”, line 75, in
    May 01 12:57:38 server.evergreen systemd[1]: odoo13.service: main process exited, code=exited, status=1/FAILURE
    May 01 12:57:38 server.evergreen systemd[1]: Unit odoo13.service entered failed state.
    May 01 12:57:38 server.evergreen systemd[1]: odoo13.service failed.
    [root@server opt]#

    Reply
  4. there’s detail information from log file

    — Logs begin at Fri 2020-05-01 12:05:47 +08, end at Sun 2020-05-03 12:50:16 +08. —
    May 01 12:57:38 server.evergreen systemd[1]: Started Odoo13.
    May 01 12:57:38 server.evergreen odoo13[22404]: Traceback (most recent call last):
    May 01 12:57:38 server.evergreen odoo13[22404]: File “/opt/odoo/odoo13/odoo-bin”, line 5, in
    May 01 12:57:38 server.evergreen odoo13[22404]: import odoo
    May 01 12:57:38 server.evergreen odoo13[22404]: File “/opt/odoo/odoo13/odoo/__init__.py”, line 75, in
    May 01 12:57:38 server.evergreen systemd[1]: odoo13.service: main process exited, code=exited, status=1/FAILURE
    May 01 12:57:38 server.evergreen systemd[1]: Unit odoo13.service entered failed state.
    May 01 12:57:38 server.evergreen systemd[1]: odoo13.service failed.
    ~

    Reply
  5. I’m trying to install odoo 13 enterprise rpm package on CentOS 7 but while I have been installed all reuirements and dependencies but the following error is showed:
    [root@odoo ~]# sudo dnf localinstall odoo_13.0+e.latest.noarch.rpm
    ​Last metadata expiration check: 0:02:35 ago on Mon 13 Jan 2020 05:25:12 PM EET.
    Error:
    Problem: conflicting requests
    – nothing provides pyparsing needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides libxslt-python needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides pychart needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-PyPDF2 needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-feedparser needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-html2text needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-num2words needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-ofxparse needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-polib needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-stdnum needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-vatnumber needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-vobject needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides python3-xlwt needed by odoo-13.0+e.20200112-1.noarch
    – nothing provides sassc needed by odoo-13.0+e.20200112-1.noarch
    Is there anybody that have been encountered with this error? please answer if yes.

    Reply
  6. Updates for Install @ Centos 8

    install also
    # dsf install nano

    Note for installing wkhtmltopdf: (Step 6)

    This Download dont work anymore:
    cd /opt/ && wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
    dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

    Use this way: ( vers. 0.12.6.1)
    # cd /opt/ && wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm

    # dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

    ———————————————————————–
    Step 7:
    Aslo Uprade pip aftepip install –upgrade pip

    Reply
  7. Hello, I am trying to configure two databases on the same Odoo 13 server. Using these instructions gets the first database up and running great. Then I create an additional DBuser, create the .conf file and the .service file using the new db user and a different port. The service starts up great, but when I go to the port it gives the “Internal Server Error

    The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.”

    I have been successful with this on prior versions of Odoo, any ideas on how to get this second port up and running?

    Reply
  8. Hi, there
    I tried following your step but every time, I keep getting below errors.

    Exception in thread odoo.service.httpd:
    Traceback (most recent call last):
    File “/usr/local/lib/python3.7/threading.py”, line 926, in _bootstrap_inner
    self.run()
    File “/usr/local/lib/python3.7/threading.py”, line 870, in run
    self._target(*self._args, **self._kwargs)
    File “/opt/odoo/odoo/odoo/service/server.py”, line 441, in http_thread
    self.httpd = ThreadedWSGIServerReloadable(self.interface, self.port, app)
    File “/opt/odoo/odoo/odoo/service/server.py”, line 150, in __init__
    handler=RequestHandler)
    File “/opt/odoo/odoo-venv/lib/python3.7/site-packages/werkzeug/serving.py”, line 701, in __init__
    HTTPServer.__init__(self, server_address, handler)
    File “/usr/local/lib/python3.7/socketserver.py”, line 452, in __init__
    self.server_bind()
    File “/opt/odoo/odoo/odoo/service/server.py”, line 165, in server_bind
    super(ThreadedWSGIServerReloadable, self).server_bind()
    File “/usr/local/lib/python3.7/http/server.py”, line 137, in server_bind
    socketserver.TCPServer.server_bind(self)
    File “/usr/local/lib/python3.7/socketserver.py”, line 466, in server_bind
    self.socket.bind(self.server_address)
    OSError: [Errno 98] Address already in use

    2020-11-03 20:29:28,046 21360 ERROR ? odoo.modules.loading: Database odoo not initialized, you can force it with `-i base`
    2020-11-03 20:30:28,111 21360 ERROR odoo odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name=’base’
    ERROR: relation “ir_module_module” does not exist
    LINE 1: SELECT latest_version FROM ir_module_module WHERE name=’base…
    ^

    2020-11-03 20:30:28,111 21360 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo.
    2020-11-03 20:30:29,111 21360 ERROR odoo odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name=’base’
    ERROR: relation “ir_module_module” does not exist
    LINE 1: SELECT latest_version FROM ir_module_module WHERE name=’base…
    ^

    2020-11-03 20:30:29,111 21360 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo.

    Reply
    • You should check which process is listening on the port on which you want to have Odoo to be listening. Kill that process and rerun the command.

      Reply
  9. I followed the tutorial but i am getting the error at final stage, could you please help me with this?

    sudo systemctl enable odoo

    Failed to execute operation: No such file or
    directory

    Reply
  10. Hi there. I just wanted to thank you for taking time to make this guide, it drived me in my way to deploy Odoo17 in a RHEL9.3. I had somre minor troubles but finally I succeed.

    Keep up good work!

    Reply

Leave a Comment