或許直接抓 experimental 的包來測試更快,但為了方便研究與修改,這邊還是用把它抓下來重建套件的方式,之後看 PyGMT 也能不能打包成 dpkg 套件包吧
- 建置 deb package 需要:
apt install fakeroot dpkg-dev build-essential \
devscripts debhelper git # 用 root
# 裝 git 主要是為了抓 salsa 的 git repo
- 然後先建立一個資料夾放原始碼以及之後建立的套件:
mkdir dpkggmt #之類你喜歡的名稱
cd dpkggmt
- 抓 salsa 上 Debian GIS Project 維護的 GMT Package:
git clone https://salsa.debian.org/debian-gis-team/gmt.git gmt-debian
## 另外取名以免跟官方 git repo 搞混
- 進去切到 experimental 分支
cd gmt-debian && git checkout experimental
- 利用 mk-build-deps 建立一個build套件時才要用到的虛擬套件 (之後移除應該會比較方便)
mk-build-deps debian/control
apt install --no-install-recommends ./gmt-build-deps_6.0.0~rc2+dfsg-1~exp2_all.deb # 用root
apt --fix-broken --no-install-recommends install # 用root
- 開始構建套件
debuild -b -rfakeroot -us -uc
- 然後安裝 gmt6
apt install ./gmt_6.0.0~rc2+dfsg-1~exp2_amd64.deb \
./libgmt6_6.0.0~rc2+dfsg-1~exp2_amd64.deb \
./gmt-common_6.0.0~rc2+dfsg-1~exp2_all.deb \
./gmt-doc_6.0.0~rc2+dfsg-1~exp2_all.deb \
./libgmt-dev_6.0.0~rc2+dfsg-1~exp2_amd64.deb
- 安裝 python3 (>=3.7,buster自帶的就夠了), virtualenv
apt install virtualenv
- 另外開一個資料夾叫做 pygmt
mkdir pygmt
- 建立 virtualenv 環境
virtualenv -p $(which python3) pygmt
- 進去資料夾後,並且先設定gmt library的環境變數後,啟動環境
cd pygmt
echo 'export GMT_LIBRARY_PATH="/lib/x86_64-linux-gnu"' >> bin/activate
source bin/activate ## 要離開環境輸入 deactivate 確認即可
- 利用 virtualenv 的 pip 安裝 pygmt
pip insatll pygmt
- 修改最小需求版本 (work around)
"$EDITOR" lib/python3.7/site-packages/pygmt/clib/session.py
required_version = "6.0.0"
改成 required_version = "6.0.0rc2"
這方法很糟糕,不過想不到更漂亮的方法:p
- 啟用 python (python3) 測試
python
>>> import pygmt ## 如果沒有跳出錯誤訊息代表成功了
然後可以按照官網給的範本來進行測試: https://www.pygmt.org/dev/tutorials/first-figure.html