日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS7编译WD My Cloud下的SVN(Subversion)(附编译好的SVN的链接)

發布時間:2024/1/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS7编译WD My Cloud下的SVN(Subversion)(附编译好的SVN的链接) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CentOS7 下編譯 MyCloud的Subversion 特別說明,步驟參考http://www.cnblogs.com/keikain/p/7619741.html, 兩者操作系統不一樣,硬件版本不一樣。 步驟基本一樣 涉及包 WD_MyCloud_GPL_v2.30.165_20170321.tar.gz (可以下載https://support.wdc.com/downloads.aspx?p=269&lang=en) 相關庫:apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz expat-2.2.4.tar.bz2 sqlite-snapshot-201707212031.tar.gz subversion-1.9.7.tar.gz zlib-1.2.11.tar.gz 登錄到CentOS7終端 編譯環境配置 #設置編譯目錄,這里是home目錄,其他目錄則自行修改 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失敗可以自行搜索下載

編譯相關庫 1,apr 解壓: cd $WD_BUILD_DIR tar -zxvf?apr-1.6.2.tar.gz? cd?apr-1.6.2/

?

設置相關參數: 在configure前,需要修改下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 切記"gcc -Wall -O2...."這行前面要按Tab鍵添加制表符,接著開始configure: ./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

?

其中--prefix=$WD_INSTALL_DIR/test是我所設置的編譯好的庫的安裝路徑,大家可以根據自己的實際情況進行修改。另外ac_cv_sizeof_ssize_t=4 ac_cv_sizeof_size_t=4 ac_cv_sizeof_off_t=4需要重點說下,該參數如果不加入并不影響編譯過程,但是會在commit的時候會報如下錯誤: Corrupt?node-revision “0.0.t0-0” Malformed?text?rep?offset line in node-rev 開始編譯&安裝: make make install

?

2,expat 解壓: 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*相關的庫即可,可自行搜索下。

簡單我直接全部安裝了yum install docbook*? 3,apr-util 解壓: 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/

設置參數:

由于zlib的configure沒有--host可以指定編譯器和鏈接器,因此需要設置臨時的環境變量: 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前修改該文件,因為1.9.7版本在configure的時候會報如下錯誤: checking for Mach-O dynamic module iteration functions... configure: error: in `/home/test/workplace/subversion-1.9.7': configure: error: cannot run test program while cross compiling 我的方法比較暴力,直接刪除configure中的如下內容(紅色標識的內容): { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mach-O dynamic module iteration functions" >&5 $as_echo_n "checking for Mach-O dynamic module iteration functions... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <mach-o/dyld.h> #include <mach-o/loader.h> int main () { const struct mach_header *header = _dyld_get_image_header(0); const char *name = _dyld_get_image_name(0); if (name && header) return 0; return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : $as_echo "#define SVN_HAVE_MACHO_ITERATE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi 當然,這篇文章[1]給出了另一種解決方案,同樣修改configure,紅色替換為綠色(不要加號): { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mach-O dynamic module iteration functions" >&5 ? ? $as_echo_n "checking for Mach-O dynamic module iteration functions... " >&6; } ? ? if test "$cross_compiling" = yes; then : ? ? - ?{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ? ? -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ? ? -as_fn_error $? "cannot run test program while cross compiling ? ? -See \`config.log' for more details" "$LINENO" 5; } ??? + ?{ ? ? { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ? ? +$as_echo "no" >&6; } ? ? + } ? ? else ? ? cat confdefs.h - conftest.$ac_ext ? ? /* end confdefs.h. ?*/ 修改configure完畢后開始configure: ./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。

在configure完成后,需要修改Makefile文件, 對如下紅色部分進行修改: LIBS =? 修改后為: LIBS = -lpthread 就是讓工程鏈接工具鏈中的pthread庫,最后進行編譯&安裝: make make install

?至此,編譯工作就結束了,檢查一下看看:

cd?$WD_INSTALL_DIR/subversion/bin file subversion svnadmin 哈哈,可以看出,編譯出的版本為ARM版。 [lsheng@localhost bin]$ file svnadmin svnserve
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 安裝配置 拷貝可執行文件(svnadmin和svnserve): 接下來需要在My Cloud中進行配置,首先通過ssh登陸My Cloud,這里提一點,由于My Cloud自身的存儲空間有限(供安裝系統和相關應用的空間,不是指的/mnt下掛載的磁盤空間),因此,需要將subversion可執行文件放在/mnt下掛載的磁盤中,執行下列命令創建放置可執行文件的目錄: 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自身的存儲空間中創建倉庫,因為空間根本不夠,可以在掛載的磁盤中創建。

接下來需要分別修改倉庫的conf目錄下的相關文件,具體怎么修改,直接搜即可,有很多教程。 最后運行svnserve: sudo svnserve -d -r?/mnt/HD/HD_a2/svn

最后注意一點,-r后跟的目錄是到/mnt/HD/HD_a2/svn而不是/mnt/HD/HD_a2/svn/reps,切記!!

在電腦端運行小烏龜TortoisSVN試試,對應以上示例地址為: svn://192.168.1.102/reps 不出意外應該就可以checkout和commit了。 不想折騰的兄弟,我把編譯好的可執行文件給上傳了,直接下即可,以下為網盤地址。(切記!!型號不要搞錯了,該版本對應WD My Cloud ,固件版本是2.30) http://pan.baidu.com/s/1sl0pYNz 參考文獻: [1]?http://www.cnblogs.com/keikain/p/7619741.html

總結

以上是生活随笔為你收集整理的CentOS7编译WD My Cloud下的SVN(Subversion)(附编译好的SVN的链接)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。