我剛剛受到這個專案的啟發:
好吧,在 dpkg 在 /usr/share/applications 目錄中放置新內容之後,我想做類似的事情,但是我的腳本應該指向哪裡,以及要傳入的參數?
答案1
如果腳本不帶參數,請在 中新增一個文件/etc/apt/apt.conf.d/
,例如92local
(數字用於強制該目錄中腳本的執行順序),其內容如下:
DPkg::Post-Invoke { "/path-to/my-script"; };
並記住使其可執行。
目前無法找到有關如何將參數或輸入傳遞到腳本的資訊。
如果有幫助,apt
在命令列上運行時,您應該在環境變數中找到命令列SUDO_COMMAND
。
答案2
我找到了一種方法來執行 APT 命令的命令列:
/etc/apt/apt.conf.d/90my_dpkg_post_invoke
建立一個包含內容的文件
DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }
/usr/local/lib/my_dpkg_post_invoke.sh
建立一個包含內容的可執行文件
#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }" # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }" # trim leading spaces
echo "#### APT Command: ${APTCMD}"
現在,您可以透過測試擴充功能執行檔是否包含${APTCMD}
要觸發操作的字串。