Odoo は歴史あるオープンソースERP + CRM. オープンソースERP のなかではよく取り上げられる。
手元で試すため、インストールしてみた。
公式のインストール説明; Installing Odoo — odoo 12.0 documentation
Odoo 12 は Python 3.5以降を要求する。CentOS 7 は Python 2.7.5. 古すぎる. python3
がまったく入っていない。
追加パッケージ集を入れる必要がある。Linuxディストリビューションあれこれ
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のソースコードから入れるなら、インストール可能。それは後述。
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-lib
や libwayland-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
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の設定ファイルは、こちらを参照。作者同じか? と思うぐらい、同じ記事。