如何在Linux系统中查看硬件信息? 如何在Linux系统中安装软件
0
2026-06-01
Gerrit在Linux上能跑起来的核心是:Java和Git版本正确、gerrit.war用专用用户初始化、HTTP/SSH端口支持占用;Java仅支持11或17,必须用JDK非JRE,init必须非roo t用户执行并严格设置权限,HTTP访问必须经过反向代理,否则无法登录。gerrit.war目录初始化必须用专用用户执行,HTTP/SSH或者反向代理、数据库、LDAP)都Java版本和路径必须匹配Gerrit要求
Gerrit 3.4+ 官方只支持 Java 11 或 Java 17(部分 3.8+ 开始实验性支持 Java 11.0.22 或 17.0.8 这样的格式,不能是 13.0.1 或 20.0.2。用 yum install java-11-openjdk-devel(CentOS/RHEL)或 apt install openjdk-11-jdk(Ubuntu/Debian)安装,别用default-jre,可能会拉来错版本which java 和 readlink -f $(which java) 要指向 JDK 的 bin/java,而不是 JRE;否则 gerrit.war init 会报 NoClassDefFoundError: javax/xml/bind/JAXBContext 不要手动设置 JAVA_HOME 之后修改 /etc/profile —— Gerrit启动脚本(bin/gerrit.sh)默认读$JAVA_HOME/bin/java,若路径没有,服务起不来但日志里只显示“Failed to start”init -d 必须用非 root 用户且目录权限要紧收
用 root 执行 java -jar gerrit.war init -d /opt/gerrit 切换到 gerrit Permission returned (publickey) 或 Cannot lock ref。
先 adduser --home /home/gerrit --shell /bin/bash gerrit 创建专用用户把 gerrit.war /home/gerrit/,然后 su - gerrit 重新执行 java -jar gerrit.war init -d ~/review_site 初始化完成立即执行 chown -R gerrit:gerrit ~/review_site;特别注意 ~/review_site/git/ 和 ~/review_site/etc/ 下载 http访问必须走反向代理,裸端口“Sign” In”没反应,控制台报 Failed to load resources: net::ERR_CONNECTION_REFUSED。这不是 Gerrit 没启动,而是它的 Session 和 Cookie 机制强制要求 canonicalWebUrl 域名与实际访问配置一致,且协议、端口、路径全部匹配。 CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统的CentOS Linux 7图片RHEL 7生态、文档丰富和软件支持广泛着称,曾长期用于Web服务内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全问题。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载或用 Nginx 做反代(推荐),配好 proxy_pass http://127.0.0.1:8080 后,在 review_site/etc/gerrit.config 里写死:[gerrit] canonicalWebUrl = https://gerrit.example.com 或用 Apache + mod_proxy_http,但必须启用 ProxyRequests Off 和 ProxyPreserveHost On,否则 Gerrit 收不到真实主机 头别信“先用” 8080跑通再加代理”的说法——HTTP认证流程从第一步就依赖反代头,跳不过SSH执行 git clone ssh://admin@gerrit.example.com:29418/All-Projects 报 Connection精神被拒绝或Permission被拒绝(publickey),大概率不是密码错了,而是:review_site/etc/sshd_config里的listenAddress是*:29418,但是服务器防火墙(firewalld)或ufw)没放行该端口;检查用 ss -tlnp | grep:29418,没输出说明 Gerrit SSH daemon 根本没监听客户端用的是 RSA 密钥,但 Gerrit 3.6+ 默认取消 ssh-rsa 签名(因 SHA-1 不安全),得在客户端 ~/.ssh/config 加:Host gerrit.example.com PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa 或者更稳定:服务端生成ED25519 密钥(ssh-keygen -t ed25519 -f review_site/etc/ssh_host_ed25519_key),并在 review_site/etc/gerrit.config 中指定:[sshd] hostKey = ssh_host_ed25519_key
最常被忽略的一点:Gerrit 初始化后不会自动创建所有项目仓库)“创建初始空commit”,否则所有 git clone 都会失败,错误信息却只显示“Repository not found”。