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

5.5 KiB
Raw Blame History

前言

之前买了华硕路由器趁着过年有空打算好好玩玩打算做个版本管理服务器啥。但最后因为买的机器内存只有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
  1. 中间会有需要输入参数的环节在输入后回车即可(虚拟内存以及路由器账号密码)

参考文章:

官方命令安装方法

安装命令:

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/*

参考文章:

查看entware软件列表

安装之前最好看一些有哪些是可以安装的: http://pkg.entware.net/binaries/armv7/Packages.html

  • lighttpd
  • node-npm
  • node
  • aria2
  • git
  • git-http
  • nagix

不过很可惜没有docker所以gitea就必须手动部署了。

Gitea

这里我尝试使用二进制安装方式。

参考文章:

其他环境安装

Node.js

opkg install node
opkg install node-npm

之后安装request模块

npm install request

参考文章:

PHP环境安装

使用的是ONMP

参考文章:

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