OpenSUSE Tumbleweed 上的 `git instaweb` 问题:未找到此类项目

问题描述 投票:0回答:1

我在 OpenSUSE Tumbleweed 上设置 git instaweb 时遇到问题。

我确实安装了

git-web
lighttpd

当我在 git 项目的根目录中执行

git instaweb
时,浏览器会在显示
No such projects found
的页面中打开。

我尝试将项目根目录放入

/srv/git
,但也没有成功。

这应该像在项目根目录中执行这些命令一样简单:

git instaweb

git instaweb --stop
git lighttpd gitweb apparmor
1个回答
0
投票

为了解决这个问题,我注意到命令

git instaweb
.git
下创建了一个名为
gitweb
的文件夹。在此文件夹中,我们可以找到
lighttpd
的配置文件,称为
lighttpd.conf
,以及
gitweb.cgi
的另一个配置文件,称为
gitweb_config.perl

假设您位于项目的根目录中,可以像这样“手动”运行

lighttpd

lighttpd -D -f .git/gitweb/lighttpd.conf
  • -f
    指定
    lighttpd
    配置文件。
  • -D
    告诉
    lighttpd
    不要守护进程。

当我访问浏览器页面时,我进入控制台:

[Fri Jan  5 17:51:35 2024] gitweb.cgi: Can't exec "/usr/bin/git": Permission denied at /usr/share/gitweb/gitweb.cgi line 3335.

好像是

/usr/bin/git
的问题。我尝试将以下行添加到
/etc/apparmor.d/usr.share.git-web.gitweb.cgi
:

/usr/bin/git rix,

但是还是不行。经过一番搜索,我找到了一种调试方法

AppArmor

grep -i apparmor\=\"DENIED\" /var/log/audit/audit.log | less
...
type=AVC msg=audit(1704485570.756:138288): apparmor="DENIED" operation="exec" class="file" profile="gitweb.cgi" name="/usr/libexec/git/git" pid=31445 comm="gitweb.cgi" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0

所以我删除了之前添加到

/etc/apparmor.d/usr.share.git-web.gitweb.cgi
的行并添加了以下行:

/usr/libexec/git/git rix,

现在可以正常使用了。

© www.soinside.com 2019 - 2024. All rights reserved.