Odoo 令人驚豔的一款 ERP, 同時也加入CMS (內容管理的), 基本上包山包海, 使用者介面我個人是覺得蠻符合現在操作趨勢, 可以參考 odoo.com 官網, 有非常多采多姿的說明文件和操作流程, 整個社群也有越來越多人討論的趨勢 (這點很重要, 我通常都會看這個開源專案的社群討論度, 才決定要不要投資此技術).
圖片來源 : odoo.com (此圖說明著商業應用與使用者友善度相位圖, odoo 遙遙領先各 erp)
吾人整理了一些 ubuntu (或 wsl) 建立 odoo 的安裝和初始設定, odoo由來簡單的來說, 作者 Fabien 想做一個可以跟SAP 等這種大廠競爭的 ERP 但面向不同 (SAP 做給大型企業, odoo 做給中小型企業), 經過許多年的努力從 open erp 到爭取到金主的投資加速, 改名為 odoo (因為作者認為 o 越多越厲害, 如: google, yahoo 等等..), 發展至今, 其餘的這邊就不再講古說明有興趣的可以自行去挖古
環境/作業系統 : WSL ubuntu 18.04 + Odoo 12
- 若還不知道 WSL (Windows Subsystem for Linux 白話文 : 可以在windows 用Linux 且不用 VM這種虛擬機器), 或想安裝 WSL 可以參照
- 想學Linux 卻苦無 OS? 試試看 WSL
- P.S WSL 上建立 odoo 比 window 直接建立來的好, 使用一段時間, 效能沒有比較慢, 反觀如果是用 IDE 啟動慢很多
- 如果是 MacOS 系統想安裝 odoo 可以參考 - MacOS Mojave/Catalina + Odoo12
- 如果是 GCP (Google Cloud Platform) 上要安裝可以參考 - (To Be Continued 筆記整理中)
- 如果是 Docker 想要部屬 odoo 可以參考 - (To Be Continued 筆記整理中)
WSL 是 window subsystem for linux, 換而言之是一個, 微軟作業系統的linux子系統 , 我個人蠻推薦在 wsl 這上面建立而不是在 window 作業系統上 (真心不騙, 假以時日想要用 runbot (odoo 的 CI)或是 openupgrade (odoo migration) 時就不會痛苦萬分), 當然 wsl 發布版也可以選擇喜歡的版本, 這邊採用 ubuntu (BionicBeaver) 版
圖2. 打開 Microsoft Store 可以找到 linux 相關發布版
好廢話不多說, 馬上進入怎麼安裝
Step 0. make dir and building virtualenv (建立資料夾和python 虛擬環境)
/nmt/c$ sudo apt update
/nmt/c$ sudo apt upgrade
/nmt/c$ sudo apt install python3-venv (安裝過就不用在安裝了)
/nmt/c$ mkdir ubuntu_odoo12
/nmt/c$ cd ubuntu_odoo12
/nmt/c/ubuntu_odoo12$ python3 -m venv env
/nmt/c/ubuntu_odoo12$ source env/bin/activate
(env)/nmt/c/ubuntu_odoo12$
Step 1. download odoo repo from github (從 github 下載 odoo repo 到新建立的目錄下, 這邊採用 odoo 12 分支, 當然不想載下整個分支也可用 --depth=1 )
/nmt/c/ubuntu_odoo12$ git clone https://github.com/odoo/odoo.git -b 12.0 --single-branch
or
/nmt/c/ubuntu_odoo12$ git clone https://github.com/odoo/odoo.git -b 12.0 --depth=1
P.S. 延伸補充 : 因為 github 上的程式碼有可能不穩定, 因為是來自各方的工程師或有心人一起努力的, 但難免有些有錯誤, 如果想體驗最新功能
當然可以用 github 下載當作主程式, 有新的補丁可以立馬 pull, 如果想在伺服器上架設的話反而比較推薦使用 Odoo Nightly builds , 下面有
Odoo Nightly Builds 的畫面
圖3 .odoo nightly builds (每天都會上傳一個最穩定的版本)
圖4 . 選擇你的作業系統, 或執行檔或壓縮檔來建置你的odoo
Step 2. install all requirements python lib (安裝一些 python 的相依模組, 最後在安裝)
(env) /nmt/c/ubuntu_odoo12/$ sudo apt install gcc python3-dev python3.6-dev (處理 psutil)
(env) /nmt/c/ubuntu_odoo12/$ sudo apt install build-essential libldap2-dev libsasl2-dev \
slapd ldap-utils python-tox lcov valgrind (處理 python-ldap)
(env) /nmt/c/ubuntu_odoo12/$ sudo apt install libxml2-dev libxslt1-dev lib32z1-dev (處理 lxml)
(env) /nmt/c/ubuntu_odoo12/$ sudo apt install python3-setuptools
(env) /nmt/c/ubuntu_odoo12/$ sudo apt install libtiff5-dev libjpeg8-dev zlib1g-dev \
libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev \
tcl8.6-dev tk8.6-dev python-tk (處理 Pillow)
(env) /nmt/c/ubuntu_odoo12/$ python3 -m pip install --upgrade pip
(env) /nmt/c/ubuntu_odoo12$ cd odoo
(env) /nmt/c/ubuntu_odoo12/odoo$ pip3 install -r requirements.txt
(env) /nmt/c/ubuntu_odoo12/$ pip3 install num2words vobject qrcode pyldap (有需要的話手動安裝, 如安裝不成功時移除 requirements 失敗的模組用 pip3 手動安裝)
Step 3. create PostgreSQL (9.5+) role and setting configure
注意 : 安裝的 postgresql 版本要大於 9.5+ 否則或在執行階段會有bug
注意 : 如果要再 Server (伺服器)上或本機上安裝多套不同版本的 postgresql 記得去更改 port (阜 ex. 一台 5432 (預設) ,另一台 5433, 5434 等等)
圖5.Odoo12 的資料庫版本問題 postgresql 9.5+ 來源 git issue #27575
$ sudo apt install postgresql postgresql-client (安裝資料庫, 這本我只有安裝 postgresql-client 因為我的 window 作業系統已經安裝 postgresql)
TODO : Create your database roles (create user xxx with login createdb password 'ooo';)
P.S. 利用 pgadmin4 (window 安裝 pgadmin4 來操作) 來操作增加odoo 連線登入的腳色, 並給予創建資料庫的權限
圖6. postgresql 創建 role 的 setting
或
直接在 ubuntu 利用 psql command line 來操作
$ psql -h localhost -p 5432 -U postgres (如果直接在 ubuntu 上安裝可能要用 $ sudo su - postgres , 使用這個模式, 完成後 exit 離開該模式)
postgres=# create user odoo12 with createdb login password 'odoo12'; (創建登入角色, 名稱和密碼可以自行更改, 在這邊以odoo12 作為連線的帳號與密碼)
postgres=# \q (離開)
P.S. 這邊如果是用 ubuntu 直接安裝 postgresql (postgresql 安裝在 window 作業系統系不用處理) 將他的 postgresql 服務開啟
$ sudo service postgresql start
TODO : and from PostgreSQL and Setting your odoo.conf
Step 4. install wkhtmltopdf (odoo 有很多的 report 要輸出, 會以 pdf 型式, 所以需安裝 wkhtmltopdf工具)
安裝wkhtmltopdf來處理輸出pdf, 利用 wget下載壓縮檔
$ wget https://downloads.wkhtmltopdf.org/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
下載完之後執行下列命令解壓縮
$ xz -d wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
$ tar -xvf wkhtmltox-0.12.3_linux-generic-amd64.tar
這個時候會看到wkhtmltox的目錄
將可執行文件複製到 use/bin 中
$ sudo cp ~/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
更改所有者為 root的用戶,並增加可執行屬性
$ sudo chown root:root /usr/bin/wkhtmltopdf
$ sudo chmod +x /usr/bin/wkhtmltopdf
Step5. install sassc (see Q) and run (安裝 sassc 參考附錄Q和執行)
(env) /nmt/c/ubuntu_odoo12$ cd odoo
(env) /nmt/c/ubuntu_odoo12/odoo$ sudo cp /debian/odoo.conf /odoo.conf (從debian資料夾中複製到上層)
(在此可以用 vim odoo.conf 指令修改 odoo.conf 檔案, 進入後按 i 進入編輯模式, 修改連接字串與模組路徑, 可參考如下, 完成後按 :wq 離開vim 編輯器並貯存)
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = 127.0.0.1
db_port = 5432
db_user = odoo12
db_password = odoo12
addons_path = ./addons, ./odoo/addons
(env) /nmt/c/ubuntu_odoo12/odoo$ python3 odoo-bin -c odoo.conf
圖7. 看到 HTTP Service 資訊 顯示 port 8069
圖8. 網址鍵入 http://localhost:8069 就可以看到建立資料庫的畫面 (看到這幾乎建置完成了)
附錄Q.
圖7. 理論上安裝 libsass python lib 有成功的話應該不用理會附錄Q
圖9. 執行 python3 odoo-bin -c odoo.conf 如果看到無法 compiling scss 就手動安裝
手動安裝 sassc
Step 1 : Clone repositories
$ cd /usr/local/lib/
$ sudo git clone https://github.com/sass/sassc.git --branch 3.4.2 --depth 1
$ sudo git clone https://github.com/sass/libsass.git --branch 3.4-stable --depth 1
$ sudo git clone https://github.com/sass/sass-spec.git --depth=1
Step 2 : Set the environment variable
$ echo 'SASS_LIBSASS_PATH="/usr/local/lib/libsass"' | sudo tee -a /etc/environment
$ source /etc/environment
Step 3 : Build libsass
$ sudo apt-get install --reinstall make (如果出現 make comment can not found)
$ sudo make -C libsass
Step 4 : Build and install sassc
$ sudo make -C sassc
$ sudo make -C sassc install
Suggested Read :
Command-line interface : odoo-bin
----------------------------------------------------- 後續 ---------------------------------------------
後續文章 (蠻推薦接著讀) :
開發人員 IDE 的選擇
- PyCharm - 因非python陣容出身, 使用上不順因此棄用不過還是把環境建置放上來給有需要的人
- Visual Studio - 我之前是 .net 工程師所以一開始是用 visual Studio 直到有天 (.net 多國語系套件與 python 專案相衝, 我轉到 vs code)
- To Be Continued
- Visual Studio Code - 目前推薦的 IDE
- To Be Continued
後記:
我利用類似的概念一路都是這樣安裝, 其實蠻適用 odoo 8 以上的安裝, odoo 8/9/10/11/12 都安裝過, 差別再 12以前要用 python2.7, odoo 12 要搭配 python3 的環境
也因為這樣所以 python 虛擬環境更為重要, 因為我可以在這上面同時開不同的 odoo 版本 (port 要設定不同 ex : odoo12 對應 port 8069, odoo11 對應 port 8080 等等..), 以及 postgresql 版本也要注意 (高版本的 odoo 無法支援低版本 postgresql)
odoo 相關生態目前狀態 :
odoo 13 已經出了 - odoo 13 feature 和 odoo 14 預期 feature (有興趣也可以照上敘odoo 12的方式建置)
PostgreSQL 12 Released! (可以試試看, 官方說有效能提升)
Python 3.8 Release date October 14th, 2019 (python 3.8 發布了, 別忘了開發環境要與伺服器版本相同, 以免產生語法不相容)
留言列表