pydio的源码构建
IfileSpace,Cloudreve,NextCloud,FileRun,都折腾完了,前两个一个没手机端,一个还没发展完全,NextCloud老感觉不够纯粹,FileRun使用docker搭建的,但不是官方的,也有点不是滋味(啥都喜欢用最新的)。
pydio官方docker镜像只有amd64版(与FileRun一样),但是无意中发现新版使用Go语言重新编写,这意味着随处可安装,且easy。
开搞。
一、配置GO环境
官网下载对应包,进入/usr/local路径,咦,居然有go目录,输入go version
,好吧,已经有了还是最新版,看来这个系统自带了。删除下载的包,直接进入第二步。(哈哈,写完之后发现应该是以前安装的,大家自行去官网看教程安装。)
二、搭建pydio
-
根据文档先把Go模块配置改成自动。
go env -w GO111MODULE=auto
查看是否成功。注意留意下GOPATH后面的路径,待会需要。
go env
-
输入安装命令
go get -u github.com/pydio/cells
漫长的等待,buang,报错。配置Go代理
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct
要是哪个命令报错,使用unset重置下,比如:
unset GOPROXY
。继续输入安装命令,ok,已经有反应了,又是漫长的等待。
倒杯茶,做几个俯卧撑,慢悠悠地走到屏幕前。
嗯,满屏红色,喝茶都没心思了。
进入GOPATH目录,里面的pydio目录下,空空如也。
欸,我这暴脾气,非得给你运行起来。
反正就是网络原因,那我去到我的fq服务器。
配置完go环境,输入上面的安装命令。
几分钟后,哟,成了。GOPATH目录下,满满当当的pydio文件。
-
进入下载好的cell目录,编译源文件。
go build
几分钟后,cells文件成功生成。
-
拷贝cells到树莓派上运行。
# 进入cells文件目录 chmod +x ./cells ./cells start
回车后,我的瞳孔放大了,但是眉毛下拉了,还是timid报错。
好在这个错误我看得多了,就是架构不匹配,输入
file cells
发现文件是amd64的,这不就是官网那个文件吗。因为我是在amd64服务器上
go build
的,所以生成的是这个架构文件,没啥可说的。于是我去到Go官方文档,了解到了交叉编译,就是在服务器上可以编译其他平台的执行文件。
使用方法也很简单(为了这个简单,流逝了我几个小时)。
回到第3步,使用下面命令重新构建。
env GOOS=linux GOARCH=arm64 go build -o cells_arm64
成功生成,使用
file cells_arm64
得到应得的结果。 -
将树莓派之前的cells删掉,重新拷贝并命名cells,再次运行第四步。
有个小警告,解决下
vi /etc/security/limits.conf # 文件末尾加入下面两行 * soft nofile 16384 * hard nofile 16384
再次运行。全是不支持的驱动类型。
官网明文规定,只支持amd64系统,看来逆天改命无望。
朕也乏了,运行
rm cells
折腾下一款去。
三、总结
虽说无果而终,但是知道了go的交叉编译,知道了官网的白字黑字不是瞎说,也值当了。