在 NAS 上安装 Gitolite - 严重:出现错误但记录失败

在 NAS 上安装 Gitolite - 严重:出现错误但记录失败

我正在尝试在我的 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} );

Common.pm

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 的回答如下, 这不是无论如何都需要。

sitearm 补充道:

LOGFILE错误消息具有误导性;当安装目录不在时就会发生这种情况$PATH

最新提交Common.pm2012 年 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。您是 root 吗? 如下所述

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,就可以了。

相关内容