Bash

使用安裝命令 automake 指定要執行的腳本

  • August 21, 2018

我目前正在建構一個用 automake 處理的大包。包由 C、C++ 和 Python 組成。到目前為止,我在 C/C++ 方面取得了不錯的成績,但在涉及 python 依賴項時我被阻止了。

我在安裝時親自執行一個腳本,並且我想在make install被呼叫時執行它。現在它由 configure.ac 呼叫,但它在不必要的時間執行。

該腳本正在做三件事:

  • 將一些 python 文件放在 /usr/local/lib/python2.7/(dist|site)-packages
  • 安裝自製的python模組
  • 檢查 python 和程序依賴項,如 geckodriver 並在必要時安裝它們

我知道由 automake 生成的 makefile 是“創建命令”,它們是在何時installuninstall通過範例觸發的,我想知道如何告訴 makefile.am 在呼叫 install 時呼叫 somescript.sh 並在解除安裝時呼叫 someOtherscript.sh被呼叫以刪除我的程序安裝的內容。

有點像 debian 包中的 preinst 腳本。

我最終找到了一種使用自動工具處理 python 的方法。Makefile.am 允許您像這樣覆蓋安裝和解除安裝:

install-exec-local:
   cd src/ && python setup.py install --record $(pythondir)/installed_files.txt

uninstall-local:
   cat $(pythondir)/installed_files.txt | xargs rm -rf \
   rm -r $(sysconfdir)/nina

特別感謝 Kevin Brown 的精彩教程。

https://blog.kevin-brown.com/programming/2014/09/24/combining-autotools-and-setuptools.html

引用自:https://unix.stackexchange.com/questions/348398