168 lines
5.5 KiB
Markdown
168 lines
5.5 KiB
Markdown
## 前言
|
||
之前买了华硕路由器,趁着过年有空打算好好玩玩,打算做个版本管理服务器啥。但最后因为买的机器内存只有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
|
||
``` |