Odoo 安装过程可能会有所不同,这取决于您是否决定使用 git,或者例如 apt 包。
第 1 部分)
我以这种方式在 Ubuntu Server 20 中安装了 Odoo 13:
sudo apt update
sudo apt upgrade
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb
wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add -
echo "deb http://nightly.odoo.com/13.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt update
sudo apt install odoo
sudo service odoo status
sudo systemctl enable --now odoo
(这样odoo进程可以自主启动)
第 2 部分) Odoo 的配置文件在这里:
sudo nano /etc/odoo/odoo.conf
当你看到Odoo运行的日志时,以这种方式为例:
sudo tail -f /var/log/odoo/odoo-server.log
您可以看到正在使用的目录是什么,在本例中是日志报告:
[...] INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/.local/share/Odoo/addons/13.0']
默认情况下,Odoo 服务器从 dist-packages 目录获取默认插件。其他路径由您决定,但请记住文件夹权限的重要性。
[Odoo 内部配置:]
;addons_path = /usr/lib/python3/dist-packages/odoo/addons
addons_path = /var/lib/odoo/.local/share/Odoo/addons/13.0
第 3 部分)文件夹的权限
现在,将默认目录的插件文件夹的“权限号”与您添加的插件进行比较。
如果你进入 /usr/lib/python3/dist-packages/odoo
然后你写:
stat -c %a addons/
您可以看到权限,在本例中为 755
如果你写:ls -lath你也可以看到插件文件夹的所有者信息,在这种情况下是root:root
现在,将这些信息与路径中的其他插件文件夹进行比较:
/var/lib/odoo/.local/share/Odoo/
如果有任何差异,可以使用命令进行调整:
sudo chown -R root:root /var/lib/odoo/.local/share/Odoo/
注意:这取决于您的机器中的用户以及有权启动 Odoo 服务的用户。
sudo service odoo restart
另外,当我更改文件夹中的权限时,我注意到日志中出现“Permission denied”错误
PermissionError: [Errno 13] Permission denied: '/var/lib/odoo/.local/share/Odoo/sessions/xxxx'
因此,在 Odoo 使用的以下文件夹中拥有正确的权限也很重要:
Part 4)测试一个插件文件夹,注意插件分组
我已经测试了这个配置,购买了一个 OCA 插件的 git checkout,我在里面运行了这个简单的脚本:/var/lib/odoo/.local/share/Odoo/addons/13.0
mkdir account-analytic
cd account-analytic
git init
git remote add origin https://github.com/OCA/account-analytic.git
git pull origin 13.0
而且我已经意识到模块帐户分析,因为它是一组模块,所以不能像我预期的那样工作。
在 account-analytic 中有以下模块:
- account_analytic_parent analytic_base_department account_analytic_required analytic_tag_dimension mrp_analytic oca_dependencies.txt 采购_mto_analytic product_analytic purchase_analytic setup stock_analytic
所以,如果我搜索例如:analytic_base_department
什么也没找到,但是如果我将模块移到组外,在前面的一条路径中,然后我重新启动服务器并更新应用程序列表,那么神奇的事情就会发生:
sudo mv analytic_base_department ../
sudo service odoo restart
如果您的自定义模块尊重您构建模块时建议的 hyrarchy,也会发生同样的情况:清单、视图、模块、控制器等。
请记住,Odoo 的隐藏问题之一是了解服务的文件夹权限并很好地实现它们。