OxOffice Online 社群版編譯說明

如果想編譯在 GitHub 上最新版本的 OxOffice Online 社群版本,請參考本文件說明該如何建立 OxOffice Online 社群版的編譯環境及編譯流程。

在 CentOS 7 環境下編譯 OxOOL

sudo systemctl stop oxool
sudo systemctl disable oxool
sudo yum install epel-release -y
sudo yum update -y
sudo yum install git yum-utils libpcap libcap-devel poco-devel ccache python36-polib python36-lxml -y
sudo yum install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install nodejs -y
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz #在做完以上步驟後,clone 下來的目錄內應會有一個檔名類似 oxool-3.2.11.tar.gz 的壓縮檔,將後面的 oxool-x.x.x.tar.gz 代換為此檔的檔名即可
~/rpmbuild/RPMS/x86_64

套件直接就可以拿來安裝~編譯完成。

在 Ubuntu 18.04 環境下編譯 OxOOL

sudo systemctl stop oxool
sudo systemctl disable oxool
sudo apt install git -y
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
./install_build_require_ubuntu.sh
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs

切換到 oxool-cummunity 程式的主目錄下,開始編譯程式。

cd oxool-community
./autogen.sh # 過程中若是提示找不到 fontconfig,請安裝 libfontconfig1-dev;若提示缺少 Poco 標頭,則請安裝 libpoco-dev
make -j2

如果成功就會看到以下訊息請您輸入編譯帳號的密碼:

[sudo] password for oxoffice:

輸入後,會繼續編譯直到完成,然後輸入以下指令測試是否能運行成功:

make run

如果看到以下訊息,就代表已經可以成功測試了。

Ready to accept connections on port 9980.

請在專案的根目錄執行

debuild -b -uc -us # 若您已先執行過上面的編譯動作,在執行此步驟前請先在您的 oxool-community 目錄執行 git clean -fdx 指令,如此才能正常打包

最後打包的 deb 結果會生成在專案的上層目錄

cd ..
ls oxool_3.x.x-1.community_amd64.deb

套件直接就可以拿來安裝~編譯完成。

在 CentOS 7 環境下編譯 OxOffice Online v4 社群版

請先下載並安裝最新版本的 CentOS 7,然後執行以下指令更新系統與安裝必要的軟體包(此處是以一般使用者身份登入為準,且編譯時不建議使用 root 身份),其中 devtoolset-11 是用來安裝較新版本的 GCC 套裝軟體,數字為 GCC 的主要版本,請至少使用 GCC 8 以上的版本。

sudo yum upgrade -y
sudo yum install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-centos7.repo
sudo yum install epel-release -y
sudo yum upgrade -y
sudo yum install git yum-utils libpcap libcap-devel libgit2-devel poco-devel ccache python36-devel python36-polib python36-lxml -y
sudo yum install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
sudo yum install oxoffice* poco* gumbo* -y
sudo yum install centos-release-scl
sudo yum install devtoolset-11

停用 SELinux

vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開

安裝並設定 Node.js

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install nodejs -y

將 OxOffice Online v4 社群版的原始碼 clone 下來

git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git checkout v4

編譯 OxOffice Online v4 社群版(此處的 devtoolset-11 需根據上面選擇安裝的版本而定)

scl enable devtoolset-11 bash
./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz

編譯完成的 RPM 軟體包會放在以下路徑

~/rpmbuild/RPMS/x86_64

此處的 RPM 軟體包即可用來安裝。

在 Rocky Linux 8 環境下編譯 OxOffice Online v4 社群版

請先安裝 Rocky Linux 8(可參照Rocky Linux 8 基本安裝),然後執行以下指令更新系統與安裝必要的軟體包(此處是以一般使用者身份登入為準,且編譯時不建議使用 root 身份)

sudo dnf config-manager --set-enabled powertools
sudo dnf upgrade -y
sudo dnf install vim net-tools unzip wget -y
cd /etc/yum.repos.d
sudo wget http://www.oxoffice.com.tw/rpm/el/oxool-community-v4-el8.repo
sudo dnf install epel-release -y
sudo dnf upgrade -y
sudo dnf install git yum-utils libpcap libcap-devel libgit2-devel poco-devel ccache python3-devel python3-polib python3-lxml -y
sudo dnf install libtool gcc-c++ fontconfig-devel cppunit-devel pam-devel rpm-build -y
sudo dnf install oxoffice* poco* gumbo* -y

停用 SELinux

vim /etc/selinux/config # vim 可代換成任何您慣用的文字編輯器
# 尋找 SELinux=enforcing 此行並將 enforcing 改為 disabled 或 permissive 並存檔離開

安裝並設定 Node.js

sudo dnf module enable nodejs:18 -y
sudo dnf install nodejs -y

將 OxOffice Online v4 社群版的原始碼 clone 下來

git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git switch v4

編譯 OxOffice Online v4 社群版

./autogen.sh
./configure
make dist
rpmbuild -tb oxool-x.x.x.tar.gz

編譯完成的 RPM 軟體包會放在以下路徑

~/rpmbuild/RPMS/x86_64

此處的 RPM 軟體包即可用來安裝。

在 Ubuntu 20.04 環境下編譯 OxOffice Online v4 社群版

請先安裝 Ubuntu 20.04(可參照 Ubuntu Server 20.04 基本安裝),然後執行系統更新並安裝必要的軟體包

sudo apt update
sudo apt upgrade -y
sudo apt install vim openssh-server net-tools curl git -y
# 如果有重新啟動服務的提示,請選擇 yes 即可
curl http://www.oxoffice.com.tw/deb/OSSII-2022.key | sudo apt-key add
cd /etc/apt/sources.list.d/
sudo wget http://www.oxoffice.com.tw/deb/oxool-community-v4-focal.list
sudo apt update
sudo apt install oxoffice* libpoco-dev libgumbo-dev

安裝更多編譯時需要的軟體包

sudo apt update
sudo apt install -y build-essential libsqlite3-dev libcurl4-openssl-dev libcppunit-dev libcap-dev libcap2-bin libgit2-dev libtool libpng-dev automake m4 wget curl autoconf pkg-config openssl libgumbo-dev ccache fontconfig libfontconfig1-dev libpam-dev
sudo apt install -y devscripts debhelper dh-systemd dh-exec
sudo apt install -y libodbc1 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5
sudo apt install -y hunspell
sudo apt install -y python3-polib python3-lxml

安裝並設定 Node.js

cd ~
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

將 OxOffice Online v4 社群版的原始碼 clone 下來

cd ~
git clone https://github.com/OSSII/oxool-community.git
cd oxool-community
git switch v4

編譯 OxOffice Online v4 社群版

debuild -b -uc -us

編譯好的 deb 軟體包會放在編譯用目錄的上層

cd ..
ls oxool_4.x.x-1.community_amd64.deb

此處的 DEB 軟體包即可用來安裝。

注意:若您在編譯過程中遇到 Node.js/npm 的記憶體不足問題,可在專案根目錄下依序執行以下指令:

cd loleaflet
npm install
cd archived-packages
npm install
cd ..
touch node_modules

如此即可避開此問題。