Chinaunix首页 | 论坛 | 博客
  • 博客访问: 275904
  • 博文数量: 34
  • 博客积分: 2236
  • 博客等级: 大尉
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-25 14:36
文章分类

全部博文(34)

文章存档

2016年(2)

2014年(1)

2012年(2)

2011年(3)

2010年(3)

2009年(5)

2008年(9)

2007年(3)

2006年(6)

分类: LINUX

2010-04-17 15:25:13

svn命令行使用说明

http://www.cnitblog.com/zouzheng/archive/2008/01/24/39280.html 

 1、同步(checkout)服务器数据到本地
    svn checkout =svn co  从版本库取出一个工作拷贝。
   
    例:把 https://svn.test.cn/book/network/ 目录同步到本地的 /usr/local/svn/book/network 目录
    # cd /usr/local/svn/book;      # svn checkout https://svn.test.cn/book/network/
   
 2、提交(commit)本地文档到服务器
    命令:  svn commit -m "" [directory|file]
            svn ci -m "" [directory|file]
    例:把 /usr/local/svn/book/network/tcpip.txt 提交到服务器,前提是服务器上已经有此文件。
    # cd /usr/local/svn/book/network/; # svn commit -m ""  # -m是记录的log信息,可以为空
    一般情况下,只要在需要更新的数据文件所在的目录执行 svn ci -m "" 即可。
   
 3、更新(update)服务器数据到本地
    命令:svn update [directory|file]              svn up [directory|file]
    例:把 https://svn.test.cn/book/network/ 目录中的内容更新到本地
    # cd /usr/local/svn/book/network;      # cd update
   
  4、查看日志     
  命令:   svn log [directory|file]
 
  例:查看 /usr/local/svn/book/network 目录的修改日志
  方法一:
  # cd /usr/local/svn/book/network;    # svn log
  法二:   
  # svn log /usr/local/svn/book/network
 
  5、增加 (add)本地数据到服务器
     命令:   svn add
     svn co svn://svn.openwrt.org/openwrt/trunk openwrt

源码编译安装openwrt

条件:
   系统:
    Debian 5.0:
    # aptitude install autoconf bison flex gawk ncurses-dev unzip zlib1g-dev
   
    Fedora 11:
    # yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext \ make ncurses-devel patch unzip wget zlib-devel
   
    openSuSE 11.1
    # zypper install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext \ make ncurses-devel patch unzip wget zlib-devel
   
    Ubuntu:
    $ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk flex
   
   目录空间:>10G

假设:工作目录为openwrt

获取OpenWrt主干
   mkdir wrt;cd wrt
   svn co svn://svn.openwrt.org/openwrt/trunk openwrt;cd openwrt
   这个命令会下载获取OpenWrt的基本系统,并存储在当前目录下的openwrt文件夹中。
   cd docs;make  cd docs;
   [root@bnet docs]# make
   mkdir -p /w/sou/openwrt/trunk/docs/../tmp
   make V=99 prereq
   make[1]: Entering directory `/w/sou/openwrt/trunk/docs'
   Checking 'pdflatex'... ok.
   Checking 'htlatex'... failed.
   Checking 'latex'... ok.
  
   docs: You need to install tex4ht to build the OpenWrt documentation
  
   make[1]: *** [prereq] Error 1
   make[1]: Leaving directory `/w/sou/openwrt/trunk/docs'
   make: *** [/w/sou/openwrt/trunk/docs/../tmp/.prereq-docs] Error 2
   yum install tetex-doc texi2html  -y   xxxx
  
    http://rpm.pbone.net/index.php3/stat/4/idpl/5811322/dir/redhat_el_5/com/pstoedit-3.45-2.el5.i386.rpm.html
    yum install ImageMagick ImageMagick-c++-devel -y
    wget ftp://ftp.pbone.net/mirror/ftp.freshrpms.net/pub/freshrpms/pub/dag/redhat/el5/en/i386/dries/RPMS/plotutils-2.5-1.el5.rf.i386.rpm
    wget ftp://mirror.switch.ch/pool/1/mirror/epel/5/x86_64/pstoedit-devel-3.45-2.el5.i386.rpm
    wget ftp://mirror.switch.ch/pool/1/mirror/epel/5/i386/pstoedit-3.45-2.el5.i386.rpm
    wget ftp://ftp.icm.edu.pl/vol/rzm1/linux-fedora/linux/epel/5/i386/tetex-tex4ht-1.0.2006_08_26_2341-2.el5.2.i386.rpm 
    rpm -ivh *.rpm
    make
        [root@bnet docs]# ll
        total 696
        -rw-r--r-- 1 oracle hzj   25431 Apr  4 10:43 adding.tex
        -rw-r--r-- 1 oracle hzj    2242 Apr  4 10:43 bugs.tex
        -rw-r--r-- 1 oracle hzj   25672 Apr  4 10:43 build.tex
        -rw-r--r-- 1 oracle hzj    3359 Apr  4 10:43 config.tex
        -rw-r--r-- 1 oracle hzj    2949 Apr  4 10:43 debugging.tex
        -rw-r--r-- 1 oracle hzj    2044 Apr  4 10:43 init-scripts.tex
        -rw-r--r-- 1 oracle hzj    1132 Apr  4 10:43 Makefile
        -rw-r--r-- 1 oracle hzj    2043 Apr  4 10:43 network-scripts.tex
        -rw-r--r-- 1 oracle hzj    7146 Apr  4 10:43 network.tex
        -rw-r--r-- 1 root   root   7040 Apr  8 21:12 openwrt.css
        -rw-r--r-- 1 root   root 313139 Apr  8 21:12 openwrt.html
        -rw-r--r-- 1 root   root 251495 Apr  8 20:19 openwrt.pdf
        -rw-r--r-- 1 oracle hzj     287 Apr  4 10:43 openwrt.sty
        -rw-r--r-- 1 oracle hzj    1047 Apr  4 10:43 openwrt.tex
        -rw-r--r-- 1 oracle hzj    2929 Apr  4 10:43 submitting-patches.tex
        -rw-r--r-- 1 oracle hzj   14878 Apr  4 10:43 wireless.tex
        -rw-r--r-- 1 oracle hzj    4178 Apr  4 10:43 working.tex
    cd ..

添加应用程序包(Add packages from extra feeds)

虽然基本系统可以build出FreeRunner的Image,但生成的Image缺少一些手机应用程序。
这些程序有额外的种子地址,使用这些种子地址的方法如下:
cp feeds.conf.default feeds.conf
然后编辑feeds.conf文件,并去掉efl(针对enlightenment)或phone(针对fso, paroli, ...)前面的注释符号#,
去掉#后文件内容可能就像下面:

src-svn packages svn://svn.openwrt.org/openwrt/packages
src-svn xwrt http://x-wrt.googlecode.com/svn/trunk/package
src-svn luci http://svn.luci.subsignal.org/luci/branches/luci-0.8/contrib/package
src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone
src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl
src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop
#src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce

请注意,这个设置并不表示这些应用程序包会被编译,
而只是在后面使用menuconfig命令时会获取这些包的描述信息(OpenWrt- Makefiles)。

现在,更新下载这些包的(OpenWrt-Makefiles)并提供(安装)它们:
scripts/feeds update -a
scripts/feeds install -a

配置(Configure target and packages)运行命令:
make menuconfig

我只选择了硬件相关的,这样.config最小化,其他的可以在网络ok后用opkg通过网络来安装。

Target System选项选择x86         :选择FreeRunner的目标平台
Target Profile 你可以选择两者之一:
    * Openmoko GTA-02 (full): 你可能会选用这个,因为它包含了enlightenment 和 paroli。
    * Openmoko GTA-02 (minimal): 这个仅仅包含最基本的OpenWrt packages,可能只有shell和一些命令行程序.

现在你便可以选择一些额外的包安装到你的Image当中,注意要选择为[*],如果你选择为[M],这样的包会被编译但不会加入到Image中,你可以在以后再安装它。
如果你想改变Freerunner的IP地址,要选择“[*] Image configuration”,在子菜单中可以改变Image的网络配置。
OpenWrt默认使用uclibc作为libc,你可以选择其他libc(如glibc)。
菜单是:"[*] Advanced configuration options (for developers)" -> "--- Toolchain Options" -> "LIBC implementation".
Enlightenment需求(Enlightenment requirements)

请使用最新的subversion(svn)软件。

生成Image(Build your OpenWrt image)

完成Image的配置后,你可以执行下面的命令来生成Image:

make

警告: OpenWrt build系统会根据选择的包依赖一些程序,如果选择了GTA-02 full profile, 会用到:

    * subversion and git to retrieve some external sources. (On Debian Lenny: subversion git-core)
    * full autotools suite. (On Debian Lenny: automake autoconf autotools-dev libtool pkg-config)
    * dbus-binding-tool to be able to compile "gsm0710muxd". (On Debian Lenny: libdbus-glib-1-dev)
    * autopoint and cvs is used by enlightenment building process. (On Debian Lenny: gettext cvs)

生成Image的过程可能会很久。请确认你有足够的磁盘空间(GTA-02 full profile大约需要4G的空间)

另外,你可以使用 "make V=99"命令,这个命令会输出build过程中的信息,这样你可以比较清楚的看到运行情况或出错情况。
烧写程序(Flash Neo FreeRunner)

Build过程结束后,你会在bin目录下发现:
[root@bnet openwrt]# ls -la bin/x86
total 294624
drwxr-xr-x 3 root root     4096 Apr 15 14:33 .
drwxr-xr-x 3 root root     4096 Apr 15 13:11 ..
-rw-r--r-- 1 root root     1040 Apr 15 14:15 md5sums
-rw-r--r-- 1 root root 50331648 Apr 15 14:15 openwrt-x86-generic-ext2.fs
-rw-r--r-- 1 root root 55222272 Apr 15 14:32 openwrt-x86-generic-ext2.image
-rw-r--r-- 1 root root  3003104 Apr 15 14:15 openwrt-x86-generic-ext2.image.gz
-rw-r--r-- 1 root root  4611072 Apr 15 14:15 openwrt-x86-generic-ext2.image.kernel
-rw-r--r-- 1 root root  1703940 Apr 15 14:14 openwrt-x86-generic-jffs2-128k.fs
-rw-r--r-- 1 root root 55222272 Apr 15 14:14 openwrt-x86-generic-jffs2-128k.image
-rw-r--r-- 1 root root  4611072 Apr 15 14:14 openwrt-x86-generic-jffs2-128k.image.kernel
-rw-r--r-- 1 root root  1638404 Apr 15 14:14 openwrt-x86-generic-jffs2-64k.fs
-rw-r--r-- 1 root root 55222272 Apr 15 14:14 openwrt-x86-generic-jffs2-64k.image
-rw-r--r-- 1 root root  4611072 Apr 15 14:14 openwrt-x86-generic-jffs2-64k.image.kernel
-rw-r--r-- 1 root root  1291253 Apr 15 14:14 openwrt-x86-generic-rootfs.cpio.gz
-rw-r--r-- 1 root root  1303410 Apr 15 14:14 openwrt-x86-generic-rootfs.tgz
-rwx------ 1 root root  1245188 Apr 15 14:14 openwrt-x86-generic-squashfs.fs
-rw-r--r-- 1 root root 55222272 Apr 15 14:14 openwrt-x86-generic-squashfs.image
-rw-r--r-- 1 root root  4611072 Apr 15 14:14 openwrt-x86-generic-squashfs.image.kernel
-rw-r--r-- 1 root root  1561232 Apr 15 14:14 openwrt-x86-generic-vmlinuz
drwxr-xr-x 2 root root    12288 Apr 15 14:15 packages

生成了一个rootfs文件 :openwrt-x86-generic-jffs2-128k.fs
和一个内核映像文件:openwrt-x86-generic-jffs2-128k.image

或者ext2格式的同上,这样你可以用linux命令dd来写入系统了:
cp openwrt-x86-generic-ext2.image.gz openwrt.ext2x86.gz;
gzip -x openwrt.ext2x86.gz ;dd if=openwrt.ext2x86 of=/dev/sdb
用sdb来启动系统即可。

参考文章:
https://dev.openwrt.org/wiki
http://wiki.openwrt.org/doc/howto/buildroot
http://wiki.openmoko.org/wiki/OpenWrt/zh_cn
阅读(7991) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~