![在 NAS 上安裝 Gitolite - 致命:有錯誤但日誌記錄失敗](https://rvso.com/image/1316778/%E5%9C%A8%20NAS%20%E4%B8%8A%E5%AE%89%E8%A3%9D%20Gitolite%20-%20%E8%87%B4%E5%91%BD%EF%BC%9A%E6%9C%89%E9%8C%AF%E8%AA%A4%E4%BD%86%E6%97%A5%E8%AA%8C%E8%A8%98%E9%8C%84%E5%A4%B1%E6%95%97.png)
我正在嘗試按照以下步驟在我的 Synology DiskStation 上安裝 Gitolite指示。
在下面在 DiskStation 上安裝 Gitolite 並執行安裝程序,當我執行 Gitolite 安裝指令時:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
我收到以下錯誤:
FATAL: have errors but logging failed!
2012-05-31.00:10:22 no GL_LOGFILE env var
2012-05-31.00:10:22 die could not symlink /volume1/home/git/gitolite/src/gitolite to /bin<<newline>> at /volume1/home/git/gitolite/install line 71<<newline>>
我對這一切都很陌生。有誰知道這意味著什麼,以及如何修復此錯誤?
答案1
2個問題:
新的 GitoliteV3 (g3) 不能很好地處理缺少“logs”目錄的問題,該目錄默認情況下應該存在於$HOME/.gitolite
.
看回波時間:
$rc{LOG_TEMPLATE} = "$ENV{HOME}/.gitolite/logs/gitolite-%y-%m.log";
$rc{GL_LOGFILE} = $ENV{GL_LOGFILE} ||= gen_lfn( $rc{LOG_TEMPLATE} );
sub gl_log {
# the log filename and the timestamp come from the environment. If we get
# called even before they are set, we have no choice but to dump to STDERR
# (and probably call "logger").
logger_plus_stderr( "$ts no GL_LOGFILE env var", "$ts $msg" ) if not $ENV{GL_LOGFILE};
open my $lfh, ">>", $ENV{GL_LOGFILE} or logger_plus_stderr( "open log failed: $!", $msg );
建立日誌目錄:。mkdir -p $HOME/.gitolite/logs
並重新啟動安裝
作為站點臂(我只能從他空洞的個人資料中假設他是西塔拉姆·查馬蒂,Gitolite 的創建者/維護者),這應該是不需要的。
從OP的回答如下, 這不是無論如何都需要。
站點臂添加:
錯誤
LOGFILE
訊息具有誤導性;當安裝目錄不在$PATH
.
這最新提交於Common.pm
(2012 年 6 月 16 日)確實已替換了錯誤訊息,以便不是參考不再神秘GL_LOGFILE
:
logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};
請注意,如果您在非標準路徑中擁有自己的 perl,則這些安裝腳本都不起作用,因為它們的 shebang 引用/usr/bin/perl
而不是/usr/bin/env perl
...
第二期:
could not symlink /volume1/home/git/gitolite/src/gitolite to /bin
檢查您是否有權在 中進行符號連結
如下所述/bin
。你是根嗎?
DiskStation> /volume1/homes/git/gitolite/install -ln
(沒有/bin
)將保留所有內容$HOME
(無 /bin 寫入存取問題)
我通常更喜歡本地安裝
$HOME/gitolite/github/install -to $HOME/gitolite/bin
(所以“ -to
”而不是“ -ln
”,在我的帳戶中使用絕對路徑而不是系統路徑):
github
本地克隆的名稱https://github.com/sitaramc/gitolite
$HOME/gitolite/bin
我已添加到我的$PATH
.
答案2
以下命令是一個拼字錯誤:
DiskStation> /volume1/homes/git/gitolite/install -ln /bin
在本文前面,您為 git 使用者設定了 $HOME/bin 目錄。執行相同的命令,但保留指定的 /bin 目錄參數,gitolite 將預設為 $HOME/bin,該目錄存在且可由 git 使用者寫入。
改為執行此命令:
DiskStation> /volume1/homes/git/gitolite/install -ln
答案3
我運行了命令gitolite/install -ln /usr/bin/
對我來說,符號連結錯誤是由於git
用戶沒有符號連結到/usr/bin
.我只是將git
用戶添加到文件wheel
中的群組中/etc/group
,這就像一個魅力。