Gitolite и Gitweb: не могу найти Gitolite/Easy.pm
Я использую Git и Gitolite на CentOS.
Эти два работают (доступ по SSH), и я пытался установить GitWeb и подключить его к GitoLite. Я следовал инструкциям на странице учебника GitoLite.
GitoLite установлен на /home/git
и GitWeb в /var/www/git
,
Пользователь apache является членом группы Git, а SELinux отключен.
Когда я получаю доступ к GitWeb, он выдает мне ошибку:
Не удается найти Gitolite/Easy.pm в @INC (@INC содержит: /home/git/bin/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) в строке /etc/gitweb.conf 10. Ошибка BEGIN - компиляция прервана в строке /etc/gitweb.conf 10.
Я искал модуль в /home/git/bin/lib/Gitolite/Easy.pm, и он там существует. Так что путь кажется правильным.
/etc/gitweb.conf
BEGIN {
$ENV{HOME} = "/home/git"; # or whatever is the hosting user's $HOME
$ENV{GL_BINDIR} = "/home/git/bin";
$ENV{GL_LIBDIR} = "/home/git/bin/lib";
}
# Pull in gitolite's perl API module. Among other things, this also sets the
# GL_REPO_BASE environment variable.
use lib $ENV{GL_LIBDIR};
use Gitolite::Easy;
# Set projectroot for gitweb. If you already set it earlier in gitweb.conf
# you don't need this but please make sure the path you used is the same as
# the value of GL_REPO_BASE in the 'gitolite query-rc -a' output above.
$projectroot = $ENV{GL_REPO_BASE};
# Now get the user name. Unauthenticated clients will be deemed to be the
# 'gitweb' user so make sure gitolite's conf file does not allow that user to
# see anything sensitive.
$ENV{GL_USER} = $cgi->remote_user || "gitweb";
$export_auth_hook = sub {
my $repo = shift;
# gitweb passes us the full repo path; we need to strip the beginning and
# the end, to get the repo name as it is specified in gitolite conf
return unless $repo =~ s/^\Q$projectroot\E\/?(.+)\.git$/$1/;
# call Easy.pm's 'can_read' function
return can_read($repo);
};
/etc/httpd/httpd.conf
Alias /gitweb "/var/www/git"
<Directory /var/www/git>
DirectoryIndex gitweb.cgi
Options ExecCGI
Require all granted
<Files gitweb.cgi>
SetHandler cgi-script
</Files>
SetEnv GITWEB_CONFIG /etc/gitweb.conf
</Directory>