







Posted by
lizzie
at
下午11:02
0
comments
Labels: My Friend--YUYU, 玩
2007年,发生了很多的事情,好事、坏事、特别的事、平淡的事、快乐的记忆、悲伤的感受,很多都很难让我忘记。。。
2007年的上半年,是我本科的最后一学期,上课,保研,导师,游玩,毕业,分离等等。记得那时的抉择很难,到底是工作还是研究生困扰了我很久很久。因为 那时已经糊里糊涂的被推荐免试,但我心里真的很想工作,是非常非常的想,但又很怀疑自己的能力,自己那时出去到底能干什么;另一方面,研究生的三年会不会 很浪费我的时间,但是不去念的话自己的诚信怎么办,自己占了别人的名额而又不去念,就是个浪费,但我心里真的很不想待学校了,那时的自己真的已经厌倦了做 学生,厌倦了自己独立的学习,厌倦了走遍大半个校园只为了找个安静舒服的自习教室,也厌倦了同学的提问,厌倦了同学眼中一直是好学生的形象,厌倦了那个四 年都几乎没发生变化的环境,一个人在同一环境中呆久了很会懒惰或者变得毫无目的,我希望不断的变化。。。所以像这种类似的思考不知道那时想了有多少遍,呵 呵~然后后来我还是没办法的选择继续读研,不知道是否错了,不过现在后悔也没用了。即来之则安之,话是这么说没错,但有时真的很不想“安之”。然后是导师 的事情,本来是跟徐老师的,一直是这么认为的,也看了图形学的东西,学了点MFC,但同样后来也变了,变成了李老师,虽然那时我很想跟李老师,因为以为他 是搞硬件的,然后也离并行机近点。不过这样的改变即高兴又失望,更搞笑的是首先告诉我这个消息的还是徐老师,所以对他总是很不好意思。所以我一直认为我们 学校的保研工作实在是做的太差了,我的什么都不知道,糊里糊涂~接着,跟着李老师,参加了第一次的集中,第一次去还是很紧张的,听大师兄cjj做的报告, 不懂~但那时我很期待每个星期四的集中,现在想想是那么的傻不垃圾,因为每个人都把集中当成是负担任务,现在我也看透了中国目前的学术界,真正搞研究的到 底有几个!不管了,我做好自己就是了。。。不过大四这学期玩的地方倒是很多,办了张年票,和鱼一起出去逛园子,一起吃东西,一起逛街等等,现在想想毕业前 最美好的回忆就是这个了。接着毕业典礼,散伙饭和分离,呵呵,突然想到一个插曲,毕业典礼的第二天本来是送同学的,但是我却陪鱼去了趟医院,也是她在扬州 进的最后一次医院,呵呵,真是搞笑,她毕业之前还得进医院检查身体,幸亏没什么事。回来之后已经好多同学都走了,不过我还是送了我很好的朋友syj, qgh,没有眼泪,平静的送他们。渐渐的,校园里熟悉的人一个一个的变少,直到留下我一个,身边熟悉的人都没有,只有xy和我一起度过那炎热的暑假。暑假 里,搬到了条件极差的28栋,但是这个暑假很难忘,同一宿舍四个人都是那么的好,那时我几乎天天闹笑话,天天开心的笑,接着在实验室也是学了好多好多新的 东西,eclipse,ubuntu——我又开始了linux的学习,真的很感兴趣,因为大四一年的中断,使得我更加努力的学习linux,另外还有lt 师兄也帮了我很大的忙。对于数据挖掘和实验室的集中论文,这倒是让我看开了许多许多,形式形式,再没有毕业前去集中的那种心情。这些这些都让我明白了一件 最重要的事,一切都得靠自己。。。接着暑假回家待了无聊的20天后又回到了学校。还是继续回家前做的事情,学习是永远不变的话题。接着搬宿舍,和ws住在 了一起,和她相处让我最大的感受是,我和她不是一个圈子的人,因为各自的价值观人生观非常不同。然后平淡的开学,经过了开学典礼才知道,研究生是非常非常 的多,并且其中一些人的素质也不咋地,这让我非常怀疑中国的教育制度。还有就是我们自己买了锅子,自己煮饭,不用去吃食堂那难吃的饭了。开学后的上课,杂 事,大事小事也是一大堆。当然最重要的还是孤独的自学。我非常清楚的(并且不会忘记)十月一号的前一天发生的事,a wonderful chance finally knocked at my door,and I cacth it。接着不断努力的学习很多东西,python,linux管理,django,并行机,许多新的名词等等等等,专业上我看了数据挖掘的基础,fca, 还有好多的英文资料,很多很多。同时在这之间也发现了我很多优点和缺点,我对事物充满好奇,对计算机充满热情,但是同时我也发现我真是学的杂七杂八,这些 好多都是我接下去得时刻提醒自己的东西。到了12月伊始,外公病危,我赶回家的那天连最后一面都没见到。在家的那些天,充分体回到亲情的重要,还有婚姻、家 人、人生、活着、生离死别。回忆是多么珍贵,但仅仅和永远成为回忆了。那时我才发现我是那么的脆弱,那么的哭,那么的控制不住自己,很多很多。。。回校后 又有一大堆的事情,同样还是杂七杂八,又加上自己一个人的承担一切,还有一些误会让我很是郁闷,但我总是对自己说,开心每一天,充实每一天,多多 smile。所以现在我能够接受更多事情。
这就是我这一年的回顾,对于展望,我能够很明确的说,我要好好学习,好好做研究,好好编程,只是因为我充满热情,充满目标,我要我的人生不会后悔,我要做许多事情,实现我的很多东西,我要活得有意义,我要我的人生充满精彩。
另外这一年玩的倒是很多,何园,个园,瘦西湖,润扬大桥,古运河好多好多。。。
Posted by
lizzie
at
下午1:27
0
comments
Labels: 随笔
Linux
在ubuntu7.04,python2.5
使用ORBit:需安装python-pyorbit(A Python language binding for the ORBit2 CORBA)
使用omniORB:需安装omniORBpy2
Python Web 服务开发者: 消息传递技术比较http://www.ibm.com/developerworks/cn/webservices/ws-pyth/part9/index.html
tcpdump使用
tcpdump -i lo -ae -s 0 -w /tmp/packets.txt
还有许多其他您可以使用的选项(例如,您可以用端口或主机名进行过滤),但是对于这种简单的情况,这些选项就足够了。
-i lo选项告诉 tcpdump要侦听哪个接口(在这个例子中要侦听回送设备)。 a 选项试着将地址转换成名称。 e 选项表示在输出中要包含链路层头信息。 s 0 告诉 tcpdump 您想得到每个数据包主体中的所有数据。(如果您想让 tcpdump 只保持每个数据包一定数量的字节,请输入所期望的字节数来代替此处的零。)最后一个选项告诉 tcpdump 将机器检查到的所有数据包复制到一个名为 /tmp/packets.txt 的文件中。请注意,上面的命令行适用于 Linux 机器,并且您可能需要拥有 root 权限或管理员权限才能运行 tcpdump 。
Posted by
lizzie
at
上午8:11
0
comments

今天是圣诞节,还有40分钟就要过去了,但还是要写点东西,因为好久没写博客了。
自从考完学位英语来,一直忙啊忙的。星期日下午至晚上我学了mpi编程基础,以后就能好上手了。然后第二天,就是星期一我开始了godin的优化,这里面思考了很多东西,昨天晚上回到宿舍真是晕乎晕乎的,因为一整天都在对着代码,现在才发现,忙得时候是真的想不到要去吃东西的,感觉时间紧迫,真希望就别吃饭了。呵呵,减肥正好。今天还是的,早上下午虽然都是有课的,但是尽量挤时间,把godin的时间降下来,现在总算能够稍微满意了,不过还有好多要考虑的地方。接着今天晚上,就是刚才,要生成模糊格。因为之前只是知道个基本概念,现在要写出来,还是得好好研究的。另外,当然不懂就要问师兄他们,呵呵,那篇文章还是师兄们写的,不过,他们说的话我有点点失望哦,就是关于做研究的,现在国内是有很多文章copy来copy去的,但是他们能够这样,我不管,我自己不要这样,我既然学了,那我一定得好好学,不能浪费,不然学3年到底能够学到什么,我觉得不止是理论,更重要的是学习一种方法,学习的方法,解决问题的方法,和人交流的方法,更重要的一点是,学习一种态度,为人处事的态度,很重要。
最近真的很有想法,想学好多东西,学不完~呵呵。
对了,昨天我打电话给鱼鱼,呵呵,只打了七分钟,不过后来她又打我,聊了好长一会。她在泰国很苦但是我认为很酷,因为这样真能锻炼一个人的各个方面,特别是承受压力。我好想她的,真希望明年的八月快点到来,让我看看全新的她,成熟的她,英语说的很溜的,泰语也懂得她,还有。。。。。。。同样,也让她看看我的变化,我的不同。。。。真的很miss以前我们一起的时候,一起吃,一起逛街,呜呜,我都好久没出去玩了。还是和她在一起舒服,各自都有自己的个性,但同时又会为对方考虑。真的希望明年的八月,我们要一起出去玩,她回来之后肯定很厉害,在管理方面,我要多多向她学习。以后搞不好还能一起合作呢,呵呵。
另外,我要好好努力,鱼在奋斗,我也要奋斗,以后能够创造出美好的未来。加油!everyone
Posted by
lizzie
at
下午11:43
0
comments
Labels: 随笔
MPI库函数介绍
1、MPI初始化
MPI_INIT()
int MPI_Init(int *argc, char ***argv)
//MPI_INIT是MPI程序的第一个调用它完成MPI程序所有的初始化工作所有MPI程序的第一条可执行语句都是这条语句
2、MPI结束
MPI_FINALIZE()
int MPI_Finalize(void)
//MPI_FINALIZE是MPI程序的最后一个调用它结束MPI程序的运行它是MPI程序的最后一条可执行语句否则程序的运行结果是不可预知的
3、当前进程标识
MPI_COMM_RANK(comm,rank)
IN comm 该进程所在的通信域句柄
OUT rank 调用进程在comm中的标识号
int MPI_Comm_rank(MPI_Comm comm, int *rank)
//这一调用返回调用进程在给定的通信域中的进程标识号有了这一标识号不同的进程就可以将自身和其它的进程区别开来实现各进程的并行和协作
4、通信域包含的进程数
MPI_COMM_SIZE(comm,size)
IN comm 通信域句柄
OUT size 通信域comm内包括的进程数整数
int MPI_Comm_size(MPI_Comm comm, int *size)
//这一调用返回给定的通信域中所包括的进程的个数不同的进程通过这一调用得知在给定的通信域中一共有多少个进程在并行执行
5、消息发送
MPI_SEND(buf,count,datatype,dest,tag,comm)
IN buf 发送缓冲区的起始地址(可选类型)
IN count 将发送的数据的个数(非负整数)
IN datatype 发送数据的数据类型(句柄)
IN dest 目的进程标识号(整型)
IN tag 消息标志(整型)
IN comm 通信域(句柄)
int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
//MPI_SEND将发送缓冲区中的count个datatype数据类型的数据发送到目的进程,目的进程在通信域中的标识号是dest,本次发送的消息标志是tag,使用这一标志就可以把本次发送的消息和本进程向同一目的进程发送的其它消息区别开来。MPI_SEND操作指定的发送缓冲区是由count个类型为datatype的连续数据空间组成,起始地址为buf ,注意这里不是以字节计数而是以数据类型为单位指定消息的长度,这样就独立于具体的实现并且更接近于用户的观点。其中datatype数据类型可以是MPI的预定义类型也可以是用户自定义的类型,通过使用不同的数据类型调用MPI_SEND 可以发送不同类型的数据
6、消息接收
MPI_RECV(buf,count,datatype,source,tag,comm,status)
OUT buf 接收缓冲区的起始地址(可选数据类型)
IN count 最多可接收的数据的个数(整型)
IN datatype 接收数据的数据类型(句柄)
IN source 接收数据的来源即发送数据的进程的进程标识号(整型)
IN tag 消息标识与相应的发送操作的表示相匹配相同(整型)
IN comm 本进程和发送进程所在的通信域(句柄)
OUT status 返回状态 (状态类型)
int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
//MPI_RECV从指定的进程source接收消息并且该消息的数据类型和消息标识和本接收进程指定的datatype和tag相一致,接收到的消息所包含的数据元素的个数最多不能超过count。接收缓冲区是由count个类型为datatype的连续元素空间组成,由datatype指定其类型,起始地址为buf 接收到消息的长度必须小于或等于接收缓冲区的长度。这是因为如果接收到的数据过大,MPI没有截断接收缓冲区,会发生溢出错误,因此,编程者要保证接收缓冲区的长度不小于发送数据的长度。如果一个短于接收缓冲区的消息到达,那么只有相应于这个消息的那些地址被修改。count可以是零,这种情况下,消息的数据部分是空的。其中datatype数据类型可以是MPI的预定义类型也可以是用户自定义的类型通过指定不同的数据类型调用MPI_RECV 可以接收不同类型的数据
7、返回状态status
//它是MPI定义的一个数据类型使用之前需要用户为它分配空间。
在C实现中,状态变量是由至少三个域组成的结构类型。这三个域分别是MPI_SOURCE,MPI_TAG和MPI_ERROR。它还可以包括其它的附加域,这样通过对status.MPI_SOURCE,status.MPI_TAG 和status.MPI_ERROR的引用就可以得到返回状态中所包含的发送数据进程的标识,发送数据使用的tag标识和本接收操作返回的错误代码
//对status变量执行MPI_GET_COUNT调用可以得到接收到的消息的长度信息
8、MPI的数据类型与C中数据类型对应关系
MPI_CHAR|ed char
MPI_SHORT |signed short int
MPI_INT| signed int
MPI_LONG| signed long int
MPI_UNSIGNED_CHAR| unsigned char
MPI_UNSIGNED_SHORT |unsigned short int
MPI_UNSIGNED |unsigned int
MPI_UNSIGNED_LONG |unsigned long int
MPI_FLOAT |float
MPI_DOUBLE |double
MPI_LONG_DOUBLE |long double
MPI_BYTE |无对应类型
MPI_PACKED |无对应类型
MPI_LONG_LONG_INT| long long int(附加的另外有)
在进程间消息传递涉及到类型的匹配
MPI的消息传递过程可以分为三个阶段
消息装配:将发送数据从发送缓冲区中取出加上消息信封等形成一个完整的消息
消息传递:将装配好的消息从发送端传递到接收端
消息拆卸:从接收到的消息中取出数据送入接收缓冲区
---类型的严格匹配,疑问?能否不同的语言间但同样的类型间进行,中间用MPI类型过渡
上述类型匹配规则的例外是对于MPI提供的MPI_BYTE和MPI_PACKED 。它们可以和任何以字节为单位的存储相匹配,包含这些字节的类型是任意的,MPI_TYPE用于不加修改地传送内存中的二进制值。MPI_PACK用于数据的打包和解包MPI_UNPACK。
归纳起来,类型匹配规则可以概括为
l 有类型数据的通信:发送方和接收方均使用相同的数据类型
l 无类型数据的通信:发送方和接收方均以MPI_BYTE作为数据类型
l 打包数据的通信:发送方和接收方均使用MPI_PACKED
9、数据转换(X)
数据类型的转换是指改变一个值的数据类型,比如将实型转换为整型,通过舍入操作或将整型转换为实型等
而数据表示的转换是指改变一个值的二进制表示,比如高字节和低字节顺序的改变将浮点数从32为表示改变为64为表示等。由于MPI严格要求类型匹配,所以在MPI中不存在数据类型转换的问题。但是MPI必须实现数据表示的转换,这是因为MPI的目的之一是对异构环境的支持在异构系统中不同的系统其数据的内部表示往往是不同的。因此MPI必须负责实现这些不同表示之间的相互转换。
10、MPI消息
MPI消息包括信封和数据两个部分,信封指出了发送或接收消息的对象及相关信息而数据是本消息将要传递的内容。信封和数据又分别包括三个部分可以用一个三元组来表示
信封<源/目,标识,通信域>
数据<起始地址,数据个数,数据类型>
11、任意源和任意标识
MPI_ANY_SOURCE,MPI_ANY_TAG
由于MPI_ANY_SOURCE和MPI_ANY_TAG的存在导致了发送操作和接收操作间的不对称性,即一个接收操作可以接收任何发送者的消息但是对于一个发送操作则必须指明一个单独的接收者。
MPI允许发送者=接收者Source = destination 即一个进程可以给自己发送一个消息,但是这种操作要注意死锁的产生。
12、MPI通信域
MPI通信域包括两部分:进程组和通信上下文。进程组即所有参加通信的进程的集合,如果一共有N个进程参加通信,则进程的编号从0到N-1 。通信上下文提供一个相对独立的通信区域,不同的消息在不同的上下文中进行传递,不同上下文的消息互不干涉,通信上下文可以将不同的通信区别开来。
一个预定义的通信域MPI_COMM_WORLD由MPI提供MPI初始化后便会产生这一描述子,它包括了初始化时可得的全部进程。进程是由它们在MPI_COMM_WORLD组中的进程号所标识。
用户可以在原有的通信域的基础上定义新的通信域,通信域为库和通信模式提供一种重要的封装机制,他们允许各模式有其自己的独立的通信域和它们自己的进程计数方案。
////////////////////////////////////////////////////////////////实例
1、用MPI实现计时功能
MPI_WTIME()
double MPI_Wtime(void)
//MPI_WTIME返回一个用浮点数表示的秒数, 它表示从过去某一时刻到调用时刻所经历
的时间
MPI_WTICK()
double MPI_Wtick()
//MPI_WTICK返回MPI_WTIME的精度单位是秒可以认为是一个时钟滴答所占用的时间
2、获取机器的名字和MPI版本号
MPI_GET_PROCESSOR_NAME( name, resultlen )
OUT name 当前进程所运行机器的名字
OUT resultlen 返回名字的的长度以可打印字符的形式
int MPI_Get_processor_name ( char *name, int *resultlen)
MPI_GET_VERSION(version, subversion)
OUT version
OUT subversion
int MPI_Get_version(int * version, int * subversion)
3、是否初始化及错误退出
MPI_INITALIZED(flag)
OUT flag MPI_INIT是否已执行标志
int MPI_Initialized(int *flag)
//MPI_INITALIZED判断当前进程是否已经调用了MPI_INIT 若已调用则flag=true 否则flag=false
//在编写MPI程序的过程中,若发现已出现无法恢复的严重错误,因而只好退出MPI程序的执行。MPI提供了这样的调用并且在退出时可以返回给调用环境一个错误码。
MPI_ABORT使通信域comm中的所有进程退出。本调用并不要求外部环境对错误码采取
任何动作
MPI_ABORT(comm, errorcode)
IN comm 退出进程所在的通信域
IN errorcode 返回到所嵌环境的错误码
int MPI_Abort(MPI_Comm comm, int errorcode)
4、编写安全的MPI程序
主要是防止进程间死锁的产生,两个进程的接受和发送要对应相互的错开
另外一点,在缓冲模式下,防止发生进程对系统缓冲区的操作冲突
5、MPI并行程序的两种基本模式:对等模式(SPMD)和主从模式(MPMD)
SPMD————Jacobi 迭代(不懂fortran)
Posted by
lizzie
at
下午2:51
0
comments
查看代码段时间等
http://ywjseo.javaeye.com/blog/61420
hotspot, timeit
来自:http://www.cublog.cn/u/13637/showart.php?id=205254
|
|
二、用字典的值得到它对应的键,key 与 value 在字典项中的位序是一致的。
|
|
Posted by
lizzie
at
下午8:26
0
comments
关于Trac,补记于2008年8月7日
安装apache+subversion+trac+mod_python完整过程记录,未整理的,doc上有整理过的。
1、安装apache
下载httpd-2.2.6并解压
$ ./configure --prefix=/home/shengyan/software/apache2
出现...checking for C compiler default output file name... configure: error: C compiler cannot create executables,找到帖子说install glibc6-dev,通过新立得安装glibc6-dev
$ make
$ make install
$ /home/shengyan/software/apache2/bin/apachectl start
出现httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
这里由于80端口是系统保留端口?修改conf/httpd.conf中Listen port为8888 ServerName为127.0.0.1:8888
###完毕
2、安装python2.5.2
下载python2.5.2并解压
$ ./configure --prefix=/home/shengyan/software/python2.5.2
$ make
$ make install
###完毕
3、安装mod_python-3.3.1
下载mod_python-3.3.1并解压wget http://apache.mirror.phpchina.com/httpd/modpython/mod_python-3.3.1.tgz
$ ./configure --with-apxs=/home/shengyan/software/apache2/bin/apxs --with-python=/home/shengyan/software/python2.5.2/bin/python # 这里未出现cjj的错误
$ make
$ make install
###完毕,检查apache2/modules中存在mod_python.so了
4、安装subversion-1.4.3
下载http://subversion.tigris.org/downloads/subversion-1.4.3.tar.gz并解压
下载http://subversion.tigris.org/downloads/subversion-deps-1.4.3.tar.gz并解压到同一文件夹中
$ ./configure --with-apr=/home/shengyan/software/apache2 --with-apr-util=/home/shengyan/software/apache2 --with-apxs=/home/shengyan/software/apache2/bin/apxs --prefix=/home/shengyan/software/subversion #--with-apxs表示作为apache模块安装,--prefix为安装位置,--with-apr为?
出现configure: error: subversion requires zlib
找到http://www.linuxdiyf.com/bbs/redirect.php?tid=85350&goto=lastpost解决zlib问题如下:
1) cd zlib # 这个目录是subversion-deps-1.4.3.tar.gz中解压出来的
2) ./configure --shared
3) make
4) cd ..
再次$ ./configure --with-apr=/home/shengyan/software/apache2 --with-apr-util=/home/shengyan/software/apache2 --with-apxs=/home/shengyan/software/apache2/bin/apxs --prefix=/home/shengyan/software/subversion
configure: error: no XML parser was found: expat or libxml 2.x required
configure failed for neon#查看了现有,已经安装有libxml2,则安装expat后还是报错,google找,somebody说libssl(俺已经装好什么ssl了)、expat(装好expat后,还是依然错误)、但新立得中总没有expat-dev,只能另想他法,那既然没有expat-dev,那我就装libxml-dev吧。ok
再次$ ./configure --with-apr=/home/shengyan/software/apache2 --with-apr-util=/home/shengyan/software/apache2 --with-apxs=/home/shengyan/software/apache2/bin/apxs --prefix=/home/shengyan/software/subversion
# yeah 总算不报错了
$ make
出现/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] 错误 1 看来还是expat有问题,so dmt,下载expat重新安装完毕。路径为/home/shengyan/software/expat2
#重新configure
$ ./configure --with-apr=/home/shengyan/software/apache2 --with-apr-util=/home/shengyan/software/apache2 --with-apxs=/home/shengyan/software/apache2/bin/apxs --prefix=/home/shengyan/software/subversion LDFLAGS="-L/home/shengyan/software/expat2/lib" CPPFLAGS="-I/home/shengyan/software/expat2/include"
$ make
$ make install
配置http://man.chinaunix.net/linux/debian/debian_learning/ch09s14.html
PATH=$PATH:/home/shengyan/software/subversion/bin
创建版本库$ svnadmin create /home/shengyan/Repository
导入源码$ svn import /home/shengyan/workspace file:///home/shengyan/Repository/workspace #因为~/.subversion/config中由于没有设置$EDITOR,得修改editor-cmd = vim #(vi, emacs, notepad, etc.)(这里得注意editor-cmd前面不加空格,否则会出现svn: /home/shengyan/.subversion/config:27: Option expected)
不习惯用vim增加消息,所以直接加-m选项。
奇怪,怎么看不到/home/shengyan/Repository/workspace这个文件夹的
但$ svn list file:///home/shengyan/Repository/倒是可以看到workspace
启动版本库svnserve -d -r /home/shengyan/Repository
###完毕
安装好提供WebDAV访问和svn访问的的mod_dav模块和mod_dav_svn模块
首先安装mod_dav,在http://www.webdav.org/mod_dav/install.html,但出现错误configure: error: Your APXS installation is broken and cannot be used.
Please see http://www.webdav.org/mod_dav/install.html#apxs for
more information.
后来直接安装libapache2-svn,后来顺带连apache2也安装了,装到/etc/下了,不过还是不对阿,不应该安装到这的。删掉
还是回到之前。
尝试$ ./configure --prefix=/home/shengyan/software/apache2 --enable-dav
$ make
$ make install
STILL
checking for dynamic Apache module support (via APXS)... ./configure: 2150: /home/shengyan/software/apache2/bin: Permission denied
./configure: 2150: /home/shengyan/software/apache2/bin: Permission denied
./configure: 2150: /home/shengyan/software/apache2/bin: Permission denied
found at /home/shengyan/software/apache2/bin
./configure: 2163: /home/shengyan/software/apache2/bin: Permission denied
configure: error: Your APXS installation is broken and cannot be used.
Please see http://www.webdav.org/mod_dav/install.html#apxs for
more information.
http://osdir.com/ml/apache.mod-dav.general/2005-08/msg00077.html 上说,对于apache2.x不需要安装mod_dav,而mod_dav_svn似乎也不用,所以上午白折腾了!
直接修改conf/httpd.conf,增加
DAV svn
#SVNListParentPath on
SVNPath /home/shengyan/Repository
#SVNParentPath /home/shengyan/Repository
#AuthType Basic
#AuthName "Subversion Repositories"
#AuthUserFile /home/shengyan/software/apache2/passwd
#AuthzSVNAccessFile /home/shengyan/software/apache2/authz
#Require valid-user
可以,但加入用户验证就是不对。后来找到原因是htpasswd创建错误。
5、安装trac
新立得安装swig
安装svn-python
shengyan@SHENGYAN:~/software/subversion-1.4.3$ make swig-py
出现make: *** [subversion/bindings/swig/python/svn_client.lo] 错误 1
http://wiki.orangebrothers.com/Subversion_and_Trac_Install_on_Dreamhost讲述
重新安装swig
$ wget http://easynews.dl.sourceforge.net/sourceforge/swig/swig-1.3.25.tar.gz
$ ./configure --prefix=/home/shengyan/software/swig1.3 --with-python=/home/shengyan/software/python2.5.2
又出现错误redeclaration of C++ built-in type bool,这个是由于g++安装不完整,新立得中安装g++及相关库ok了
$ make
$ make install
shengyan@SHENGYAN:~/software/subversion-1.4.3$ ./configure PYTHON=/home/shengyan/software/python2.5.2/ --prefix=/home/shengyan/software/subversion --with-swig=/home/shengyan/software/swig1.3
错误依然
之前svn+apache授权错误是因为
htpasswd创建错误
先前htpasswd -cbp /home/shengyan/software/apache2/passwd shengyan lizzie1985一直不对,后来直接htpasswd -c passwd shengyan就可以了
直接安装trac缺少setuptools,新立得安装
shengyan@SHENGYAN:~/software/Trac-0.11$ python setup.py install --prefix=/home/shengyan/software/python2.5.2
出现错误:bad install directory or PYTHONPATH...which Python does not read ".pth" files from.
设置环境变量~/.bashrc中增加export PYTHONPATH=/home/shengyan/software/python2.5.2:/home/shengyan/software/python2.5.2/lib/python2.5/site-packages
完成install
配置$ trac-admin $HOME/software/trac initenv
里面要设置正确repository等
启动$ tracd --port 8000 /home/shengyan/software/trac
但访问http://127.0.0.1:8000/trac 有和cjj出现一样的问题,即首页显示Warning: Can't synchronize with the repository (Unsupported version control system "svn". Check that the Python support libraries for "svn" are correctly installed.)
解决是得安装svn-swig
直接$ make swig-py
出现错误说libtools ... not find ...apr-util/libaprutil-0.la'这种类似的
解决是得重新configure subversion
$ ./configure --with-apr=/home/shengyan/software/apache2 --with-apr-util=/home/shengyan/software/apache2 --with-apxs=/home/shengyan/software/apache2/bin/apxs --prefix=/home/shengyan/software/subversion --with-swig=/home/shengyan/software/swig1.3 LDFLAGS="-L/home/shengyan/software/expat2/lib" CPPFLAGS="-I/home/shengyan/software/expat2/include"
$ make swig-py #终于没错误了
$ make install-swig-py #OK
将/home/shengyan/software/subversion/lib/svn-python拷贝到/home/shengyan /software/python2.5.2/lib/python2.5/site-packages这个不对,出现warning的,只能修改 PYTHONPATH后OK。后来尝试把/home/shengyan/software/subversion/lib/svn-python下的两个 文件夹libsvn和svn直接拷贝到/home/shengyan/software/python2.5.2/lib/python2.5 /site-packages,这个是可以的。
6、trac+apache
修改httpd.conf
增加LoadModule python_module modules/mod_python.so
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/shengyan/software/trac
AuthType Basic
AuthName "Trac"
AuthUserFile /home/shengyan/software/apache2/passwd
#AuthzSVNAccessFile /home/shengyan/software/apache2/authz
Require valid-user
访问http://localhost:8888/trac出现nternal Server Error,查看error_log为
ZipImportError: can't decompress data; zlib not available
找到http://mail.zope.org/pipermail/zope/2004-November/154739.html ,也就是python需要zlib。直接拷贝一个zlib.so到/home/shengyan/software/python2.5.2/lib/python2.5/lib-dynload。这是由于1中未加--with-zlib
http://localhost:8888/trac刷新下,页面上又出现 self._version = get_pkginfo(sqlite).get(
NameError: global name 'sqlite' is not defined
缺少PySqlite,下载并安装http://trac.edgewall.org/wiki/PySqlite
shengyan@SHENGYAN:~/software/pysqlite-2.4.1$ python setup.py install
出现...在包含自 src/module.c:24 的文件中:
src/connection.h:33:21: 错误: sqlite3.h:没有该文件或目录
安装libsqlite3-dev
shengyan@SHENGYAN:~/software/pysqlite-2.4.1$ python setup.py install #OK
中文化
(1)下载
(2)unzip zoomquiettranslation.zip
(3)trac-admin trac wiki load /home/shengyan/software/zoomquiettranslation/trunk/0.11.x/default-pages
(4)编辑/home/shengyan/software/trac/conf/trac.ini文件,增加
[mainnav]
wiki.href = /wiki/ZhWikiStart
[metanav]
help.href = /wiki/ZhTracGuide
(5)cp ~/zoomquiettranslation/branches/Trac0.10.4zh1/wiki-macros/ZhTracGuideToc.py /home/shengyan/software/trac/plugins
出现No macro or processor named 'ZhTracGuideToc' found
解决:http://trac-hacks.org/svn/zoomquiettranslation/trunk/0.11.x/ 下的ZhTracGuideToc.py覆盖原来的ZhTracGuideToc.py
好了,整个结束。
Posted by
lizzie
at
下午11:56
0
comments
CORBA编程的基本概念
对象请求代理ORB(Object Request Broker)与接口定义语言IDL(Interface Defination Language)。
对象的引用(Object Reference)唯一定位分布的对象,是一个字符串。
客户程序(Client)可以直接使用对象引用定位、访问活动的服务对象。
命名服务(Naming Service)是定位分布对象的最佳手段,命名服务负责将对象的逻辑名解析为该对象的引用字符串,称为名字解析(Name resolving),可以联系主机域名和DNS服务器来理解。
服务程序(Servant)将服务对象注册到命名服务器并和一个逻辑名绑定,客户程序可以从命名服务器获得该服务对象逻辑名的对象引用字符串。
对象逻辑名由名字组件(Name compoment)组成,名字组件由ID、Kind两个域组成。
名字上下文(Name context)中包含对象逻辑名绑定的集合,同时一个名字上下文也可绑定到另一个名字上下文中,则对象逻辑名的绑定包括两类:对普通对象名的绑定和对一个名字上下文的绑定。
POA是服务程序与ORB(Object Request Broker)之间的媒介,提供对对象的管理、适配和Object Key的分配。
omniORB
一篇很好的文章,详细介绍了一些例子及安装(windows下)
来自:http://www.xfocus.net/articles/200511/831.html
omniORB简介
omniORB官方网站:http://omniorb.sourceforge.net
omniORB is a robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools).
CORBA编程基本步骤
1、编写IDL接口描述文件;
2、将IDL编译成所用开发语言的库,如C++、Java、Python,omniORBpy用于编译IDL的命令为omniidl;
3、配置并启动Naming Service(可选),omniORBpy命名服务的命令为omninames;
4、编写服务程序,在命名服务器上绑定对象IOR的逻辑名;
5、编写客户程序,访问命名服务器解析对象逻辑名的IOR;
呵呵,下面是我做的第一个omniorb例子,先试试看这个到底是怎么个流程~
平台:WindowsXP python25 omniORBpy-3.1
1、编写IDL接口定义文件secret_messenger.idl
module messenger
{
interface SecretMessage
{
string get_message();
};
};
2、使用omniidl命令将IDL文件编译成Python模块
WorkDir>omniidl –bpython secret_messenger.idl
3、编写CORBA服务程序messenger_server.py
#!C:\Python25\python.exe
# -*- coding: gb18030 -*-
#以Skeleton类为基类,定义服务类的实现
import messenger, messenger__POA
class OurSecretMessage(messenger__POA.SecretMessage):
def __init__(self, secret_message):
self.secret_message = secret_message
def get_message(self):
return self.secret_message
#创建服务对象实例
ourMessage = OurSecretMessage("Hello, omniORBpy!")
#初始化ORB、POA、POA_MANAGER对象
import sys
from omniORB import CORBA
orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
poa = orb.resolve_initial_references("RootPOA")
poa_manager = poa._get_the_POAManager()
poa_manager.activate()
#激活对象,对象的类从messenger_POA中继承了激活的方法_this()
message_obj = ourMessage._this()
#将对象引用字符串IOR写入message.ior文件
output_handle = open("message.ior", "w")
string_ior = orb.object_to_string(message_obj)
output_handle.write(string_ior)
output_handle.close()
#启动ORB
orb.run()
4、编写客户脚本messenger_client.py
#!C:\Python25\python.exe
# -*- coding: gb18030 -*-
import sys
from omniORB import CORBA
import messenger
#从message.ior文件读取服务对象的IOR
input_handle = open("message.ior", "r")
ior = input_handle.read()
input_handle.close()
orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
#从IOR获取对象,导入到自己地址空间中
obj = orb.string_to_object(ior)
mo = obj._narrow(messenger.SecretMessage)
result = mo.get_message()
print result
5、运行
× 启动服务程序
WORKDIR>messenger_server.py
× 启动客户程序
WORKDIR>messenger_client.py
Hello, omniORBpy!#出现的结果,呵呵
Linux。。。。后续
Posted by
lizzie
at
下午7:39
0
comments
http://www.ibm.com/developerworks/cn/linux/sdk/python/wxpy/index.html
http://www.ibm.com/developerworks/cn/linux/sdk/python/wxwin/index.html
PythonWebFramework春秋战国http://kjam.org/wiki/PythonWebFramework%E6%98%A5%E7%A7%8B%E6%88%98%E5%9B%BD/
Rails
http://www.5igongwen.com/5iview-61894.html
一个讲述小知识的网站:http://www.5igongwen.com/5iview-61896.html
Posted by
lizzie
at
下午11:23
0
comments
Labels: python
1、讨厌讨厌,java太慢了,eclipse太慢了,几乎有一半的时间都是等机子,我的破机子啊。。。。。。。。。。牢骚发完,正题,其实我发现用jsp写网页还是很清晰的
2、java中字符串的匹配最好用onestring.equals(otherString)
3、html框架的使用:《frameset rows="10%,90%"》及《frame src="top_info.jsp" name="Top" noresize frameborder=0》
4、《jsp:useBean id="Car" scope="request" class="qc.Car"》中的scope有page、request、session、application四种;jsp:forward page="step_second.jsp"
5、数据库连接类
package jdbc;
import java.sql.*;
public class JDBCConnector {
//数据库用户名
String userName = "root";
//数据库密码
String userPassword = "8888888";
//所要链接的数据库地址
String url = "jdbc:mysql://localhost:3306/db";
//数据库连接对象
Connection dbConn;
//存贮错误信息的变量
String errMes;
public JDBCConnector() {
errMes = "";
dbConn = null;
}
//连接数据库,返回一个Connection类型对象
public Connection getConn()
{
try
{
Class.forName("org.gjt.mm.mysql.Driver");
dbConn = DriverManager.getConnection(url, userName, userPassword);
}
catch (Exception ex)
{
dbConn = null;
errMes = ex.toString();
System.out.println(errMes);
}
return dbConn;
}
public String getErrMes()
{
return errMes;
}
}
数据库操作类:
package jdbc;
import java.sql.*;
public class ExcuteDB extends JDBCConnector{
//数据库连接对象
private Connection dbConn;
private Statement stmt;
private ResultSet rs;
private String errMes;
public ExcuteDB(){
dbConn = super.getConn();
stmt = null;
rs = null;
this.errMes = super.getErrMes();
}
public boolean exeSql(String strSql){
boolean isSuc = false;
try{
stmt = dbConn.createStatement();
stmt.executeUpdate(strSql);
stmt.close();
isSuc = true;
}
catch(Exception e){
this.errMes = this.errMes + "
" + e.toString();
}
return isSuc;
}
public ResultSet exeQuery(String strSql){
try{
stmt = dbConn.createStatement();
rs = stmt.executeQuery(strSql);
}
catch(Exception e){
this.errMes = this.errMes + "
" + e.toString();
rs = null;
}
return rs;
}
public String getErrMes(){
return errMes;
}
}
6、web.xml中servlet及servlet mapping
《servlet》
《description》This is the description of my J2EE component《/description》
《display-name》This is the display name of my J2EE component《/display-name》
《servlet-name》InfoShow《/servlet-name》
《servlet-class》InfoShow《/servlet-class》
《/servlet》
《servlet-mapping》
《servlet-name》InfoShow《/servlet-name》
《url-pattern》/InfoShow《/url-pattern》
《/servlet-mapping》
url映射
其他一些有用的代码:
Posted by
lizzie
at
下午2:13
0
comments
Labels: 学习笔记
http://www.lslnet.com/linux/docs/linux-3897.htm
Posted by
lizzie
at
下午9:06
0
comments
Labels: 系统管理
1、file:显示文件类型和用途
2、slocate:显示存在于系统中和指定条件匹配的文件和目录名
3、touch:创建空文件或者更新已存在文件的时间戳
4、updatedb:创建或者更新文件或者目录名的索引,这些索引会被slocate使用(需要root帐户运行)
5、zcat:显示压缩文件的内容
6、gdmsetup:启动用于配置图形登录界面的图形界面工具
7、startx:从命令行中启动X windows 会话
8、switchdesk:驱动桌面界面切换的图形界面工具
9、env:启动一个程序,并设置该程序需要使用,但当前尚未在环境中设置的环境变量
10、export:使得新创建的环境变量可供同一环境中运行的其他程序使用
11、lpoptions:为lpr命令设置选项集,以便于将来使用——lpoptions -P hplj -o media=legal -o jobsheets=confidential
12、lpr:打印文件或来自管道的输入
13、tee:将程序的输出发送到某文件的同时也在屏幕上显示——sort data_file | tee sorted_data
14、cpio:创建档案文件,也可以读取有tar命令创建的archive文件——cpio -idev < /dev/fd0 15、id:显示当前有效的UID、GID和有效UID所属的组
16、logname:显示登录到系统的用户名(可能和whoami、id命令显示的当前有效UID不同)
17、newgrp:与su类似,用于临时改变登录用户的有效组,该命令针对组而不针对用户
18、stat:显示和inode对应的文件和目录的信息,如文件大小,操作,上次访问和修改时间,存储文件的设备
19、umask:当创建新的文件和目录时,阻止默认的文件权限值
20、vigr:安全的编辑/etc/group
21、vipw:安全的编辑/etc/passwd
22、sort:排序文本
23、uniq:在一个已派好序的文本文件中删除重复行
24:diff:用于找出两个文本文件之间的不同之处
25、cmp:快速检查两个文件内容是否相同,若不同显示第一处不同所在的位置
26、ispell/aspell:拼写检查程序 文本过滤命令
27、cut:从文件每一行中删除部分内容(字段)
28、expand:将制表符替换成空格
29、fmt:格式化文本文件(使空格标准化,设置行宽,行缩进值的大小等)
30、join:根据匹配字段将两个不同文件中的行合并
31、nl:给文件中的每一行添加行号
32、od:以数字格式(如十六进制)显示文件内容
33、paste:将两个文件中的行合并
34、split:将一个文件分成两个或更多小文件
35、tac:反转文件中每一行的顺序(最先输出文件的最后一行),tac为cat的反转
36、tr:将字符替换为另一个字符
37、unexpand:将空格替换成制表符
38、comm:判断两个已排好序的文本是否相同
39、sed和awk初步
504 sed -n /pray/p mplayer
505 sed /pray/p mplayer
506 sed /pray/d mplayer
511 sed 's/[0-9]*\.[0-9][0-9]/\$&/g' sed_txt > sed_txt1
518 sed 's/[0-9]*\.[0-9][0-9]/\$/g' sed_txt > sed_txt1
522 sed 's/[0-9]*\.[0-9][0-9]/abc&/g' sed_txt > sed_txt1
527 sed 's/[0-9]*\.[0-9][0-9]/abc&/g' sed_txt | tee sed_txt1
528 ls -l | awk '{ print $3, $9;}'
530 ls -l | awk '{ print $3, $9;}' | uniq
532 ls -l | awk '/^l/ { print $3, $9;}'#以l开头的行,中间是个正则式
534 ls -l | awk '$2 = 2 {print $0;}' #$2表示第二个列变量,把他当作变量看可以做比较等等,$0表示整行内容
sort /etc/passwd | awk -F : '{ print $1; }'
535awk -f awk_cammand_list text_file#运行脚本文件,将多条命令写成一个awk脚本文件,例如:
/^l/ { print $3, $9; }
$2 > 2 {print $0; next;}#next表示一旦一条命令被判断执行后(为真),就不希望其他的命令再对本行的内容进程处理。
41 vi
:r somefile#表示把somefile插入到当前编辑的文件中,若按u表撤销
ZZ#类似于:wq
Ctrl+f和Ctrl+b分别表示每次向前和向后滚动一屏
num + shift+G表示光标跳至文件中的任何一行
Ctrl + g显示当前文件的文件名和光标所在的行号
m标记功能
(),[],{}的匹配:%键
Shift+j将两行文本合成一行,即删除当前行末的换行符
查找/替换操作:line-number-range s/search-pattern/replacement text/flags
:1,$ s/^configure/Configure/
:1,$ s/^configure/Configure/g全局标识
:!ls执行shell命令
vi中的set,对应的环境变量EXINT,如:EXINT='set nu nosmartindent';或者把set写入.exrc文件中
d$将删除从当前位置开始至该行末尾的部分
d)将删除从当前位置开始至该句末尾的部分
3d)将删除接下来的3句
Posted by
lizzie
at
上午8:13
0
comments
Labels: linux命令
SearchMash
Posted by
lizzie
at
下午11:11
0
comments
Labels: 我以前不知道的东西
python爬虫:
http://www.movo.tv/m8/circlediarylook/Sff808081168b6b9a01168b7d82b0004c.html
http://www.movo.tv/m8/circlediarylook/S4028808a148723be0114872806180034.html
Posted by
lizzie
at
下午10:01
0
comments
今天安装了mysql,使用及django连接mysql,以后就不用sqlite3了
参考手册:http://www.farfree.cn/book/mysql/
1、安装mysql:
INSTALL上的安装步骤
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip <> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf (我没加)
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql (第一次初始化授权)
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql & (启动)
讲一下我碰到的问题
./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-charset=`gb2312'
(我尝试过不同的选项,--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock没用,后来装上了还是/tmp/mysql.sock,--with-charset=`gb2312'用这个到后来显示不支持。。)所以去掉了这两个选项,不过最初我安装时一个都没加选项,似乎也可以。
sudo make ——so long time
sudo make install
sudo bin/mysql_install_db --user=mysql
shengyan@LIZZIE:/usr/local/mysql$ sudo chown -R root .
shengyan@LIZZIE:/usr/local/mysql$ sudo chown -R mysql var
shengyan@LIZZIE:/usr/local/mysql$ sudo chgrp -R mysql .
shengyan@LIZZIE:/usr/local/mysql$ sudo bin/mysqld_safe --user=mysql &
接着
bin/mysql -u root -p (输入密码后就可以进入mysql了
但直接输入mysql说ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)是不是没装client??
一些其他的~
mysqladmin version
kill `sudo cat var/HOSTNAME.pid` 停止
sudo bin/mysqld_safe --user=mysql --skip-grant-tables & 不加授权的启动,当密码忘记了可以用这个,进入后再改
sudo bin/mysqladmin -h localhost flush-privileges 更新授权表
sudo bin/mysqladmin -u mysql stop
sudo bin/mysqladmin -u root -p stop????
shengyan@LIZZIE:/usr/local/mysql$ bin/mysql -u root -p*******(作为root)
***************************
网上的资料
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill `cat /mysql-data-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
2. 使用`--skip-grant-tables' 参数来启动 mysqld。
3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。
也可以用use mysql; update user set password =password('yourpass') where user='root'
也可以这样做:mysqladmin -h hostname -u user password 'new password'
4. 载入权限表: mysqladmin -h hostname flush-privileges ,或者使用 SQL 命令`FLUSH PRIVILEGES'。
重启mysqld
2、安装MySQL_python(http://www.djangobook.com/en/beta/chapter05/)
下载后
$ tar xfz MySQL-python-1.2.1.tar.gz
$ cd MySQL-python-1.2.1
$ # edit site.cfg if necessary (编辑mysql_config = /usr/local/mysql/bin/mysql_config为你系统的路径)
$ python setup.py build
$ sudo python setup.py install # or su first
没什么错误的话就安装好了,可以测试
python shell中
import MySQLdb没错误就表示已经有这个模块了,可以继续。。。
3、django连接mysql
进入mysql新建一个数据库Blog,并且 GRANT ALL PRIVILEGES ON Blog.* TO lizzie@localhost IDENTIFIED BY '*******' WITH GRANT OPTION;
退出mysql进入一个工程,修改settings.py
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'Blog' # Or path to database file if using sqlite3.
DATABASE_USER = 'lizzie' # Not used with sqlite3.
DATABASE_PASSWORD = '****' # Not used with sqlite3.
DATABASE_HOST = '/tmp/mysql.sock' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '3306'
保存后可以在python shell中测试是否连接正确
>>> from django.db import connection
>>> cursor = connection.cursor()
这步没有错误的话就表示连接正确了
然后创建你的models,完成之后执行以下命令
python manage.py validate #检查modes语法逻辑是否正确
python manage.py sqlall blog #blog为工程名,执行这步产生creattable的sql语句,但没有真正的在数据库中创建表
python manage.py syncdb #初始化数据库,真正创建表
ok,没什么错误就可以runserver了
另外:若修改了表结构就是models中的内容,需python manage.py sqlreset blog 或者 python manage.py reset blog
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Posted by
lizzie
at
下午7:20
0
comments
http://www.debian.org/doc/manuals/reference/ch-gateway.zh-cn.html
现象:我能上网,但ping 127.0.0.1不通。所以我服务器运行时总是说This IP can't assign to ......
ifconfig 显示出来只有 eth0没有lo接口(我系统奇怪吧^o^)
解决办法:
sudo ifconfig lo 127.0.0.1
sudo route add -host 127.0.0.1 lo
——ok,但是这样子每次重启之后又没了,因为我没加入到配置文件里。
寻找如下:
http://www.uiokyu.com/post/217.html
/etc/network/interface中加入后,显示如下
cat network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo #加入
iface lo inet loopback
# The primary network interface
iface eth0 inet static
address 192.168.0.56
netmask 255.255.255.0
gateway 192.168.0.1
auto eth0
刚开始怀疑是不是设了防火墙,因为ping不通自己有可能是防火墙设置了
但是我iptables显示没有,so不是这个问题
***********************************
dns服务器
配置文件:/etc/resolve.conf
domain MyGroup
nameserver 202.195.48.11
nameserver 202.195.48.10
我的dns设置
他对应的进程叫named进程
pstree root | grep named查看
设置dns,开启本地dns域名解析,那么每次访问外网,首先根据你的dns来解析,不会再去由外面的路由器解析
Posted by
lizzie
at
下午12:32
0
comments