odoo.png

      Odoo 令人驚豔的一款 ERP, 同時也加入CMS (內容管理的), 基本上包山包海, 使用者介面我個人是覺得蠻符合現在操作趨勢, 可以參考 odoo.com 官網, 有非常多采多姿的說明文件和操作流程, 整個社群也有越來越多人討論的趨勢 (這點很重要, 我通常都會看這個開源專案的社群討論度, 才決定要不要投資此技術).

odoo_phase.PNG

圖片來源 : 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 可以參照
  • 如果是 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) 版

Untitled picture.png

圖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 的畫面

odoo_nightly.PNG

圖3 .odoo nightly builds (每天都會上傳一個最穩定的版本)

odoo_nightly_OS.PNG

圖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 等等)

Untitled picture2.png

圖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 連線登入的腳色, 並給予創建資料庫的權限

postgresql_role_setting.png

            圖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

localhost8069.PNG

圖7. 看到 HTTP Service 資訊 顯示 port 8069

buliding.PNG

圖8. 網址鍵入 http://localhost:8069 就可以看到建立資料庫的畫面 (看到這幾乎建置完成了)

附錄Q.

Untitled picture3.png

圖7. 理論上安裝 libsass python lib 有成功的話應該不用理會附錄Q

Untitled picture4.png

圖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

       Insalling Odoo

 

----------------------------------------------------- 後續 ---------------------------------------------

後續文章 (蠻推薦接著讀) :

      開發人員 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 發布了, 別忘了開發環境要與伺服器版本相同, 以免產生語法不相容)

 

 

arrow
arrow
    創作者介紹
    創作者 boming 的頭像
    boming

    Michael Lin 的小部落格

    boming 發表在 痞客邦 留言(0) 人氣()