Trac + git + post-receive hooks -> Git 使用者無法正確呼叫 trac-admin
一段時間後,我終於使 trac 與 git 連接,但現在我在設置接收後掛鉤時遇到問題。
我的 git 使用者是 www-data 組的一部分,而 www-data 也是 git 組的一部分。但問題是,post-receive 掛鉤使用此程式碼(python)來呼叫 trac-admin:
args = [TRAC_ADMIN, TRAC_ENV, 'changeset', 'added', REPO_NAME] + commits call(' '.join(args), shell = True)
這在 shell 中呼叫以下內容:
/usr/bin/trac-admin /var/lib/trac/MyTrac changeset added /home/git/repositories/mynewrepo.git/ 372ba439b9fa430c932095de608cb084d6ab98eb
但是當我去 trac 和應該由完成的送出引用的票時,我什麼也沒得到。
但是,更奇怪的是,如果我只是複制呼叫並在終端(在伺服器中)執行它,那麼票證就會更新。
我再次測試,這一次,我做了一個新的送出,再次沒有更新票證,然後在伺服器中完成:
su git
並呼叫了命令,看到沒有更新票證……然後,用root呼叫它我可以讓它工作……
那麼,這裡發生了什麼?為什麼我的 git 使用者可以呼叫 trac-admin?
我不知道這是否是問題的一部分,但是當我執行 which trac-admin 時,我得到:
/usr/bin/trac-admin
這歸root所有。
那麼我應該如何讓 git 使用者呼叫 trac-admin 呢?
謝謝
所以,最後我無法完成這項工作,所以我設法從頭開始重新安裝所有東西。
當我安裝 trac 時,我沒有使用apt-get install trac,而是****從 github (trac 0.12)下載了原始碼並從那里安裝了它(也帶有 requeriments)。
完成此操作後,使用“which trac-admin”檢查了 trac-admin 的位置,它給了我:
/usr/local/bin/trac-admin
在安裝和配置之後,一切正常。
所以我相信 apt-get install 不是在 trac 中做事的好方法。
希望這對可能遇到此問題的任何人都有幫助。
OBS:我在github中保存了安裝apache2+trac+git+hooks的腳本,如果有人想在這裡使用連結:https ://github.com/arruda/TRAC-GIT-HOOKS