一、解压mycloud 系统源码:
tar zxvf WDMyCloud_GPL_Release_Notes_5.24.108_20220826.tar.gz
二、docker build创建容器:
cd WDMyCloud_GPL_Release_Notes_5.24.108_20220826
export HOME_DIR=`pwd`
cd $HOME_DIR/dockerfile
docker build -t gza_build_env .
三、进入容器:
docker run -it gza_build_env bash
查看容器ID ,另外开一个终端:docker ps
以上为svn 里面的资源文件;
docker cp svn 容器ID:/home //把SVN目录下的相关svn源码拷贝到容器
docker cp svn cb32d40d0cd5:/home //cb32d40d0cd5 这个是我新开容器的ID
四、编译apr
在docker中
sudo tar xvzf apr-1.6.3.tar.gz
cd apr-1.6.3
在另外的终端中将 apr_escape_test_char.h拷贝到include目录中:
docker cp apr_escape_test_char.h cb32d40d0cd5:/home/svn/apr-1.6.3/include
在docker中
sudo ./configure --prefix=/home/svn/apr-1.6.3 --host=arm-linux-gnueabihf ac_cv_file__dev_random=yes ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_tcp_nodelay_with_cork=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes ac_cv_sizeof_ssize_t=4 ac_cv_sizeof_size_t=4 ac_cv_sizeof_off_t=4 ac_cv_sizeof_struct_iovec=8 --cache=arm-linux.cache
参看:https://blog.csdn.net/weixin_44656934/article/details/90075806
sudo vim configure
$RM "$cfgfile" 将其注释即可
sudo vi Makefile.in
tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char)
$(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)
修改后的内容为:
tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char)
# $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)
gcc -Wall -O2 tools/gen_test_char.c -s -o tools/gen_test_char
sudo make
sudo make install
五、编译expat-2.2.4
docker 终端中:
sudo tar xvf expat-2.2.4.tar.bz2
cd expat-2.2.4
sudo ./configure --prefix=/home/svn/expat-2.2.4 --host=arm-linux-gnueabihf
sudo make
sudo make install
六、编译apr-util-1.6.1
docker 终端中:
cd apr-util-1.6.1
sudo ./configure --prefix=/home/svn/apr-util-1.6.1 --host=arm-linux-gnueabihf --with-expat=/home/svn/expat-2.2.4 --with-apr=/home/svn/apr-1.6.3
sudo make
sudo make install
七、编译sqlite-autoconf-3210000
docker 终端中:
sudo tar -zxvf sqlite-autoconf-3210000.tar.gz
cd sqlite-autoconf-3210000
sudo ./configure --prefix=/home/svn/sqlite-autoconf-3210000 --host=arm-linux-gnueabihf --enable-threadsafe
sudo make
sudo make install
八、编译zlib-1.2.11
docker 终端中:
sudo tar xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export LD=arm-linux-gnueabihf-ld
sudo ./configure --prefix=/home/svn/zlib-1.2.11
sudo vim Makefile
将里面的gcc 更改为arm-linux-gnueabihf-gcc
sudo make
sudo make install
九、编译subversion-1.9.7
docker 终端中:
sudo tar xvzf subversion-1.9.7.tar.gz
cd subversion-1.9.7
sudo ./configure --prefix=/home/svn/res/subversion --host=arm-linux-gnueabihf --with-apr=/home/svn/apr-1.6.3 --with-apr-util=/home/svn/apr-util-1.6.1 --with-sqlite=/home/svn/sqlite-autoconf-3210000 --with-zlib=/home/svn/zlib-1.2.11 --enable-all-static
在configure完成后,需要修改Makefile文件,
sudo vim Makefile
对如下红色部分进行修改:
LIBS =
修改后为:
LIBS = -lpthread
sudo make
sudo make install
至此,svn已经编译完成!!!
十、拷贝目标文件
在docker容器终端中:
打包目标文件
cd /home/svn/res/subversion
tar cvzf subversion.tar.gz ./
拷贝文件:
在另外的中端中:
docker cp cb32d40d0cd5:/ home/svn/res/subversion/subversion.tar.gz svn
十一、执行文件
使用mycloud app 将subversion.tar.gz 拷贝到 mycloud 目标机Public中
使用ssh client 连接到mycloud,解压文件
cd /mnt/HD/HD_a2/Public
tar xvzf subversion.tar.gz
ln -s /mnt/HD/HD_a2/Public/subversion/bin/svnadmin /usr/bin/svnadmin
ln -s /mnt/HD/HD_a2/Public/subversion/bin/svnserve /usr/bin/svnserve
在Public 中创建SVN 仓库:
mkdir SVN
sudo svnadmin create /mnt/HD/HD_a2/Public/SVN/reps
启动SVN服务
sudo svnserve -d -r /mnt/HD/HD_a2/Public/SVN
至此,svn 在mycloud中完美执行!!!!
十二、共享资源:
以下是我编译的可执行文件:
(65条消息) Mycloud可执行svn文件-Linux文档类资源-CSDN文库
编译过程中需要修改的文件:(65条消息) Mycloud编译SVN修改的编译文件-Linux文档类资源-CSDN文库
参考链接
https://article.itxueyuan.com/6RGjp
https://blog.csdn.net/windeal3203/article/details/79010422
https://www.kancloud.cn/woshigrey/docker/935884
https://baijiahao.baidu.com/s?id=1708726749585822590&wfr=spider&for=pc
https://blog.csdn.net/weixin_44656934/article/details/90075806
https://blog.csdn.net/cai_niaocainiao/article/details/117988727