【Git】linux搭建Gitea深度剖析!

WindowsServer搭建内网Gitea【中文更方便使用】

1. 安装Gitea

# 下载
wget https://dl.gitea.io/gitea/1.23.5/gitea-1.23.5-linux-amd64
# 这个是没管理员权限下载,下载后重命名文件为gitea
sudo wget https://dl.gitea.io/gitea/1.20.0/gitea-1.20.0-linux-amd64 -O gitea

2. 创建用户

# 创建 gitea 用户:这个命令的作用是创建一个名为 git 的系统用户,该用户使用 /bin/bash 作为默认 shell,添加了注释信息 Git Version Control,并且为其创建了主目录 /home/git
sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --create-home --home-dir /home/git git
# 创建 Gitea 数据目录,/opt/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
# sudo mkdir -p /opt/gitea/lib/gitea/{custom,data,indexers,public,log}
# 设置目录权限,sudo chown -R git:git /opt/gitea,sudo chmod -R 777 /opt/gitea
sudo chown -R git:git /var/lib/gitea
sudo chmod -R 777 /var/lib/gitea
# 创建配置文件目录。
sudo mkdir -p /etc/gitea
sudo chown git:git /etc/gitea
sudo chmod 777 /etc/gitea
# 将下载文件,移动到git目录
mv gitea-1.23.5-linux-amd64  /opt/gitea
# 应用执行权限:
sudo chmod +x gitea-1.23.5-linux-amd64

在这里插入图片描述

3. 配置 Gitea 服务

创建一个 Systemd 服务文件,用于管理 Gitea 服务:

sudo tee /etc/systemd/system/gitea.service <<EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysqld.service

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target
EOF

4. 配置防火墙

开放 Gitea 默认使用的端口(3000):

# 开放 3000 端口
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload

在这里插入图片描述

5.创建 Gitea 配置文件【如果没有root权限,或者权限不足,这一步要注意了,指定路径要指定在有权限目录】

创建 app.ini 配置文件,并进行数据库等相关配置:widnows在git\custom\conf目录

sudo tee /etc/gitea/app.ini <<EOF
APP_NAME = Gitea: Git with a cup of tea
RUN_MODE = prod

[server]
PROTOCOL = http
DOMAIN = 10.1.0.40
HTTP_PORT = 3000
ROOT_URL = http://10.1.0.40:3000/

[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = gitea
USER     = root
PASSWD   = root123
SSL_MODE = disable
PATH     = /var/lib/gitea/data/gitea.db

[repository]
ROOT = /var/lib/gitea/data/gitea-repositories

[session]
PROVIDER = file

[i18n]
LANGS = en-US,zh-CN
NAMES = English,简体中文
DEFAULT_LANG = zh-CN

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /var/lib/gitea/log
EOF

6. 启动 Gitea 服务

# 重新加载 Systemd 服务配置
sudo systemctl daemon-reload
# 启动 Gitea 服务
sudo systemctl start gitea
# 设置 Gitea 服务开机自启
sudo systemctl enable gitea
  • 如果启动不起来,或者git版本过低,看第 8,git建议2.0以上!

7. 完成安装

开浏览器,访问 http://10.1.0.40:3000/,按照页面提示完成 Gitea 的初始化配置,包括管理员账号设置等。

8.如果报错版本不一致或者过低

Gitea数据库设置无效: migrate: installed git version “1.8.3.1” is not supported, G

卸载原来的,重新安装新版git

  • 安装依赖

在升级 Git 之前,需要安装一些编译和构建 Git 所需的依赖包:

sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
sudo yum install -y gcc perl-ExtUtils-MakeMaker
  • 卸载旧版本的 Git

如果你之前安装的 Git 版本较低,可以先将其卸载:

sudo yum remove -y git
  • 下载并解压 Git 源码, 参考链接https://github.com/git/git/releases

从 Git 官方的 GitHub 仓库下载最新稳定版本的源码压缩包,并解压:


cd /opt
# 下载 Git 源码压缩包,这里以 2.8.3 版本为例,你可以根据需要更换版本,可以把安装包移动到git目录
wget https://github.com/git/git/archive/v2.8.3.tar.gz
# 解压压缩包
tar -zxf v2.8.3.tar.gz
cd git-2.8.3
  • 编译和安装 Git

在解压后的源码目录中,依次执行以下命令进行编译和安装:

# 配置编译选项
make configure
./configure --prefix=/usr/local/git
# 编译 Git
make all
# 安装 Git
sudo make install
  • 验证 Git 版本

安装完成后,验证 Git 的版本是否已经更新:重新登录新开个窗口!!!,配置环境变量,或者通过:

git --version
# 如果不展示,可以通过下面命令指定
ln -sv /usr/local/git/bin/git  /usr/bin/

确保输出的版本号是你刚刚安装的新版本(如 `git version 2.8.3`)。

- 重启 Gitea 服务

更新 Git 版本后,重启 Gitea 服务使更改生效:

```bash
sudo systemctl restart gitea
  • 重新进行 Gitea 数据库设置

完成以上大概率99.9%就成功了,也有可能小伙伴没有/etc/,/usr/local/bin,/var/lib权限,看我上面提示!

  • select * from user;表中is_admin=1为管理员。

如果安装后,启动不起来,一定要检查一下几个地方 :缺包 git 安装成功!版本建议新一点!通过git --version查看!

  • 配置文件!/etc/gitea/app.ini,路径一定要在/etc/systemd/system/gitea.service配置正确

/etc/systemd/system/gitea.service文件详细解释:

[Unit]
Description=Gitea (Git with a cup of tea) # 随便写
After=syslog.target
After=network.target
After=mysqld.service # 如果使用mysql数据库要写,使用自带sqllite3,不用写

[Service]
RestartSec=2s
Type=simple
User=git    # sudo adduser --system --shell /bin/bash --comment 'Git ' --create-home --home-dir /home/git git
Group=git    # 上面值一样就行,如果使用gitea,就保持统一,用户名,用户组
WorkingDirectory=/var/lib/gitea   # 缺包目录存在,我是用的opt/gitea/lib/gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini   #    ExecStart值需要时你git安装的路径,用whereis git查看,后面指定app.ini路径
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea   #  缺包目录存在,目录不要重名!

[Install]
WantedBy=multi-user.target

/opt/gitea/app.ini 详解:

APP_NAME = Gitea: =自己命名=
RUN_MODE = prod

[server]
PROTOCOL = http
DOMAIN = 10.1.0.41 # 服务器地址
HTTP_PORT = 3000 #端口号
ROOT_URL = http://10.1.0.41:3000/ # ip+port

[database] # 重点!如果使用mysql,一定要先装mysql!,否则启动不起来!
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD = 
SCHEMA = 
SSL_MODE = disable
PATH = /opt/gitea/data/gitea.db

[repository]
ROOT = /opt/gitea/data/gitea-repositories

[session]
PROVIDER = file

[i18n]
LANGS = en-US,zh-CN
NAMES = English,简体中文
DEFAULT_LANG = zh-CN

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /opt/gitea/log  # 缺包目录存在

[git]  # 指定git的目录,whereis git 查看
EXEC_PATH = /usr/local/git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值