Odoo 12 インストール



Odoo は歴史あるオープンソースERP + CRM. オープンソースERP のなかではよく取り上げられる。

手元で試すため、インストールしてみた。

公式のインストール説明; Installing Odoo — odoo 12.0 documentation

CentOS 7

Odoo 12 は Python 3.5以降を要求する。CentOS 7 は Python 2.7.5. 古すぎる. python3 がまったく入っていない。

追加パッケージ集を入れる必要がある。

CentOS 追加リポジトリ

メンテナンスされているものは、次ぐらいか。

Extra Packages for Enterprise Linux (EPEL)
Fedora Project が提供。 EPEL - Fedora Project Wiki

RHEL/CentOS 6 or RHEL/CentOS 7用. RHEL/CentOS 7 用は x86_64, ppc64, ppc64le, aarch64.

単一のリポジトリ。Python 3.4 と 3.6がある。python36-3.6.6-2.el7.x86_64.rpm (2019-01)

IUS Community Project
Rackspace 社がスポンサー。IUS

RHEL 6/7, CentOS 6/7用. RHEL/CentOS 7用は x86_64 のみ。

EPEL をインストールすることが前提で, さらに追加パッケージを提供する。

パッケージ一覧; Packages - IUS. python34u-3.4.8-1.ius.centos7.x86_64 (2018-02), python35u-3.5.6-1.ius.centos7.x86_64 (2018-11), python36u-3.6.7-1.ius.centos7.x86_64 (2018-12)

EPELのさらに追加なので、それほど多くのパッケージがあるわけではない。

Software Collections (SCLs)
Red Hat が提供。Software Collections — Software Collections

RHEL / CentOS 7用。x86_64のみ。

"Collection" という形で, パッケージの集合を用意。コレクションごとにバージョンが固定される。

Python 3.6 (rh-python36) collection => rh-python36-python-3.6.3-3.el7.x86_64 (2018-04). マイナバージョンも固定してしまうようだ。

Odooのインストール

EPELで行こう。

# yum install epel-release

CentOS 7 の PostgreSQL はバージョン9.2.24. まぁ、これはいいか。

# yum install postgresql-server postgresql-devel

PostgreSQLの初期化。コンピュータ起動時に、立ち上がるように。

# postgresql-setup initdb
# systemctl enable postgresql
# systemctl start postgresql

Odooのリポジトリを追加。dnfコマンドも入っていないので, yum で。バージョン12を入れた。

# yum-config-manager --add-repo=https://nightly.odoo.com/12.0/nightly/rpm/odoo.repo

いよいよインストール.

# yum install odoo

はい、失敗!!

--> 依存性解決を終了しました。
エラー: パッケージ: odoo-12.0.post20190312-1.noarch (odoo-nightly)
要求: python3-dateutil 要求: python3-babel 要求: python3-greenlet 要求: python3-lxml 要求: python3-pydot 要求: python3-six 要求: python3-jinja2 要求: python3-pyserial 要求: python3-stdnum 要求: python3-passlib 要求: python3-decorator 要求: python3-num2words 要求: python3-markupsafe 要求: python3-vatnumber 要求: python3-pytz 要求: python3-feedparser 要求: python3-html2text 要求: python3-reportlab 要求: python3-xlwt 要求: python3-mock 要求: python3-qrcode 要求: python3-xlrd 要求: python3-suds 要求: python3-pillow 要求: python3-psutil 要求: python3-pyusb 要求: python3-mako 要求: python3-requests 要求: python3-docutils 要求: python3-PyPDF2 要求: python3-vobject 要求: python3-gevent 要求: python3-werkzeug 要求: python3-pyldap 要求: python3-ofxparse 要求: python3-psycopg2 要求: python3-pyparsing
問題を回避するために --skip-broken を用いることができます。 これらを試行できます: rpm -Va --nofiles --nodigest

どのリポジトリを使っても, パッケージがまったくないものがある。python3-qrcode など。野良パッケージを使うと本末転倒。結局、CentOSには, バイナリパッケージではインストールできない。

Odooのソースコードから入れるなら、インストール可能。それは後述。

Fedora 29

Red Hat系で, バイナリパッケージを使って入れるなら, Fedora 一択になる。Fedora 29 でやり直した。

# dnf install postgresql-server postgresql-devel

初期化.

# postgresql-setup initdb
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

PostgreSQL を起動時に有効に。

# systemctl enable postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
# systemctl start postgresql

Odoo リポジトリ追加。

# dnf config-manager --add-repo=https://nightly.odoo.com/12.0/nightly/rpm/odoo.repo
repo の追加: https://nightly.odoo.com/12.0/nightly/rpm/odoo.repo

いよいよ Odoo を入れる。

# dnf install odoo

成功! めっちゃ簡単!!

グローバルの設定ファイルは /etc/odoo/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 = /usr/lib/python3.6/site-packages/odoo/addons

コンピュータの立ち上げ時に Odoo が自動で走るようにする。

# systemctl enable odoo
Created symlink /etc/systemd/system/multi-user.target.wants/odoo.service → /usr/lib/systemd/system/odoo.service.
# systemctl start odoo

テストなので、ファイアウォールを止めておく。

# systemctl stop firewalld
# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

ここまでで、インストール完了。

http://192.168.61.28:8069/ にアクセスすればよい。

最初の1回だけ、データベースの設定画面が表示されるので、データベースを構築する。次からアプリメニューが表示される。

ソースコードから導入

ソースコードで入れる方法。これなら CentOS でも入るはず。

とりあえずパッケージを消す。

# rpm -e odoo

コンパイルに必要なパッケージ。

# yum install python36 git gcc wget openldap-devel freetype-devel nodejs-less libxslt-devel bzip2-devel libjpeg-devel

odoo ユーザを作る。HOME は /opt/odoo にする。

wkhtmltopdf パッケージのインストール. Fedora 29 では v0.12.5. メチャメチャ依存関係が多い。alsa-liblibwayland-server とか、何かの間違いでは?

# yum install wkhtmltopdf
# yum install git

Odoo 12 ソースコードを git clone で取ってくる。odoo UNIXユーザになってから。

バージョン12のブランチを指定。

# su odoo
bash-4.4$ cd
bash-4.4$ pwd
/opt/odoo
bash-4.4$ git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 odoo-12

venv

Fedora の場合は, Python3 用の各種バイナリパッケージがあるため, この辺りは不要。CentOS では, Python3 の venv 機能を使い, 必要なpythonパッケージをside-by-sideで構築する必要がある。

$ cd odoo-12
bash-4.4$ python3 -m venv venv
$ source venv/bin/activate
(venv) bash-4.4$ pip3 install -r ./requirements.txt

CentOS ここまで.

グローバル設定

グローバル設定を整える。Odooリポジトリの debian/odoo.conf ファイルを /etc/odoo/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-12/addons

このファイルは, UNIXユーザ odoo だけが読み書きできるようにすること。パスワード直書き。

ここで、試しに、実行してみる。

# systemctl start postgresql
# su odoo
bash-4.4$ cd
$ python3 /opt/odoo/odoo-12/odoo-bin -c /etc/odoo/odoo.conf

http://192.168.61.28:8069/ にアクセスすればよい。これで動いたら, ひとまず OK.

最初の1回だけ、データベースの設定画面が表示されるので、データベースを構築する。次からアプリメニューが表示される。

systemctlの設定ファイルは、こちらを参照。作者同じか? と思うぐらい、同じ記事。

  • https://linuxize.com/post/install-odoo-12-on-centos-7/
  • https://www.rosehosting.com/blog/install-odoo-12-on-centos-7/