svn命令行使用说明
http://www.cnitblog.com/zouzheng/archive/2008/01/24/39280.html
1、同步(checkout)服务器数据到本地
svn checkout =svn co 从版本库取出一个工作拷贝。
例:把 目录同步到本地的 /usr/local/svn/book/network 目录
# cd /usr/local/svn/book; # svn checkout
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]
例:把 目录中的内容更新到本地
# 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
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
src-svn luci
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
阅读(8686) | 评论(0) | 转发(0) |