Posts

daily operations of rpm

+查询验证操作 rpm -qpl xxxx.i386.rpm 查询软件包所有文件详细的安装位置 rpm -qpi xxxx.i386.rpm 查看软件包的详细资料信息 rpm -qp xxxx.i386.rpm 查看RPM包对应的软件包 rpm -qs xxxx 查询软件包对应的所有文件的状态 rpm -qa | grep xxxx 仅知道软件包名的关键字,查看有哪些相应软件包已经安装 rpm -qf xxxx 快速定位文件属于哪个软件包 rpm -Va xxxx 误操作后,查看什么文件缺失或者损坏 +安装/升级/移除操作 rpm -ivh xxxx.i386.rpm 普通安装 rpm -Uvh xxxx.i386.rpm 升级安装(软件包若不存在,相当于普通安装) rpm -e xxxx 软件包名必须精确,可以先查询后卸载

android makefile

================ android makefile ================ :Author: zxsu< suzp1984@gmail.com > :Date: $Date: 2011-2-15 $ :Revision: $Revision: 1 $ :Description: This is a document about android makefile system 概述 ==== 在android工程中有很多的device设备,例如在devices/目录中就有分别为htc和samsung的不同设备,android是如何知道应该编译那个设备呢?方法是这样的: 首先,我们在脚本里定义了target_product变量,并导入到环境变量中。然后,makefile会在vender和device目录下面寻找所有的AndroidProduct.mk文件, 此文件应该有变量PRODUCT_MAKEFILES,然后将此变量中的makefile文件中的变量导入进来,我们所能导入的值在_product_var_list列表中:: _product_var_list := \     PRODUCT_NAME \     PRODUCT_MODEL \     PRODUCT_LOCALES \     PRODUCT_PACKAGES \     PRODUCT_DEVICE \     PRODUCT_MANUFACTURER \     PRODUCT_BRAND \     PRODUCT_PROPERTY_OVERRIDES \     PRODUCT_CHARACTERISTICS \     PRODUCT_COPY_FILES \     PRODUCT_OTA_PUBLIC_KEYS \     PRODUCT_PA...

a shell script to download android source

#!/bin/bash repo sync while [ $? != '0' ]; do         repo sync done exit 0 以前看见过别人写个一个这样的脚本,最近下载gingerbread,repo sync老是不稳定,用上面的脚本就方便多了。

为python添加默认的模块搜寻位置

如何查看python默认的模块搜寻位置: >>import sys >>print sys.path 如果要添加自己的模块搜寻位置; >>sys.path.append('the/way/to/my/path') 当然也可以在dist-packages(即 /usr/local/lib/python2.6/dist-packages )添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的文件名称就是了.

使用Mercurial管理你的代码

 使用Mercurial管理你的代码 使用水银管理代码,首先它是分布式的管理系统,在这它用python开发,它跟git很相似,那么为什么还要mercurialn呢?难道git不好用吗?据说git只能在linux下工作,并且是linus花了两周时间写的。 1、Mercurial的使用 中文教程: http://mercurial.selenic.com/wiki/ChineseTutorial 最先用水银是用的google code提供的环境,由此可见google对python真是推崇的很哪!其实很简单跟svn的命令上区别不大。就是每次提交代码时都要输入用户密码之类的-麻烦(如何才能想svn那样认证一次就可以呢?)。 hg add filename hg ci -m "description" hg push 然后就提示认证信息了。 如何省去每次push认证的麻烦是修改.hg/hgrc文件 [path] default = https://<username>:<password>@...../ 2、hg跟svn的比较 见下面的链接: http://leeiio.me/googlecode-converting-svn-to-hg/ 与集中式版本控制工具SVN不同的是,Hg是一种分布式版本控制工具。 3. 使用教程      a. clone 克隆一份仓库到本地     b. 使用hg log查看历史记录         hg log -v (verbose) , -r1 (查看version 1), -p(显示 跟特定的version 的补丁文件)     c. clone一份本地仓库         hg clone repos1/ repos2/     d. 对repos2做修改:         hg status, revert, commit, diff, log     e. 使用pull命令...

awk应用之—C interface头文件产生器

awk应用之—C interface头文件产生器 最近一直在写absurd书中的的代码,以前写的时候就发现一个问题,因为写C的接口的头文件时,虽然很激动,但是写的次数多的之后就有些感觉无趣的,为什么呢?因为 它的模式比较固定,按照absurd的说法C语言的接口无非是一些回调函数跟相关的上下文而已, 尤其是在写头文件时,感觉如果回调函数比较多时就感觉在做重复劳动一样无趣。 以前的时候看ooc这本书,书中说到一个优先的程序员总是惯于使用一些自己的工具和库,而作者也使用awk开发一个工具来产生代码 ,于是当时我就想写一个自己产生这个头文件的工具。今天算是开工了,各位大哥不知道你们都有什么办法做这些无趣的工作,可否教教小弟! gen_c_interface.awk取得的方法: svn checkout http ://awk-scripting.googlecode.com/svn/trunk/ awk-scripting-read-only gen_c_interface.awk使用办法: 首先要建立一个rep文件(当然随便一个文件都OK),这个文件近包括回调函数的定义就OK了,那么我们的回调函数应该这样写: typedef Ret (*IteratorGetFunc)(Iterator* thiz, void** data); typedef Ret (*IteratorSetFunc)(Iterator* thiz, void* data); typedef Ret (*IteratorNextFunc)(Iterator* thiz); typedef Ret (*IteratorPrevFunc)(Iterator* thiz); typedef void (*IteratorDestroyFunc)(Iterator* thiz); 函数名中每个单词的首字母大写最后应该用Func结尾。如果您不这么写也没有关系就是得修改这个工具了。 然后就可以使用命令: awk -f gen_c_interfac.awk youfile.rep >> your_interface.h 于是乎interface文件就产生了,您就无须再敲代码累的手抽筋了。

qemu cpu模拟器

前段时间,看到有qemu这个东西,可以模拟cpu,来启动自己设定或修改的内核,不过听说他还是个虚拟机,可以用来安装其他的系统的。 我用它来启动的suse的内核,果然可以,就是内核启动后,可用的命令有限,不知道怎样关掉。不过仍然很兴奋,以后可以自己随便编译内核的参数,用它来测试就可以了。 1。建立虚拟的硬盘,qemu-img create linux.img 1G 2。启动内核 qemu -kernel vmlinuzfile -initrd initrd-file linux.img 使用ctrl-alt-f 可以在全屏之间转换的。