BlueRoseNote/03-UnrealEngine/流程管理与部署/路由器与NAS/尝试在TUF-AX3000假设Gitea服务器.md
2023-06-29 11:55:02 +08:00

168 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 前言
之前买了华硕路由器趁着过年有空打算好好玩玩打算做个版本管理服务器啥。但最后因为买的机器内存只有0.5g又遇到运行gitea二进制文件报错的问题就没继续了。
> line 1: syntax error: unexpected "("
不过研究过程感觉有些意义便有了此文。之前建议先知道一下内核版本:
```
uname -a
```
本人的路由器为:
```
Linux TUF-AX3000-07F8 4.1.52 #2 SMP PREEMPT Sat Nov 7 03:08:27 CST 2020 armv7 GNU/Linux
```
另外本人不推荐购买ax3000。真要做版本管理服务器可能还是x86 CPU的NAS比较好。树莓派之前也尝试搭过gitlab基本处于崩溃边缘但用gitea就没问题。
## 对于USB2JFFS插件的U盘选择
USB2JFFS插件对U盘读写速度有要求同时也为了有更好的使用体验。所以本人购买了CHIPFANCIER U盘。品名为
>CHIPFANCIER固态U盘SSD 高性能纯金属 windows to go USB3.0旋转外壳 128G
这里不推荐使用金士顿以及闪迪的低端U盘。因为他们的写入速度都不会超过30MB/s都不符合USB2JFFS插件要求(35MB/s)。本人购买U盘的测速结果
```
【2021年02月16日 19:49:16】 USB磁盘[/dev/sda1]的三次平均顺序读取速度大约为263.16 MB/s
【2021年02月16日 19:49:16】 USB磁盘[/dev/sda1]的三次平均顺序写入速度大约为132.74 MB/s
【2021年02月16日 19:49:16】 USB磁盘[/dev/sda1]的读写速度符合USB2JFFS插件要求
```
使用这个插件还需要将U盘格式化成EXT4。可以使用diskgenius来进行格式化。
## 安装Entware
找到两种安装方法:
### 使用SCRIPTS BOOTLOADER FOR ASUS ROUTER
安装起来比较方便附带几个常用插件而且会将安装的内容都转移到U盘。但该插件只保证对在官方固件或梅林固件能完美运行。
安装过程:
1. 插入空白U盘
2. 登录ssh并输入命令
```
cd /tmp && wget -q -O /tmp/install_online --no-check-certificate "https://cdn.jsdelivr.net/gh/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER@latest/script_bootloader/bin/install_online" && chmod 777 /tmp/install_online && /tmp/install_online
```
3. 中间会有需要输入参数的环节在输入后回车即可(虚拟内存以及路由器账号密码)
参考文章:
- https://koolshare.cn/thread-138615-1-1.html
- https://github.com/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER/blob/master/How_to_Use_zh-CN.md#scripts-bootloader-for-asus-router-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
### 官方命令安装方法
安装命令:
```
mkdir /jffs/entware-ng.arm
ln -nsf /jffs/entware-ng.arm /tmp/opt
wget -O - http://pkg.entware.net/binaries/ ... /entware_install.sh | /bin/sh
echo "#!/bin/sh" > /jffs/scripts/services-start
echo "sleep 20" >> /jffs/scripts/services-start
echo "ln -ns /jffs/entware-ng.arm /tmp/opt" >> /jffs/scripts/services-start
echo "/opt/etc/init.d/rc.unslung start" >> /jffs/scripts/services-start
echo "#!/bin/sh" > /jffs/scripts/services-stop
echo "/opt/etc/init.d/rc.unslung stop" >> /jffs/scripts/services-stop
chmod a+rx /jffs/scripts/*
```
参考文章:
- https://www.cnblogs.com/YangGC/p/12524609.html
## 查看entware软件列表
安装之前最好看一些有哪些是可以安装的:
http://pkg.entware.net/binaries/armv7/Packages.html
- lighttpd
- node-npm
- node
- aria2
- git
- git-http
- nagix
不过很可惜没有docker所以gitea就必须手动部署了。
## Gitea
这里我尝试使用二进制安装方式。
参考文章:
- https://docs.gitea.io/en-us/install-from-binary/
- https://www.cnblogs.com/skymyyang/p/13606587.html
- https://www.cnblogs.com/azureology/p/13237221.html
## 其他环境安装
### Node.js
```
opkg install node
opkg install node-npm
```
之后安装request模块
```
npm install request
```
参考文章:
- https://koolshare.cn/forum.php?mod=viewthread&tid=189560&extra=page%3D2%26filter%3Dtypeid%26typeid%3D104
### PHP环境安装
使用的是ONMP
参考文章:
- https://zhih.me/onmp-installation/
#### EDE+Entware+ONMP搭建个人私有云Nextcloud
https://koolshare.cn/thread-137015-1-1.html
## 其他步骤
### 查看默认Bash位置
Enterprise 默认使用的shell即为bash shell。
```
echo $SHELL
```
## gitea
### 下载二进制文件
```
wget -O gitea https://dl.gitea.io/gitea/1.13.2/gitea-1.13.2-linux-amd64
chmod +x gitea
```
### 增加用户
文档中的命令为:
```
adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
```
但路由器系统默认没有adduser命令所以我们需要安装对应的模块
```
opkginstall shadow-common
opkginstall shadow-useradd
opkginstall shadow-groupad
opkginstall shadow-usermod
```
```
useradd \
--system \
--shell /bin/bash \
--comment 'Git Version Control' \
--create-home \
--home-dir /tmp/mnt/ASUS_ROUTER/home/git/ \
git
```
会遇到问题:
>useradd: cannot open /opt/etc/passwd
```
opkg install lsattr
opkg install chattr
```
PS.但到这一步还是遇到无法cannot open /opt/etc/passwd的问题之后尝试手动添加用户也宣告失败。但最后我发现可以在路由器的文件共享服务页面中添加用户。@-@
### 设置环境变量
```
export GITEA_WORK_DIR=/tmp/mnt/ASUS_ROUTER/var/lib/gitea/
```
### 将Gitea二进制文件复制到全局位置
```
cp gitea /tmp/mnt/ASUS_ROUTER/usr/local/bin/
```
## 运行Gitea
### 从命令行/终端运行
```
GITEA_WORK_DIR=/tmp/mnt/ASUS_ROUTER/var/lib/gitea/ /tmp/mnt/ASUS_ROUTER/usr/local/bin/gitea web -c /tmp/mnt/ASUS_ROUTER/etc/gitea/app.ini
```