Ubuntu通过源码安装Odoo16
Odoo16需要Python3.8支持,否则有些功能可能有所限制
第一步:安装Python和依赖包
sudo apt-get update
sudo apt-get install openssh-server fail2ban
sudo apt-get install -y python3-pipsudo
apt
install
git python3-pip build-essential wget python3-dev python3-venv \
python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev \
python3-setuptools node-
less
libjpeg-dev zlib1g-dev libpq-dev \
libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev \
liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
Python 依赖安装好之后,还需要安装一些前端所需的依赖包:
sudo apt-get install -y npm sudo ln -s /usr/bin/nodejs /usr/bin/node sudo npm install -g less less-plugin-clean-css sudo apt-get install -y node-less
通过网上搜到的往往有两个坑:
- Package ‘libmysqlclient-dev’ has no installation candidate 使用default-libmysqlclient-dev来代替
- libjpeg8-dev和libjpeg-dev冲突,导致无法安装,选一个就好,ITGeeker技术奇客用的libjpeg8-dev包
第二步:安装 PostgreSQL 数据库
PostgreSQL用12或者13版本都没问题,有些自带11的问题也不大
sudo apt-get install postgresql #安装数据库
创建数据库用户
sudo su - postgres -c "createuser -s odoo"
psql
\q
exit
此步可以跳过。让odoo成为Postgresql的超级用户,否则启动的时候会有个错误提示,不知道是不是新版本的bug
sudo -u postgres psql
ALTER USER odoo WITH SUPERUSER;
第三步:给系统添加一个odoo的用户用于运行
sudo useradd -r -m -U -d /opt/odoo -s /bin/bash odoo
###sudo adduser --system --home=/opt/odoo --group odoo
为创建的用户帐户设置密码
#sudo passwd odoo
Changing password for user odoo. New password:输入自己设置的密码 Retype new password:再次输入自己设置的密码 passwd: all authentication tokens updated successfully.
第四步:获取odoo的源代码
代码可以根据自己的渠道获取
第五步:安装Python的工具包
此处建议使用python venv环境来运行,这样你的系统如果要使用其它python包的时候不会有冲突,可保持系统稳定运行。
sudo su - odoo
cd /opt/odoo
python3 -m venv odoo-venv
source odoo-venv/bin/activate
python -m pip install --upgrade pip
先把pip3切换到阿里源:
-
mkdir ~/.pip
vi ~/.pip/pip.conf
# 然后将下面这两行复制进去就好了
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
pip install wheel pip install --upgrade pip pip install setuptools --upgrade
pip3 install -r /opt/odoo/requirements.txt
成功安装后,停用虚拟环境,
$deactivate $exit
创建Odoo日志文件:
sudo touch /var/log/odoo/odoo.log
设置正确的目录权限:
sudo chown -R odoo:odoo /opt/odoo/ /var/log/odoo/odoo.log
如果安装速度太慢,那就采用镜像加速的方式来安装吧:
第六步:安装Wkhtmltopdf
Odoo打印PDF报告都要用到这个模块,如果直接安装版本太低,就下载到本地安装。
cd /tmp && sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb sudo apt install -f #直接安装 sudo apt install wkhtmltopdf
第七步:创建conf文件
sudo cp /opt/odoo/odoo_source/debian/odoo.conf /etc/odoo.conf
sudo nano /etc/odoo.conf
添加配置内容
[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 = /opt/odoo/odoo/addons logfile = /var/log/odoo/odoo.log
更改权限
sudo chown odoo: /etc/odoo.conf
sudo chmod 640 /etc/odoo.conf
第八步:odoo服务文件
sudo nano /etc/systemd/system/odoo.service
添加内容
[Unit] Description=odoo Documentation=https://www.geekercloud.com [Service] # Ubuntu/Debian convention: Type=simple User=odoo #ExecStart=/opt/odoo/odoo_source/odoo-bin -c /etc/odoo.conf ExecStart=/opt/odoo/odoo_venv/bin/python3 /opt/odoo/odoo_source/odoo-bin -c /etc/odoo.conf [Install] WantedBy=default.target
调整权限
sudo chmod 755 /etc/systemd/system/odoo.service && sudo chown root: /etc/systemd/system/odoo.service
第十步:查看日志Log
sudo tail -f /var/log/odoo/odoo.log
----------
重新加载系统服务:
sudo systemctl daemon-reload
启动创建的odoo服务。
sudo systemctl start odoo sudo systemctl restart odoo
使它在启动时启动。
$ sudo systemctl enable odoo Created symlink /etc/systemd/system/multi-user.target.wants/odoo.service → /etc/systemd/system/odoo.service.
确认Odoo服务是否设置为在启动时启动。
$ systemctl is-enabled odoo enabled
检查是否正在运行。
$ systemctl status odoo