从二进制文件安装
所有下载都包含 SQLite、MySQL 和 PostgreSQL 支持,并使用嵌入式资源构建。这可能与 Gogs 不同。
下载
您可以在 下载页面 找到与您的平台匹配的文件,然后导航到您要下载的版本。
选择正确的文件
对于 Linux,您可能需要 linux-amd64
。它适用于 64 位 Intel/AMD 平台,但还有其他平台可用,包括 arm64
(例如 Raspberry PI 4)、386
(即 32 位)、arm-5
和 arm-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_KEY
和INTERNAL_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
1. 创建一个服务文件以自动启动 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
。不要更改此名称,即不要包含版本号。
1. 使用 systemd 重新启动 Gitea(推荐)
如前所述,我们建议使用 systemd 作为服务管理器。在这种情况下,systemctl restart gitea
应该可以正常运行。
2. 不使用 systemd 重新启动 Gitea
要重新启动 Gitea 实例,我们建议使用 SIGHUP 信号。如果您知道 Gitea 的 PID,请使用 kill -1 $GITEA_PID
,否则您可以使用 killall -1 gitea
。
要优雅地停止 Gitea 实例,只需使用 kill $GITEA_PID
或 killall 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' 文件
任务来重新写入授权密钥文件。