跳至主要内容
版本:1.22.3

从二进制文件安装

所有下载都包含 SQLite、MySQL 和 PostgreSQL 支持,并使用嵌入式资源构建。这可能与 Gogs 不同。

下载

您可以在 下载页面 找到与您的平台匹配的文件,然后导航到您要下载的版本。

选择正确的文件

对于 Linux,您可能需要 linux-amd64。它适用于 64 位 Intel/AMD 平台,但还有其他平台可用,包括 arm64(例如 Raspberry PI 4)、386(即 32 位)、arm-5arm-6

对于 Windows,您可能需要 windows-4.0-amd64。它适用于所有现代版本的 Windows,但还有一个 386 平台,专为旧的 32 位 Windows 版本而设计。

注意:还有一个 gogit-windows 文件可用,它是为了帮助解决一些 性能问题,这些问题是某些 Windows 用户在旧系统/版本上报告的。如果您遇到性能问题,您应该考虑使用此文件,并告知我们它是否改善了性能。

对于 macOS,如果您硬件使用 Apple Silicon,则应选择 darwin-arm64,或者对于 Intel 则选择 darwin-amd64

对于 FreeBSD,您应该选择 freebsd12-amd64,适用于 64 位 Intel/AMD 平台。

使用 wget 下载

复制下面的命令并替换其中的 URL,替换为您要下载的 URL。

wget -O gitea https://dl.gitea.com/gitea/1.22.3/gitea-1.22.3-linux-amd64
chmod +x gitea

请注意,上面的命令将下载适用于 64 位 Linux 的 Gitea 1.22.3。

验证 GPG 签名

Gitea 使用 GPG 密钥 对所有二进制文件进行签名,以防止对二进制文件进行意外修改。要验证二进制文件,请下载签名文件(以 .asc 结尾),该文件与您下载的二进制文件相对应,并使用 GPG 命令行工具。

gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.22.3-linux-amd64.asc gitea-1.22.3-linux-amd64

查找文本 Good signature from "Teabot <[email protected]>",以确认二进制文件良好,尽管存在类似 This key is not certified with a trusted signature! 的警告。

注意

许多以下目录也可以使用 环境变量 进行配置!值得注意的是,配置 GITEA_WORK_DIR 将告诉 Gitea 将其工作目录设在哪里,并简化安装。

准备环境

检查服务器上是否安装了 Git。如果没有,请先安装它。Gitea 需要 Git 版本 >= 2.0。

git --version

创建一个用户来运行 Gitea(例如 git

# On Ubuntu/Debian:
adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git

# On Fedora/RHEL/CentOS:
groupadd --system git
adduser \
--system \
--shell /bin/bash \
--comment 'Git Version Control' \
--gid git \
--home-dir /home/git \
--create-home \
git

创建必需的目录结构

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
注意

/etc/gitea 暂时为用户 git 设置了写权限,以便 Web 安装程序可以写入配置文件。安装完成后,建议使用以下命令将权限设置为只读

chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini

如果您不希望 Web 安装程序能够写入配置文件,则可以将配置文件对 Gitea 用户(所有者/组 root:git,模式 0640)设置为只读,但您需要手动编辑配置文件以

  • 设置 INSTALL_LOCK= true
  • 确保所有数据库配置详细信息都设置正确
  • 确保已设置 SECRET_KEYINTERNAL_TOKEN 值。(您可能想使用 gitea generate secret 生成这些密钥。)
  • 确保已设置您需要的任何其他密钥。

有关使用 gitea generate secret 的信息,请参见 命令行文档

配置 Gitea 的工作目录

注意

如果您打算将 Gitea 作为 Linux 服务运行,您可以跳过此步骤,因为服务文件允许您设置 WorkingDirectory。否则,请考虑永久(或半永久)设置此环境变量,以便 Gitea 始终使用正确的工作目录。

export GITEA_WORK_DIR=/var/lib/gitea/

将 Gitea 二进制文件复制到全局位置

cp gitea /usr/local/bin/gitea

添加 bash/zsh 自动补全(从 1.19 开始)

可以在 contrib/autocompletion/bash_autocomplete 找到一个启用 bash 自动补全的脚本。可以将它复制到 /usr/share/bash-completion/completions/gitea 或在您的 .bashrc 中进行设置。

类似地,可以在 contrib/autocompletion/zsh_autocomplete 找到一个 zsh 自动补全脚本。可以将它复制到 /usr/share/zsh/_gitea 或在您的 .zshrc 中进行设置。

可能因情况而异,这些脚本可能需要进一步改进。

运行 Gitea

完成上述步骤后,您可以通过两种方式运行 Gitea

请参见如何创建 Linux 服务

2. 从命令行/终端运行

GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini

更新到新版本

您可以通过停止 Gitea、替换 /usr/local/bin/gitea 中的二进制文件并重新启动实例来更新到新版本的 Gitea。在更新过程中,二进制文件名不应更改,以避免现有存储库出现问题。

建议您在更新安装之前进行 备份

如果您已按照上述步骤进行安装,则二进制文件应具有通用名称 gitea。不要更改此名称,即不要包含版本号。

如前所述,我们建议使用 systemd 作为服务管理器。在这种情况下,systemctl restart gitea 应该可以正常运行。

2. 不使用 systemd 重新启动 Gitea

要重新启动 Gitea 实例,我们建议使用 SIGHUP 信号。如果您知道 Gitea 的 PID,请使用 kill -1 $GITEA_PID,否则您可以使用 killall -1 gitea

要优雅地停止 Gitea 实例,只需使用 kill $GITEA_PIDkillall gitea 即可。

注意

我们不建议使用 SIGKILL 信号(-9);您可能会强制停止一些 Gitea 的内部任务,它不会优雅地停止(队列中的任务、索引器等)。

请参见以下故障排除说明,了解如何在更新 Gitea 版本后修复损坏的存储库。

故障排除

旧版 glibc 版本

较旧的 Linux 发行版(例如 Debian 7 和 CentOS 6)可能无法加载 Gitea 二进制文件,通常会产生类似于 ./gitea: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by ./gitea) 的错误。 这是由于 dl.gitea.com 提供的二进制文件中集成了 SQLite 支持。 在这种情况下,通常可以 从源代码安装,而不包含 SQLite 支持。

在另一个端口运行 Gitea

对于类似于 702 runWeb()] [E] Failed to start server: listen tcp 0.0.0.0:3000: bind: address already in use 的错误,Gitea 需要在另一个空闲端口启动。 可以使用 ./gitea web -p $PORT 实现。 可能 Gitea 的另一个实例正在运行。

在 Raspbian 上运行 Gitea

从 v1.8 开始,arm7 版本的 Gitea 存在问题,它无法在 Raspberry Pi 和类似设备上运行。

建议切换到 arm6 版本,该版本已在 Raspberry Pi 和类似设备上经过测试并证明可以正常运行。

更新到新版本 Gitea 后出现 Git 错误

如果在更新过程中,二进制文件名已更改为新版本的 Gitea,则现有存储库中的 Git 钩子将不再起作用。 在这种情况下,在向存储库推送时将显示 Git 错误。

remote: ./hooks/pre-receive.d/gitea: line 2: [...]: No such file or directory

错误消息中的 [...] 部分将包含您之前 Gitea 二进制文件的路径。

要解决此问题,请转到管理选项并运行任务 重新同步所有存储库的 pre-receive、update 和 post-receive 钩子 以更新所有钩子以包含新的二进制文件路径。 请注意,这将覆盖所有 Git 钩子,包括已进行自定义的钩子。

如果您没有使用 Gitea 内置的 SSH 服务器,您还需要通过在管理选项中运行 使用 Gitea SSH 密钥更新 '.ssh/authorized_keys' 文件 任务来重新写入授权密钥文件。