export WD_ROOT_DIR=~
export WD_BUILD_DIR=$WD_ROOT_DIR/wd_build
export WD_INSTALL_DIR=$WD_ROOT_DIR/wd_install
mkdir -p $WD_BUILD_DIR $WD_INSTALL_DIR
cd $WD_BUILD_DIR
wget http://downloads.wdc.com/gpl/WD_MyCloud_GPL_v2.30.165_20170321.tar.gz
tar -xvf WD_MyCloud_GPL_v2.30.165_20170321.tar.gz
cd WD_MyCloud_GPL_v2.30.165_20170321/toolchain
tar -xvf armv7-marvell-linux-gnueabi-softfp_i686_64K_Dev_20131002.tar.gz
source source.me
下载相关库
cd $WD_BUILD_DIR
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.2.tar.gz
wget https://github.com/libexpat/libexpat/releases/download/R_2_2_4/expat-2.2.4.tar.bz2
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.0.tar.gz
wget http://www.hwaci.com/sw/sqlite/snapshot/sqlite-snapshot-201707212031.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.7.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz
如果wget失败可以自行搜索下载
cd $WD_BUILD_DIR
tar -zxvf apr-1.6.2.tar.gz
cd apr-1.6.2/
./configure --prefix=$WD_INSTALL_DIR/apr --host=arm-marvell-linux-gnueabi 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
make
make install
cd $WD_BUILD_DIR
tar -jxvf expat-2.2.4.tar.bz2
cd expat-2.2.4/
设置参数:
./configure --prefix=$WD_INSTALL_DIR/expat --host=arm-marvell-linux-gnueabi
编译&安装:
make
make install
在我make的时候好像报了个docbook2x什么的错误(当时安装时没有记下来),这个可以通过yum install 安装与docbook*相关的库即可,可自行搜索下。
cd $WD_BUILD_DIR
tar -zxvf apr-util-1.6.0.tar.gz
cd apr-util-1.6.0/
设置参数:
./configure --prefix=$WD_INSTALL_DIR/apr-util --host=arm-marvell-linux-gnueabi --with-expat=$WD_INSTALL_DIR/expat --with-apr=$WD_INSTALL_DIR/apr
编译&安装:
make
make install
4,sqlite
cd $WD_BUILD_DIR
tar -zxvf sqlite-snapshot-201707212031.tar.gz
cd sqlite-snapshot-201707212031/
设置参数:
./configure --prefix=$WD_INSTALL_DIR/sqlite --host=arm-marvell-linux-gnueabi --enable-threadsafe
其中--enable-threadsafe这个需要设置,不然在svnadmin create的时候会报错
make
make install
5,zlib
cd $WD_BUILD_DIR
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
设置参数:
export CC=arm-marvell-linux-gnueabi-gcc
export CXX=arm-marvell-linux-gnueabi-g++
export LD=arm-marvell-linux-gnueabi-ld
然后再configure:
./configure --prefix=$WD_INSTALL_DIR/zlib
编译&安装:
make
make install
6,subversion
cd $WD_BUILD_DIR
tar -zxvf subversion-1.9.7.tar.gz
cd subversion-1.9.7/
设置参数:
./configure --prefix=$WD_INSTALL_DIR/subversion --host=arm-marvell-linux-gnueabi --with-apr=$WD_INSTALL_DIR/apr --with-apr-util=$WD_INSTALL_DIR/apr-util --with-sqlite=$WD_INSTALL_DIR/sqlite --with-zlib=$WD_INSTALL_DIR/zlib --enable-all-static
这里为了编译出standalone的可执行文件,需要指定--enable-all-static。
make
make install
至此,编译工作就结束了,检查一下看看:
svnadmin: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped
svnserve: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped
cd /mnt/HD/HD_a2/Public/
mkdir subversion
这样就在磁盘上创建了subversion目录(这里,/mnt/HD/HD_a2/Public目录是我的Public共享目录的路径,或许每个人都不同),这时通过在windows资源管理器的地址栏中输入\\192.168.1.102即可访问到Public目录下的subversion目录,将编译好的subversion可执行文件(主要是svnadmin和svnserve)拷贝到subversion目录下。
ln -s /mnt/HD/HD_a2/Public/subversion/svnadmin /usr/bin/svnadmin
ln -s /mnt/HD/HD_a2/Public/subversion/svnserve /usr/bin/svnserve
建立仓库&运行:
mkdir -p /mnt/HD/HD_a2/svn/reps
svnadmin create /mnt/HD/HD_a2/svn/reps
以上命令会在/mnt/HD/HD_a2/svn目录下建立名为reps的仓库,当然在千万不要在My Cloud自身的存储空间中创建仓库,因为空间根本不够,可以在挂载的磁盘中创建。
sudo svnserve -d -r /mnt/HD/HD_a2/svn
最后注意一点,-r后跟的目录是到/mnt/HD/HD_a2/svn而不是/mnt/HD/HD_a2/svn/reps,切记!!