|
filebrowser 是一款网页版文件管理器,也可叫做nas,个人网盘等等,是git上一个免费开源的软件。服务器端用go语言编写,所以运行速度超快,安装简单,非常适合在路由器等低性能设备上运行。
好多网友想学怎么编译filebrowser。我以前写过一个教程,但不适合2.12以后的版本编译了,因为2.12以后的版本有些库没有windows版本,只能用linux编译。可大多数人都没有Linux设备,所以我还是写一下在windows下怎么编译filebrowser。大家学会了之后,就可以编译自己需要的版本,或者修改一些自己需要的功能(前端网页是用vue写的,非常容易修改)。
用windows编译filebrowser,
1. 需要先安装docker,再在docker里拉取ubuntu(一种linux)镜像。这时你就有linux环境了。
2. 然后再在ubuntu里安装go(编译后端要用)和nodejs(编译前端要用)。
3. 然后就可以在ubuntu里通过几个命令编译filebrowser了,非常简单。
1.1 安装docker:
从官网下载并安装好docker:
https://docs.docker.com/desktop/install/windows-install/
直接双击默认安装。但重启后可能会提示wsl2需要升级,从给出的地址下载wsl2升级包,安装上,之后再重启就好了。
在docker运行起来后,就可以在powershell里运行docker命令了 (>),不过这里推荐安装微软免费的Windows Terminal,比powershell好用很多。https://apps.microsoft.com/store ... ?hl=zh-cn&gl=cn
1.2 拉取ubuntu 镜像:
先在电脑的c盘里建立一个dshare文件夹(可以自己改名字),用于windows和linux相互交换文件。
在电脑上的docker运行起来后,在Windows Terminal里键入:
docker run -t -i --name="doing" -v /run/desktop/mnt/host/c/dshare:/dshare ubuntu:xenial-20210804 /bin/bash
* 这个命令拉取的是20210804的版本,也是我用的。大家可以在hub.docker.com里查找最新的ubuntu镜像。
* 这个命令会把windows c:\dshare 文件夹共享为ubuntu根目录里的share文件夹,使用起来非常方便。
运行完这个命令后就会进入到ubuntu终端了(#)。自此windows下的linux环境搭建完了。
2.1 安装go:
进入ubuntu环境并且配置源。这个ubuntu好像是一个最小的镜像,连基本的编辑器例如vim这些东西都没有,所以,要先依次执行:(从这里拷贝后,在windows terminal里点击鼠标右键直接粘结)
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list
apt update
apt upgrade
安装最新版的go,需要执行:
apt install wget
wget -c https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz -O - | tar -xz -C /usr/local
(去这里查最新版https://golang.google.cn/dl/
如:https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz,替换一下地址就好。
看看装好了吗:
cd /usr/local/go/bin
./go version 如果有显示版本好,就说明安装好了。
然后配置go的环境变量:
apt install vim
mkdir /home/gowork
vim ~/.bashrc
输入字母 i,进入插入模式,把光标移到最下面的蓝色#注释段上一行,回车,重启一行。
输入下面一整段 (拷贝后右键粘入):
export GOROOT="/usr/local/go"
export GOBIN=$GOROOT/bin
export GOPATH="/home/gowork"
export PATH=$PATH:/usr/local/go/bin
按esc 退出插入模式,
输入三个字母 :wq 保存文件并退出,(注意 :q是不保存退出)
重新加载新的PATH 环境变量到当前的 shell 会话:
source ~/.bashrc
go env (关键查看gopath路径是不是改成/home/gowork/了。把filebrowser源文件要放在gopath (/home/gowork/)里面编译))
自此,go 就安装完毕。
2.2 安装Nodejs
apt update
apt install npm 先安装npm
npm install -g n
mkdir -p /usr/local/n
mkdir -p /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
#更改为淘宝镜像源
echo 'export N_NODE_MIRROR="https://npm.taobao.org/mirrors/node"' >> ~/.bashrc
更新:
source ~/.bashrc
安装nodejs最新LTS版
n lts
更新npm到最新版:
npm install -g npm@latest
验证是否安装成功:
node -v 目前是16.17.0
npm -v 目前是8.19.0
3.1 然后就可以编译filebrowser了。
先从github上下载最新版的源文件:https://github.com/filebrowser/filebrowser/releases,注意下那个source code(.zip)。
解压后把filebrowser放到c:\dshare里。然后拷贝到go的工作目录:
cp -r /dshare/filebrowser /home/gowork/filebrowser
编译前端:
cd /home/gowork/filebrowser/frontend
npm config set registry http://registry.npm.taobao.org -- 使用淘宝的镜像网址
npm install (第一次运行可能要卡一会,得等个10多分钟)
npm run build
编译后端:
cd /home/gowork/filebrowser/
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOOS=windows
go env -w GOARCH=amd64
go get
go build
cp -rf /home/gowork/filebrowser/filebrowser.exe /dshare/filebrowser.exe
然后你就可以在c:\dshare文件夹里看见filebrowser.exe这个成品了。
3.2 跨平台编译。
上面编译的是在windows下运行的filebrowser.exe。
如果你想编译在linux amd平台上运行的filebrowser,则需要在编译后端时,把 go env -w GOOS=windows和go env -w GOARCH=amd64换成
go env -w GOOS=linux
go env -w GOARCH=amd64
如果想在k3路由器上运行,则需要换成:
go env -w GOOS=linux
go env -w GOARCH=arm
go env -w GOARM=5
编译之后,运行:cp -rf /home/gowork/filebrowser/filebrowser /dshare/filebrowser,之后就能在c:\dshare\filebrowser文件夹里找到filebrowser这个成品文件了。(注意和filebrowser.exe所在的文件夹不同)。
注意,其他平台也类似,比如小睿私人云用的是:
go env -w GOOS=linux
go env -w GOARCH=arm64 |
评分
-
查看全部评分
|