• sever端

    一、linux系统
    我下载的是VNC和VNC-server两个rpm包,也有tar包下载,但为了方便还是用了rpm包。
    安装完两个包后:
    1、运行“vncpasswd”命令设置VNC的登陆密码;
    2、运行“vncserver”命令正式将一个xdm作为VNC服务器,这时会出现“New "x" desktop is

    hostname"1”之类的话,其中最后的“1”表示这是第一个VNC的图形界面,其listen端口为3901。如果再

    运行一次“vncserver”命令,则会出现“New "x" desktop is hostname"2"”,最后的2表示这是第二个

    图形界面,其listen端口为3902。如此类推,再运行再增加......
    3、server端的设置就是这么简单,但如果你不想用xdm而想用更漂亮的gdm或kdm的话,就要作一些修改了

    :编辑~/.vnc/xstartup文件,该文件在第一次运行“vncserver”命令的时候自动产生。将xstartup文件

    中的行用“#”全部注释掉(主要是要将“twm”行注释掉),在最后加上startkde或gnome-session即可。

    4、可以在/usr/local/bin/vncserver中更改分辨率和色度。(也可能是/usr/bin/vncserver中,可用“

    whick vncserver”看看哪个才是你真正在用的“vncserver”。

    二、windows系统
    windows版本的VNC更简单,下载VNC的exe文件,双击安装,安装过程和其它windows的软件没有什么不同

    ,一路next。最后选择是否产生快捷方式和开机自动运行等即可。
    在桌面双击VNC SERVER图标,填入密码,按确定即可。其默认的listen端口是3900。


    cleint端

    一般来说,我们会使用windows作客户端(因为linux的xwindow其实已经是一个能共享桌面的服务器)。
    一、windows:双击桌面的VNC VEIWER图标。
    linux:在Xwindow中运行vnccleint命令。

    二、以下对windows和linux来说都是一样的:
    在弹出的对话框中填入server的ip,
    1、server端是windows的话,直接填IP即可;
    2、server端是linux的话,必须填上“IP:数字”,其中的“数字”是第几个图形界面。(在上面linux

    server端的第二点有谈过这问题)。
    比如:192.168.0.99:1或192.168.0.99:2

    3、输入在server端设置的密码即可。
  • 2004-06-12

    纳闷 - [谈生活]

    今天是纳闷的一天。
    早上考试的时候忘记了填答题卡,最后填上去的只有一半。看来只有等明年再考英文了。[face18]
    由于上个星期到了河源和厦门,所以晚上连到公司想把上个星期没有写完的脚本写完。谁知道不知写错了什么地方,搞到整个系统的文件和设备文件都被我删掉!一个多星期的努力就此化为乌有了。[face15]

  • 一、拨号设置。

    1、运行adsl-setup输入你的拨号信息和dns等。

    2、将默认网关改为无。
    即将/etc/sysconfig/network中的gatewat项清空。

    3、保持adsl的连接,不然会隔几十秒就会自动停掉:
    vi /etc/sysconfig/network-scripts/ifcfg-ppp0
    把PPPOE-TIMEOUT=*和CONNECT-TIMEOUT=*的值都改成0。

    二、拨号
    拨号有两个命令可以实现
    1、adsl-start 如果设置了多个adsl账号,可以在后面加上其名字。
    如adsl-start ifcfg-ppp0

    2、ifup ppp0
    个人感觉第二种的拨号速度快点。

    三、防火墙设置
    主要是两个地方
    1、开放ip转发:
    echo 1 > /proc/sys/net/ipv4/ip_forward

    2、开放nat:
    iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE

    四、检查配置
    1、使用ifup ppp0拨号,然后ifconfig看看是否有ppp0。

    2、route或netstat -r看看默认路由是否有错,ping dns server看看能否出去外网。

    3、在client端设置默认网关为eth0或eth1的ip。ping dns server看看能否出去外网。

    如果上述一切正常即可!
    [face01]
  • 今天在帮某事业单位在redhat9中安装oracle9i,发现原来与在redhat7.3中安装有所不同,折腾了一整天终于装好。

    在redhat9中安装oracle9i有几个地方要注意:

    1、默认下使用oracle用户不能打开oracle的安装界面。即是说运行“runInstall”时会有“java。。。。”之类的错误出现。
    这个错误搞了我很久,一直想不明白。后来用oracle用户运行xhost命令,发现出现“connect :0.0 refuse”等错误信息才明白是xhost不能连接的关系。
    解决方法:
    使用root用户,运行“xhost +主机名”(注意:要有加号),再su - oracle后运行“runInstall”即可弹出安装界面。

    2、出现"Error in invoking target install of make file /opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk"错误。

    这是由于glibc库不兼容。
    使用
    $ rpm -q glibc-2.3.2-5 glibc-common-2.3.2-5 glibc-devel-2.3.2-5检测是否安装的glibc。
    返回
    package glibc-2.3.2-5 is not installed
    package glibc-common-2.3.2-5 is not installed
    package glibc-devel-2.3.2-5 is not installed
    表明没有安装。
    一般redhat9安装的是2.3.2-11.9的版本,我们要先把他们卸载了:
    # rpm -e glibc-debug glibc-utils nptl-devel

    然后安装2.3.2-5的版本:
    # rpm -Uvh --oldpackage glibc-2.3.2-5.i686.rpm glibc-common-2.3.2-5.i386.rpm glibc-devel-2.3.2-5.i386.rpm

    2.3.2-5的版本可以在此下载:
    glibc-2.3.2-5版本

    这样就可以解决该错误,但记得装完oracle后把2.3.2-11.9的版本再装回来。[face21]

    其它的安装过程可以参照我的另一篇安装文档:
    oracle 9i 安装for linux[face10]
  • 家里有一台主机打算用来作网关,但又不想为其配显示器,使用ssh又有很大局限,于是便想到了用serial口控制该网关。
    使用串口管理比起ssh来说有几个好处:
    第一,不需ip,即网络断掉或服务停了也可以进行管理。
    第二,可以显示linux开机时的信息,让我们可以知道能力出了错。
    第三,一个串口只能登陆一个用户,可以在无干扰下进行工作。

    当然,我并不是说ssh不好,只不过对于一台就在身旁的机器来说,使用串口是方便一点的!

    好了,闲话少说:
    第一步:让串口可以登陆。
    在/etc/inittab中的
    "# Run gettys in standard runlevels"项加上
    "co:2345:respawn:/sbin/agetty ttyS0 9600 vt100"一行。
    目的是能开放一个ttyS0,让其能登陆本机。

    第二步:让root可以在串口登陆。
    在/etc/securetty的末尾加上"ttyS0"。
    这样就可以让root通过串口登陆。

    第三步:让串口显示开机信息。
    如果是用lilo的话,在/etc/lilo.conf中加入:
    serial=1,9600n8
    append="console=ttyS0,9600"
    两句。这样,在开机的时候,开机的信息就会定向到串口中来。
    如果是用grub,那我这里有一个示例:

  • 1、finding module denpendeneies

    就是检测模块依赖关系之意,一般在第一次运行系统中有用。但在开机的时候发现就是这个检测占用的时间最多,为了让开机速度更快,我们可以将其停用:

    在命令窗口输入以下命令:
    代码:
  • 我们在安装新内核的时候,通常都会编辑lilo.conf 和grub.conf 文件。里面有一段“initrd=/boot/initrd-***.img”(其中的***表示内核的版本号)的我们都很少会注意到,有时候还会发现这一行不要也可以正常开机。那这个initrd***.img究竟是用来干什么的呢?

    其实initrd***.img是一个镜像文件,类似ramdisk,把一段程序打包到img里,然后在开机的时候在内存里开辟一段区域,一般是2m,释放到那里运行,都是一些初始化的程序,比如sisc_mod、ext3、sd_mod等模块和insmod、nash等命令。不同内核,初始化的img可以相同,也可以不同,如果没有,可以在grub.conf里加上no initrd,它就跳过initrd的检测和执行了,以前好像就没有,后来才有的。

    它的作用是在没有mount /分区以前,系统要执行一些操作,比如挂载scsi驱动,它就把initrd释放到内存里,作一个虚拟的/,然后执行其根目录下的一个脚本"linuxrc",运行insmod和nash命令挂装模块。为什么有的时候我们在lilo或grub的配置文件中不加入该行都可以正常开机呢?这是因为我们一般的PC机都没有使用scsi硬盘等需要先加载其驱动的设备,所以就算没有initrd***.img也可以正常开机。但是如果我们要在服务器上为其编译新内核那就一定不要忘记也为其新建一个initrd文件呀!

    好,下面来看看如何查看initrd***.img里面的内容和如何为你的新内核创建一个新的initrd.img文件。

    查看initrd.img:
    initrd***.img虽然后缀是“img”,但其实它是一个gz格式的文件,我们可以先把它解压,然后载挂装到目录下:

    1、cp initrd.img initrd.gz
    2、guzip initrd.gz
    3、mount -o loop initrd /mnt/floppy

    进入/mnt/floppy目录,我们就可以看到initrd***.img文件的庐山真面目了。



    制作initrd文件

    当我们编译了一个新的内核,也不要忘了为我们的scsi设备做一个新的initrd镜像:

    语法:
    mkinitrd 文件名 内核的目录名

    示例:
    mkinitrd initrd-2.4.19.img 2.4.19

    initrd-2.4.19.img文件是自己任意取的,但最好对应自己的内核版本号。
    2.4.19是在/lib/modules中的目录名,对应内核的版本。

    当然,我们也可以在挂装了initrd***.img文件后直接添加模块到/lib目录中,然后修改linuxrc脚本让其开机进行挂装。但必须具备一定的shell脚本的能力才行。
  • 2004-05-30

    忙死了! - [谈生活]

    几乎天天都要上课,连上网都没有时间了。现在除了在公司整天都挂在网上,在家里都没有时间开电脑。下两个月都要考试,现在要准备了。两门课要做设计,一个是网页的设计,一个linux下的C编程。网页的比较简单,以前我也做过,但我的C是最差的了,所以今天买了本《unix系统编程》看看。

    希望能顺利熬过这两个月![face10]
  • 我试过了,真的是非常准呀![face01]

    测试:
    Hey it is quite accurate!!! Try and see!
    嗨,这个测试很准的哦,来试试看。
    Take a piece of paper and write down the answers.. The analysis is in the end....
    请拿出一张纸一支笔把你的答案写下来,结论就在后面。
    Situation: 场景:
    You are in a deep deep forest... as you walk on you saw an old hut standing there
    你在森林的深处,你向前走,看见前面有一座很旧的小屋。

    (1) What is the status of the door? (Opened/closed)
    这个小屋的门现在是什么状态?(开着/关着)
    (2) You enter the hut and see a table... What is the shape of the table?
    (Round/Oval/Square/Rectangle/Triangle)
    你走进屋子里看见一张桌子
    这个桌子是什么形状的?(圆形/椭圆形/正方形/长方形/三角形)
    (3) On top of the table there is a vase... in the vase there is water. How much water is it filled up with?
    (Full/Half/Empty)
    在桌子上有个花瓶,瓶子里有水,有多少水在花瓶里?(满的/一半/空的)
    (4) And what is the vase made of?
    [(Glass/porcelain/clay)(metal/plastic/wood)]
    这个瓶子是由什么材料制造的? (玻璃/陶瓷/泥土)(金属/塑料/木头)
    (5) You walk out of the hut... as you carry on your walk in the forest... you see a waterfall from far...
    there is water running down...What is the speed of the water?
    (Choose a number ranging from 0 to 10)
    你走出屋子,继续向森林深处前进,你看见远处有瀑布飞流直下,请问水流的速度是多少?
    (你可以从0—10任意选一个)
    (6) Some time after the waterfall... you step on something hard on the ground... as you look down... you see
    glistening gold in colour. You bend down and pick it up... it is a keychain chained with keys...
    How many key /keys you see hanging on the keychain? (Choose a number ranging from 1 to 10)
    过了一会,你走过瀑布,你站在坚硬的地面上,你看见地上有金光闪烁,你弯腰拾起来,是一个带着钥匙的钥匙链。有多少把钥匙拴在上面,你可以任意选一个数字(从1到10)
    (7) You walk on and on... trying to find your way out...suddenly you see a castle.
    What is the condition of the castle? (Old/new)
    你继续向前走,试着找出一条路来,突然你发现眼前有一座城堡。这个城堡是什么样的?
    (旧的/新的)
    (8) You enter the castle and saw a pool of murky water with shining jewels floating on it...Will you pick up the jewel? (YES/NO)
    你走进城堡,看见一个游泳池,黑暗的水面上飘浮着很多闪闪发光的宝石,你会捡起这些宝石吗?(是/不)
    (9) Next to the murky pool... there’s another pool... with clear water and money floating on it...
    Will you pick the money? (YES/NO)
    在这个黑暗的游泳池旁边还有一座游泳池。清澈的水面上飘浮着很多枚钱币。你会捡起这些钱币吗?(是/不) 
    (10) Walking to the end of the castle there is an exit...you proceed to walk out of the castle. Outside the
    exit, there is big garden, you see a box on the ground. What is the size of the box? (small/medium/big)
    你走到城堡的尽头有一个出口,你继续向前走走出了城堡。在城堡外面,你看见一座大花园,你看见地面上有一个箱子。这个箱子是多大尺寸的?(小/中/大)   
    (11) What is the material of the box? (cardboard/paper/wooden/metal)
    这个箱子是什么材料做的? (硬纸板/纸/木头/金属)
    (12) There is a bridge in the garden some distance away from the box, What is the bridge made of?
    (metal/wooden/rattan)
    花园里还有一座桥就在离着箱子的不远处。桥是什么材料建造的?(金属/木头/藤条)
    (13) Across the bridge, there is a horse. What is the colour of the horse? (white/grey/brown/black)
    走过这座桥,有一匹马。马是什么颜色的?(白色/灰色/褐色/黑色)
    (14) What is the horse doing? (still and quiet/nibbling grass/running about)
    马正在做什么?(安静地站着/吃草/在附近奔跑)
    (15) OH NO!!! There is a tornado coming... some distance from the horse. You have 3 options:
    (i) run and hide in the box?
    (ii) run and hide under the bridge?
    (iii) run to the horse, ride on and gallop away?
    哦,不!离马很近的地方突然刮起了一阵龙卷风。你三种选择。
    (1) 跑过去藏在箱子里?
    (2) 跑过去藏在桥底下?
    (3) 跑过去骑马离开?
      
      

      Here are the interpretations:
      好了,这就是我们的结论:
    (1) The door:
    opened door - you are a person who is willing to share
    closed door - you are a person who is keeping things to yourself
    门:
    门如果是开着的:
  • 每天都在公司使用putty来运行ssh client连接linux,今天记得好像在windows中也可以安装openssh server,那么就不用再开一个软件,而且还可以使用sftp和scp了。于是决定试试。

    1、下载openssh。
    可以在此下载。

    2、安装。
    安装很简单,就像其它windows下的软件一样,双击即可。安装到大半,会有提示框弹出,说“必须要设置../etc/passwd文件才可以正常运作openssh,详情可以参阅readme.txt或quickstart.txt文件。”不用管它,按确定继续完成安装。安装完后可以看到quickstart.txt文件的内容。


    3、配置。

    第一、打开一个ms-dos终端,进入openssh/bin目录。(安装完openssh后,发现多了几个在linux中常用的命令,如:ls、mkdir、rm、chmod、chown等,很有亲切感![face01])

    第二、将计算机上的组导入group文件中。这里分两种情况,第一种是本地,第二种是在域中。分别运行-l和-d参数。如果想将两种组都导入,可以先运行-l的参数再运行-d参数的命令。
    下面是原文:
    Use mkgroup to create a group permissions file. For local groups, use the "-l" switch. For domain groups, use the "-d" switch.
    For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires.

    mkgroup -l >> ..\etc\group 这是加入本地组的命令。
    mkgroup -d >> ..\etc\group 这是加入域组的命令。

    第三、 将计算机的用户与其密码导入passwd文件中。与上面的组一样,也是分本地和域两种情况。如果没有该文件或没有导入用户的信息。作为server的话,将不能被登陆,因为没有用户嘛!
    下面是原文:
    Use mkpasswd to add authorized users into the passwd file. For local users, use the "-l" switch. For domain users, use the "-d" switch.
    For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires.

    mkpasswd -l [-u <username>] >> ..\etc\passwd 这是加入本地用户的命令。
    mkpasswd -d [-u <username>] >> ..\etc\passwd 这是加入域用户的命令。

    NOTE: To add users from a domain that is not the primary domain of the machine, add the domain name after the user name.
    NOTE: Ommitting the username switch adds ALL users from the machine or domain, including service accounts and the Guest account.


    由于我的计算机在家里,不关域的事,所以我只要运行两条命令就可以了。(注意我是在openssh/bin目录下运行的。)
  • 2004-05-21

    学习计划 - [谈生活]

    我的一个很不好的地方是没有自制能力。明明下个月有英语的学位考试,明明身体不是太健康,还是要坚持明天晚上打一个小时实况足球。搞到1点钟才能睡。
    所以我要定一个学习计划时间表,让我不至于浪费青春。
    1、今天到6月13日。每天要做一篇阅读理解或写一篇作文。
    2、今天到5月31日。找时间作要交的网页。初定使用flash来做。
    3、linux下的DNS、MAIL等server和GCC要找时间学习。

    其它的以后再补充。。。[face07]
  • 有时候就会出现这个怪问题。找了一下解决的方法:

    当使用/etc/inittab里面的某个程序,例如mgetty来接受modem拨入,同时系统又重新启动或者几个拨入都不成功;又或者登录提示数次被取消(例如用ctrl+D),都会出现这种提示。


    原因在于,当init通过/etc/inittab来启动某个程序的时候,如果这个程序连续几次被很快地终止,那么在/etc/inittab里面对应的条目就会被禁用并不再启动。正常情况下程序应该在被结束后两分钟后重新启动,这个问题不应该归咎于init的bug。
    解决方法是:
    首先,很多程序有自己的日志或者把他们的syslog写到/var/log/messages或者这个目录下面类似的日志里面,所以可以查看这些日志来得到错误信息。你也可以手动在shell下面启动这些程序来得到错误信息,但是记得不要改动/etc/inittab里面的项目。你可以以root身份使用init q命令使得这些无效的命令重新可以使用。


    解决方法:先看/var/log/messages中的条目,或查找“respawning”。看到上一行的提示,我这里是“Sep 4 10:27:14 rism /sbin/mingetty[1094]: /dev/tty1: cannot open tty: No such d
    evice”。然后我到/etc/inittab中用“#”把"1:2345:respawn:/sbin/mingetty tty1"注销了就可以了。
  • 2004-05-17

    滑稽的面试 - [谈生活]

    想走了,在这间公司没啥意思。薪水少得可怜,工作忙得要死。老板对谁都不放心,老员工差不多都走了,连我这个才来了5个月的在部门也成了资历最长的人,在公司的员工排行榜上差不多可以挤进前10了!
    找工作吧!忽然lp在论坛上见到了一条招聘信息,是linux网络管理,于是叫我去试试。中午寄了封信过去,没想到下午就叫我过去面试了!怎么我每次找工作都那么lucky的呀!我的一个朋友好像寄了n封信都等不到回音耶!于是晚上就糊里糊涂的去面试了。事实证明,去面试之前什么准备都没有是大错特错的!
    公司在电脑城的22楼。怎么?这栋楼好像是住宅似的!一梯八户,每户一阳台。敲门进去,发现果然是住宅,厕所还要在大厅里!由于是晚上,公司只剩一个老总似的人物在。我们简单的交谈的一下,大家互相了解。感觉公司太小了,连老总室都摆了4张桌子,人感到很拘束。不过既来之则安之,等面试完以后再说吧!
    老总也没有多说,就叫我去进行一些测试。第一项是iptables,公司有一些qmail服务器,但却什么防护都没有,于是让我为其配一个防火墙。想不到的是他竟然让我用他们在其它地方的服务器给我做试验!问题就出在这了,我的思路是先禁止所有的,再开放需要的。所以一开始我就配了
  • 这两天在给客户安装服务器时也顺便给他们使用iptables,不用不知道,一用才发现iptables还有很多东西可以学的,比如开放ftp。
    iptables 的filter表的INPUT链的默认策略设为了DROP,其余的链均为ACCEPT。 该服务器即要作ftp服务器,也要连上别的ftp服务器。即是说要把源端口和目的端口都开放21才行:
  • 2004-05-09

    dd 命令的用法 - [谈技术]

    dd命令是将从标准输入中读取的数据按参数指定的方法进变换后送到标准输出。除了数据变换外,还可以利用一些参数修改一些数据的物理属性。如块的大小等。
    dd命令的选项及含义:
    ds=blocksize 指定输 入输出块的大小,该选项使ibs和obs 选项无效。
    if=filename 指定将要拷贝输入的文件名
    ibs=blocksize 指定输入文件的块大小。
    ifskip=numberofeof 指定前跳过的eof标志的个数
    files=numberofblocks 在拷贝前,在输入文件上跳过指定数目的块。
    of=filename 指定创建的输出文件名
    obs=blocaksize 指定输出块大小
    seek=recordnumber 拷贝文件时,指定输入文件的开始记录号。
    conv=conversionparameter 指定数据转换的类型,描述数据转换类型的参数有ASCII,EBCDIC,block,unblock.lcase,,ucase.
    示例:将file.dd 输出到磁盘文件。
    dd if=file.dd of=/dev/rfd0135ds18
    将EBCDIC格式存放的文件转换为ASCII文件
    dd if=file1 of =file2 conv=ascii
    将磁带上的三个文件拷贝到文件file1
    dd if=/dev/mnt0 fskip=2 of =file1
  • 五一假期过了3天都在家里,到了4号终于决定出去玩玩。珠海离广州不远,可以看海,人也不多,于是我们就在4号的早上出发到珠海游玩,目标是荷包岛。
    在天河大厦坐大巴,50元。同行的除了我和lp外,还有一个网上认识的网友Pa。广州到珠海很近,我们坐了不到两个小时的车就到了。其实我上个星期一才到珠海出差,过年才到过珠海玩,所以还是比较熟悉的。路上打了几个电话,确定了我们定的房间和位置,一下车就直奔酒店而去。我们住的地方在情侣南路边上,叫“广信海湾酒店”,其实说是酒店还不如说是旅游业的培训中心,因为这里是专门供导游等人员在培训时住的地方。只有两层是住房,两星级的酒店,因为是一个导游朋友介绍的,收费是150元/房,地方还算干净。
    住下来后,肚子就开始叫了,pa以前到过这边,带我们到了一间小酒楼吃中午饭。然后我们坐26路车到九洲城与另一位已经到了珠海的网友秋会合。中午我们在九洲城的免税商场6楼打机,这里的游戏还不多,但都挺好玩的,比如射点球、神州一号、树林打猎、3d的射击等。消磨了一个多小时以后,我们四个人商量了一下,觉得如果下午去荷包岛的话可能时间太紧了,于是我们决定到水湾北路的酒吧街打拖拉机。
    我和我lp赢了一个下午以后,忽然她的一个mm朋友打电话给她,说着说着就说也要来珠海和我们一起玩。于是到了晚上我们的队伍又变成了5个人。7点钟,我们集合完毕后出发到湾仔吃海鲜!从拱北打车去湾仔大概要20多块,珠海的的士起表比较贵是10块,但每公里2.4元比广州便宜2毛,而且是按6毛来跳表的。湾仔的食街与其说是酒楼的一条街不如说是一个海鲜的市场!酒楼都不大,但没个酒楼的门口两边都是海鲜的小摊,沿着食街一字排开都是活蹦乱跳的海鲜!食街的人还多,幸亏pa在珠海的朋友先到,给我们定了座。这里的服务方式是客人自己出去买海鲜回来,然后酒家为我们加工收取加工费。于是我们就出去买海鲜了。哇!好多海鲜,大部分还非常便宜。比如非常新鲜的青口10块就3斤!海螺20元/斤,多宝鱼50元/斤……这里的海鲜真的是“鲜”的,都是刚刚从海里捉上来的,真是看到都想吃!我们买了两只糕蟹、一条多宝鱼、一斤海螺、三斤青口、三斤蚬贝、一大盘生壕,共用了两百多块钱,加上加工费大概用了三百块不到,真是大快朵儿!
    第二天,我们早上出发到荷包岛。8点半在香洲汽车站坐公交车到南水转605路车到珠海港。珠海港还真远呀!我们足足坐了两个多小时的车才到。公交车不在港口停,我们还要打4块钱的摩托车去港口。11点到了港口才知道现在没有船走,要等人多才能走。天哪!怎么会这样!售票厅上写着开船时间是9点、14点和6点!那我们不是要等3个小时!唉没有办法,只好等一等吧。一边等一边打拖拉机,终于到了12点多,已经聚集了20多人以后,码头决定1点钟开船。坐船过去荷包岛要20分钟左右,很快就到了。一到岛上,发现这里还有村庄,真是只要有土的地方就有中国人!下了船就要上大巴。沿着一条3、4米宽的山间小路向山那边的海滨浴场(其实也就是沙滩)走去。大概走了15分钟就到了。从山上远远看到一个弯月状的沙滩出现在眼前,旁边还有几栋几层高的小酒店。心里有点失望,这个沙滩说大不大,说白不白,水也不见得清澈,都不知道有什么好玩。到了下水的时候,更觉得懊恼,水太浅,而出去几十米后水又太凉,海浪还不大。心里一直懊恼,不知道来这里干什么,不用说北海的十里银滩,就算是阳江的闸波也比这里好得多!本来我们还想在这里住上一晚,但看这情况还不如回广州好。于是半价退了已订好的房间,搭5点钟的船回去了。
    一路无事,到了8点钟到了九洲城,买了8:15到广州的车票,然后打包了K记的两个大桶就回广州来了。[face20]
  • iptables简介与基础
    防火墙系统可分为包过滤型、应用级网关(也叫代理服务器型防火墙)和电路级防火墙三种基本类型。Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤型的防火墙实现技术。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向。更彻底的过滤则是检查包的源端口、目的端口以及连接状态等信息。

    iptables
    iptables是一个管理内核包过滤的工具,可以加入、插入或删除核心包过滤表格中的规则。实际上真正来执行这些过滤规则的是Netfilter。Netfiler是Linux核心中一个通用架构,它提供一系列的表(tables),每个表由若干链(chains)组成,而每条链中可以由一条或数条规则(rule)组成,如下:



    |---......
    |---ipchains1 |---rule1
    |---table1---| |
    | |---ipchains2 --- |---rule2
    netfilter--|---table2 |
    | |---......
    |---......




    相对于2.4内核提供的IP链来说,iptables实现的不仅仅是包过滤功能,而是通过Netfilter实现一整套框架结构,在这个框架之上实现包过滤、NAT等模块功能,从而提供更好的可扩展性和灵活性。

    系统缺省的表为filter表,该表包含了INPUT链、OUTPUT链和FORWORD链。每一条链中可以定义一条和数条规则,每一条规则都以如下格式定义:条件/处理方式。

    当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件。如果满足,系统将规则该条规则所定义的方法处理该数据包;如果不满足,则会继续检查下一条规则。如果该数据包不符合该链中任一条规则,系统则会根据该链预先定义的策略(policy)来处理该数据包。(一般时deny)。

    Netfilter框架能够在内核2.3.5及以上版本中实现。编译内核的时候,应该将Netfilter相关的项目编译进去。这些项目一般在“Networking options”子项下。在“IP:Netfilter Configuration ---->”选中所有选项。
    编译成功后,这些模块文件都位于目录/lib/modules/2.4.0/kernel/net/ipv4/netfilter中。成功安装iptables后,必须先载入相关模块:#modprobe iptables_tables
    iptable_filter模块会在运行时自动载入。

  • 2004-05-04

    航空管制 - [谈生活]

    1。2001年几位持刀的恐怖分子用刀劫持飞机后架机撞毁世贸中心,造成数千人的伤亡,民航当局作出规定,凡乘坐飞机者一律不准携带任何刀具,包括指甲钳在内的刀具。

    2。2002年,一名恐怖分子用手提电脑将机长砸昏后劫持飞机。民航当局再次作出决定,不得带任何随身行李登机。

    3。2003年,两名恐怖分子再次劫机,此次用的方法是用衣服蒙住飞行员的头部后用皮带将其勒死,民航当局经过长期讨论决定凡乘坐飞机者一律裸体。同年因在飞机上耍流氓被拘禁的人数比往年多了10的六次方倍,各大拘留所爆满。

    4。2004年为改善这一局面,民航当局作出反应,计划将飞机分为男用舱和女用舱,后因几个同性恋组织反映过于兴奋而作罢。

    5。同年民航当局决定将客机的座位改为独立的小单间。一家航空器械制造公司承揽此项业务。但很快发现生意都被浙江的一家民营企业抢去,该公司的产品是眼罩。由于此事的深远影响,使得各大报刊媒体的经济版面纷纷作出评论,也使得很多好久没吃上肉的经济学家吃到了大虾。所有的观点和评论总结归纳起来只有一个字"靠"。

    6。2005年一名日本游客不知何故闯入驾驶舱朝机长疯狂小便造成飞机仪表系统发生故障。飞机坠毁。民航当局再次开紧急会议讨论并通过了一项决议:"1,将所有的座位改为马桶。2,所有的乘客登机后均由乘务人员帮其带好安全带。待飞机安全着陆后放能解开安全带。" 媒体和民众对此作出的反应为"我们不要被绑在马桶上。"春节联欢晚会上也有小品"一千块上次厕所"对此讽刺打击。民航成为继753和中国电信后被骂的最多的人和部门。

    7. 2006年 , 为了平息众怒 , 民航放弃了"马桶方案", 并采取极端手段 , 拆 除飞机上所有洗手间 , 每个男乘客赠 送皮筋一根作为流量控制, 怎料到一名叫李登辉的乘客将皮筋做了个弹弓子打破了飞机的玻璃 ,造成飞机急降1000次 ,险些造成严重事故。 

    8。 2007年 ,民航取消了72小时前座位确认的手续,改为上飞机前72小时禁止吃喝,违例者一律当恐怖份子看待。 

    9。2008年,因无法承受长期客源稀少而造成的巨额亏损。各大航空公司纷纷破产。经济学家对次的评论是"玩完"。
  • 2004-05-03

    关于子网掩码 - [谈技术]

    我们知道,使用变长子网掩码可以将一个网段划分成为多个子网,比如我将192.168.0.0/24这个网段划分为4个子网。那么就变成了192.168.0.0/26了。
    即子网掩码由 11111111.11111111.11111111.00000000
    变成了 11111111.11111111.11111111.11000000

    这时192.168.0.0~63; 网段为192.168.0.0,广播地址为192.168.0.63
    192.168.0.64~127; 网段为192.168.0.64,广播地址为192.168.0.127
    192.168.0.128~191; 网段为192.168.0.128,广播地址为192.168.0.191
    192.168.0.192~255 网段为192.168.0.192,广播地址为192.168.0.255
    为四个子网。

    前两天去南昌就吃了子网掩码的亏。
    我是去几间高校去升级我们公司的系统。其实升级也就是换个硬盘,然后改一下ip能连出外网就行了。不过在设置其中两间学校时出现问题。

    第一间设了ip以后发现有的ip可以ping得通有的ip不能ping通。我们觉得很奇怪,就算不是一样的系统(我们的设备使用的是linux系统),也不会影响ping的呀。尝试使用telnet来连接外网,还是不行!我仔细看了一下ip,原来ip是192.168.0.63/26,刚好是该网段的广播ip。于是更换ip,成功了!
    教训:要熟悉变成子网掩码的计算,最好可以做到一拿到一个ip以后就能算出该ip是不是一个可以正常使用的ip地址。

    第二间高校使用的是sun的服务器做mail server。ip是一个外网ip,我的设备也要设一个外网ip。管理员mm告诉我子网掩码是24,于是我就设了24。接好线以后奇怪的事情出现了:我的设备可以ping通mail server,但接上我们的设备后不能收发信!于是telnet mail server的25端口,不能连通!在mail server上查看:netstat -na |grep 25 ,发现25端口是listen的。奇怪了!为什么可以ping通但却telnet不了呢?!!于是重启mail server ,重启我们的设备,更换网线。。。。还是一样!把我们的设备移开,用其它的机器telnet mail server的25端口却成功了!??[face11]为什么会这样呢?!
    一定有些东西不对!于是我把注意力放到了mail server上。虽然我不太熟悉solaries,但我linux还可以,于是查了一下/etc下的netmask文件,发现子网掩码是255.255.255.148!太奇怪了,我还没有看到过后面是148的子网掩码呢?究竟是哪个××设的![face12]我想将其改为128,但不知道为什么管理员mm竟然要我改为140。改就改呗。改完重启network服务,再使用telnet,果然成了!
    教训:调试机器前一定要确定周围机器的所有信息。

    看来对于子网掩码,我还是要多加小心才行!呵呵。。。[face01]
  • 2004-05-03

    五一站火车记 - [谈生活]

    前两天到了南昌和赣州出差,4月30号在赣州回广州。江西代理公司的人说一定有票,当我下午到赣州火车站时,5月3日的票都没有了。只好又到汽车站看看,当天的票也是没有了。好后悔没有先定票。之后在火车站和汽车站来回了几趟,打了n个电话,终于决定混进火车再补票。
    下午四点半,在售票厅问一位小姐借了一张车票去买了张站台票,然后进入了候车厅。抬头一看,天呀!到广州了车最早的是23点的2093次。查了查列车表,24点还有一列K86,也就是我前天从广州搭过来了那一列K85。心里七上八下,不知道等不等好,因为离开车时间还有七八个小时!在打了电话给老总说可能要在此住一晚后,我还是决定今天一定要回去。因为明天还是没有车票。
    等到了六点,啃了个饭盒(还是挺便宜的,不过没有肉),心想不能浪费这几个小时。于是四处走了一下,给我发现了一个软卧候车室,一看里面好像没有什么人,要收十块钱。十块就十块呗,在软卧候车室坐下以后,发现这十块给的太对了。起码我坐得舒服得多,有电视看,又可以看书。于是我用了两个小时将一本《开发系统世界》看完。对iptables又加深了了解。
    到了十点左右,室里的人忽然多起来。差不多都坐满了。原来十点半有到深圳的车,看来到深圳和广州的人还是挺多的。其中有一半的人是火车站的工作人员或公安人员带进来的,都不用给钱。整个候车室人来人往、进进出出,像个菜市场似的,十分热闹!
    终于到了23点,谁知等来的却是2093延迟的广播。天!看来明天要八点才能到广州了。这时我已经无心看书和电视了,我留意着身边的人们和墙上的列车报到屏幕,只想能快点上车。
    到了24点,不出人所料的K86也延迟了。无奈中只好继续等。零点20分,2093终于来了,我风一般逃进站台。呜~~三声的长鸣以后,火车终于来了。这是我的身边已经聚集了n层人了。再看火车,晕~~上面连站的位置都没有了。火车停了,人群在我身边哗哗的流过,涌向火车。我犹豫了,不知道上不上好。我知道这几节车厢我是挤不上的了,于是向车头走,车头人是比较少,但车门已经关了!我决定不上,等下一次的K86。
    2093走了,站台上只剩几个人。其中有两个学生模样的在说广州话,于是与其搭讪。从交谈中得知他们是南方冶金学院的学生,要回广东去。还知道了赣州原来是有飞机场的!靠,早知道就坐飞机好了!不过有人谈话总比一个人好。
    到了一点钟,K86终于来了!令我失望的是,K86次和2093次上面的人都是这么多!不过不管了,等了这么久,死也要死上去!使出浑身解数,终于挤了上去,发现略为空的车厢中间其实是坐满了人的。于是就被着行李,站在过道上。身边是人,脚边也是人。我几乎连动一动脚的空间都没有!K86是快车,所以空调还好,但下一个站要4点才能到,就是说,就算等一下有人下车,我也起码要站3个小时。事实证明我是过于乐观了,到下一个站后根本就没有什么人下车。但幸亏我这时已经在车上认识了几个人,他们帮我把一大堆行李放上架,还有时候给我坐一下。[face18]真是太感激了!
    其实站火车也不是太累,我还挺得住,但实在是太困了。有好几次我站着站着靠在椅子被上睡着了又惊醒了。后面一个大汉坐在地下压着我的右脚,前面一对母子坐在地下档着去路。我脚下的空间只有两个脚位多一点。
    这时我想其前天我就坐同一部列车从广州到南昌。那时我睡卧铺,我在为不能搭飞机而抱怨。现在想起来,那时真的好像在天堂呀。有时候我们要知足,我想。虽然人人都想要最好的,但不会也不可能每个人都会得到自己想要的东西。有时候想想,自己是不是真的就那么的不幸呢?其实原来都是自己将自己想像得不幸而已。总将自己想像为受害者,只会对社会、对别人进行抱怨;而怀着积极的态度,一步一步的去描绘自己的人生,才能实现自己的梦想。
    站火车可能对一部分人来说是很平常的事情,但对我来说,是第一次,可能也是最后一次。但这一次的经历,足以让我回味,让我知道了一个道理:我可以去追求更好的生活,但绝对不能去抱怨生活。
  • 作为一个打工者,也是应该学习如何能成为优秀的工作者的。呵呵。

    本文中

    ·掌握…… 优秀工作者创造出比普通工作者眩目的工作成绩所依赖的九项策略。

    ·理解…… 主动地提出一些超出你工作范围之外,但对整个组织都有利的、大胆的、建设性的观点。

    ·网络…… 优秀工作者用来与那些将使其工作更加有效的专家联络的有效途径。

    ·增加…… 通过自我管理你的工作行为以及尝试从不同角度分析一个项目,使你对你的公司更有价值。

    ·影响…… 利用你优秀的组织知识和表达技巧来说服别人接受你的观点。

    ◆ ◆

    管理者和工作者一直为一个重大的秘密所困扰:是什么样的特质使得一个优秀工作者可以创造出十倍于普通工作者的成绩。通过在贝尔实验室和3M等公司近十年的研究,Robert E. Kelley和他的同事们终于发现了令人吃惊的结论。要成为一名优秀工作者,你无需高IQ、非常强的自信或者圆滑的社交技巧,事实上,你只需改进你的工作策略。这个结论非常的有价值。因为在这样一个竞争激烈的时代,公司可由此使得他所有的雇员,而不仅是优秀工作者,都发挥出巨大的才能。

    在这篇摘要中,你将学到优秀工作者所采用的九大策略。即使你已经成为一名优秀工作者,理解这九条策略也能帮助你增加你和你同事们的工作业绩。

    ◆ ◆

    在我们讨论这九条策略之前,我们先来总结一下Kelley和他的同事Janet Caplan是如何得出这一结论的。在80年代中期,他们的调查小组花了两年的时间开展在贝尔实验室,世界上最早的研发组织的咨询项目。

    贝尔实验室拥有许多世界上最好的工作人员,但他们中只有很少一部分成为"一抵十"的人物,那些能完成十份普通工作者工作的杰出工作人员。公司想知道,什么样的因素使他们产生这样的分化,从而可以雇佣到更多的优秀人才。

    首先,Kelley要求管理者和工作者分别列出,当面临危机或开始一个重大的新项目时,他们认为值得求助的个人的名单。结果所得到的两组名单中,只有一半的名字是相同的。而且Kelley还发现,管理者和工作者对谁是优秀工作者的意见并不一致。

    Kelley的小组于是又要求总经理、中层管理者列出那些名字同时出现在两组名单上的优秀工作者所不同于普通雇员之处。所提及的45个因素可分为三类:

    1、认识力的因素,如高IQ、逻辑能力、理性及创造力。

    2、个性因素,如自信、雄心以及冒险精神。

    3、社会因素,如个人技巧和领导才能。

    Kelley接着面试了200名优秀和普通工作者以寻找他们在这45个因素上的区别。结果被输入计算机并分析了四个月。所得的结论是:并非这45个因素,包括高IQ、优秀的社交能力、充分的自信等,造成他们之间如此巨大的差异。

    这就意味着,"这种优秀不是与生俱来,而是后天培养所得" 。如果人人所认为的那些使一个人优秀的因素都不是真正的源动力的话,那么任何人都可以通过改进工作方法而成为优秀工作者。

    ◆ ◆

    通过数千个小时与优秀工作者的详细的面谈和对他们的跟踪观察,Kelley和他的小组终于掌握了他们的关键行为。正是这些关键的日常行为造就了他们出色的工作成绩。

    例如,一个普通工作者在学习中通常需要一个星期的时间来写100行软件代码。而一个优秀的工程师只用一天的时间、四行代码就可完成同样功能,区别仅在于他打了两个电话请教专家,从而帮助他在1/5的时间内仅以四行代码就实现相同功能。

    只要把这九条策略贯彻到你的日常生活中去,你就能极大提高工作能力。这九条策略按重要性的次序排列如下:

    1、主动性

    2、网络化

    3、自我管理

    4、洞察力

    5、下属关系

    6、领导关系

    7、团队工作

    8、组织知识

    9、表述能力

    这些策略看起来并不新鲜,因为即使是普通工作者也会同意这些观点,但重要的是优秀工作者们"如何定义和排列这些策略"。有趣的是,普通工作者也会列出同样的九条策略,但他们却以完全相反的顺序排列这些策略:表述能力第一,而主动性最后。普通工作者对这九条策略有着完全不同的理解。下面我们先来看一下优秀工作者和普通工作者对这些策略的不同看法:

    1、主动性:普通工作者认为这意味着做更多努力来改进’自我’的工作,例如使用更快的计算机或主动做一些额外的工作,如计划一年一度的野餐会,来引起经理的注意。相反,优秀工作者认为主动性意味着在工作范围之外提出一些有益于同事和整个组织的,大胆的、建设性的建议。

    2、网络化:对普通工作者而言这意味着闲谈和传播小道消息。对优秀工作者则意味着开发与能对自己有帮助的专家联系的网络。

    3、自我管理:普通工作者认为这是帮助他们管理好自己时间和项目的技巧。优秀工作者则认为是发展一些能力和经验,使自己对于公司更有价值。

    4、洞察力:普通工作者认为这意味着如何使他们的观点受到最大的关注。优秀工作者则认为是尝试从不同角度看问题,如站在顾客、竞争者、同事、老板的角度看同一问题,以求提出更好的解决方案。

    5、下属关系:普通工作者认为是毫无保留的接受老板的指示,做自己分内的事。优秀工作者则认为是和上司一起合作完成公司的目标,即使两人在性格上存在差异。

    6
  • 很长,我都没有看完。但我想只要我们都能安装其中的做10来件,那中国的环境就已经变得不得了了。

    保护环境随手可做的100件小事

    目录:
    1 使用布袋
    2 尽量乘坐公共汽车
    3 不要过分追求穿着的时尚
    4 不进入自然保护核心区
    5 倡步行,骑单车
    6 不使用非降解塑料餐盒
    7 不燃放烟花爆竹
    8 双面使用纸张
    9 节约粮食
    10 拒绝使用一次性用品
    11 消费肉类要适度
    12 随手关闭水龙头
    13 一水多用
    14 尽量购买本地产品
    15 随手关灯,节约用电
    16 拒绝过分包装
    17 使用节约型水具
    18 拒绝使用珍贵木材制品
    19 拒绝使用一次性筷子
    2O 尽量利用太阳能
    21 尽量使用可再生物品
    22 使用节能型灯具
    23 简化房屋装修
    24 修旧利废
    25 不随意取土
    26 多用肥皂,少用洗涤剂
    27 不乱占耕地
    28 不焚烧秸杆
    29 不干扰野生动物的自由生活
    3O 不恫吓、投喂公共饲养区的动物
    31 不吃田鸡,保蛙护农
    32 提倡观鸟,反对关鸟
    33 不捡拾野禽蛋
    34 拒食野生动物
    35 少使用发胶
    36 减卡救树
    37 不穿野兽毛皮制作的服装
    38 不在江河湖泊钓鱼
    39 少用罐装食品、饮品
    4O 不用圣诞树
    41 不在野外烧荒
    42 不购买野生动物制品
    43 不乱扔烟头
    44 不乱采摘、食用野菜
    45 认识国家重点保护动植物
    46 不鼓励制作、购买动植物标本
    47 不把野生动物当宠物饲养
    48 观察身边的小动物、鸟类并为之提供方便的生存条件
    49 不参与残害动物的活动
    50 不鼓励买动物放生
    51 不围观街头耍猴者
    52 动物有难时热心救一把,动物自由时切莫帮倒忙
    53 不虐待动物
    54 见到诱捕动物的索套、夹子、笼网果断拆除
    55 在室内、院内养花种草
    56 在房前屋后栽树
    57 节省纸张,回收废纸
    58 垃圾分类回收
    59 旧物捐给贫困者
    60 回收废电池
    61 回收废金属
    62 回收废塑料
    63 回收废玻璃
    64 尽量避免产生有毒垃圾
    65 使用无氟冰箱
    66 少用纸尿布
    67 少用农药
    68 少用化肥,尽量使用农家肥
    69 少用室内杀虫剂
    70 不滥烧可能产生有毒气体的物品
    71 自己不吸烟,奉劝别人少吸烟
    72 少吃口香糖
    73 不追求计算机的快速更新换代
    74 集约使用物品
    75 优先购买绿色产品
    76 私车定时查尾气
    77 使用无铅汽油
    78 不向江河湖海倾倒垃圾
    79 选用大瓶、大袋装食品
    80 了解家乡水体分布和污染状况
    81 支持环保募捐
    82 反对奢侈,简朴生活
    83 支持有环保倾向的股票
    84 组织义务劳动,清理街道、海滩
    85 避免旅游污染
    86 参与环保宣传
    87 做环保志愿者
    88 认识草原危机
    89 认识荒漠化
    90 认识、保护森林
    91 认识、保护海洋
    92 爱护古树名木
    93 保护文物古迹
    94 及时举报破坏环境和生态的行为
    95 关注新闻媒体有关环保的报道
    96 控制人口,规劝超生者
    97 利用每一个绿色纪念日宣传环境意识
    98 阅读和传阅环保书籍、报刊
    99 了解绿色食品的标志和含义
    100 认识环保标志
  • 是看着一篇经典的oracle9i安装文档(英文)装上的。
    那篇文档写得太详尽了,我这里只整理了在linux安装时要注意的东西。

    因为偷懒,所以就不翻译了。[face10]


    一、检测是否安装了需要的rpm包:
    RH 7.1, 7.2, and RH AS 2.1:
    #rpm -q gcc cpp compat-libstdc++ glibc-devel kernel-headers binutils

    RH 7.3, 8.0, and 9:
    #rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils

    RHEL AS 3:
    rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-headers glibc-kernheaders binutils



    二、检查内存和swap

    To check the memory, run:
    grep MemTotal /proc/meminfo
    To check the swap space, run:
    cat /proc/swaps

    You can also add temporary swap space by creating a temporary swap file instead of using a raw device. Here is the procedure:
    su - root
    dd if=/dev/zero of=tmpswap bs=1k count=900000
    chmod 600 tmpswap
    mkswap tmpswap
    swapon tmpswap
    To disable the temporary swap space execute the following commands:
    su - root
    swapoff tmpswap
    rm tmpswap

    三、增加share memory

    I temporarely increased the shmmax setting for the kernel by executing the following command:
    $ su - root
    # cat /proc/sys/kernel/shmmax
    33554432
    # echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
    # cat /proc/sys/kernel/shmmax
    1073741824
    It is recommended to increase the shmmax setting permanently for Oracle. For more information, see Setting Shared Memory.

    For more information on optimizing shared memory settings for Oracle databases on Linux, see Setting Shared Memory. These parameters apply to all Red Hat Linux versions. But note that except for the shmmax parameter, these parameter do not need to be changed for installing Oracle on Linux. But you might want to adjust all shared memory settings later to optimize the server for Oracle.


    四、检查tmp的容量
    (tmp目录大概需要1G左右的空间)
    To check the space in /tmp, run:
    $ df /tmp
    If you do not have enough space in the /tmp directory, you can temporarily create a tmp directory in another filesystem. Here is how you can do this:
    su - root
    mkdir /<AnotherFilesystem>/tmp
    chown root.root /<AnotherFilesystem>/tmp
    chmod 1777 /<AnotherFilesystem>/tmp
    export TEMP=/<AnotherFilesystem> # used by Oracle
    export TMPDIR=/<AnotherFilesystem> # used by Linux programs like the linker "ld"
    When you are done with your Oracle installation, shutdown Oracle and remove the temporary directory:
    su - root
    rmdir /<AnotherFilesystem>/tmp
    unset TEMP
    unset TMPDIR



    五、配置环境变量
    # Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9 and
    # for Red Hat Enterprise Linux Advanced Server 3 (RHEL AS 3) !!
    # Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
    export LD_ASSUME_KERNEL=2.4.1

    # Oracle Environment
    export ORACLE_BASE=/opt/oracle
    export ORACLE_HOME=/opt/oracle/product/9.2.0
    export ORACLE_SID=test
    export ORACLE_TERM=xterm
    # export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
    export NLS_LANG=AMERICAN;
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export LD_LIBRARY_PATH
    # Set shell search paths
    export PATH=$PATH:$ORACLE_HOME/bin


    (使用 soure .bash_profile 可以让.bash_profile立即生效。)



    六、远程安装
    1、xwin32
    用gdm。修改/etc/X11/gdm/gdm.conf,把"[xdmcp]"下面的部分改成代码:
    Enable=true
    然后在文本模式下执行“gdm”命令。成功的话会在linux上出现一个登陆画面。


    2、用vmware

    准备一个在vmware安装的redhat,我们叫它“yourdesk”,安装oracle的机器叫“oracleserver”。
    首先:
    oracleserver:$ su - oracle
    oracleserver:oracle$ export DISPLAY=yourdesktop:0.0(或不要“.0") (最好用IP而不用主机名)

    然后:
    yourdesktop:# startx
    在图形界面的终端下:
    #xhost +oracleserver
    #ssh oracleserver
    #su - oracle
    #export DISPLAY=yourdesktop:0.0
    # DISK1/runInstall
    即可弹出oracle的安装界面。


    (可能要先安装x-window,可能要在ssh到oracleserver之前,先运行).



    七、遇到ins_ctx.mk错误
    安装到后面的时候,会有提示:
    "Error in invoking targe
  • 接触Oracle的时候,9i已经出来好久了。对着网上的教程,我竟然第一次安装9i就成功了!于是我对于8i也就有了一份莫名的轻视,总觉得9i我也装上了,8i肯定也不过如事。谁知道,今天我安装8i竟然吃尽了苦头,由于种种原因,用了2天,装了n次才成功。这我才知道,oracle还是老的难装!

    一、安装配置:cpu:赛扬1G,内存:HY256M,系统:redhat7.2(上面已经安装了Oracle9i)
    二、安装前的准备:
    1、系统要有一个X系统,我用的是gnome;

    2、系统要安装了gcc,一般安装的时候选择Develop tools的话也就会有了。

    3、检查下面的rpm包是否已经安装:
    compat-libstdc++-6.2-2.9.0.16
    compat-glibc-6.2-2.1.3.2
    compat-egcs-c++-6.2-1.1.2.16
    compat-libs-6.2-3
    compat-egcs-6.2-1.1.2.16
    compat-egcs-objc-6.2-1.1.2.1

    4、降级binutils:
    rpm -Uvh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm

    5、安装JDK:
    rpm –ivh IBMJava2-SDK-1.3.1-2.0.i386.rpm
    然后更改/etc/profile,在后面加上:
    export JAVA_HOME=/opt/IBMJava2-131
    export PATH=$PATH:$JAVA_HOME/bin

    6、下载补丁glibc-2.1.3-stubs.tar.gz。

    7、编辑/etc/sysconfig/i18n文件,改成:
    LANG=”en_US”
    SUPPORTED=”en_US:en”

    8、swap要大,最好是内存的两倍。我设了512M。
    增加临时swap的方法:
    You can also add temporary swap space by creating a temporary swap file instead of using a raw device. Here is the procedure:
    su - root
    dd if=/dev/zero of=tmpswap bs=1k count=900000
    chmod 600 tmpswap
    mkswap tmpswap
    swapon tmpswap
    To disable the temporary swap space execute the following commands:
    su - root
    swapoff tmpswap
    rm tmpswap

    注:上述要下载的补丁等可以在这里下载:
    http://pawprint.net/linux/

    二、安装
    1、建立用户:
    groupadd dba
    useradd oracle –g dba
    更改密码:
    Passwd oracle
    2、设置oracle用户的环境变量:
    编辑/home/oracle/.bash_profile文件,在后面增加下面几行:

    /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
    export LD_ASSUME_KERNEL=2.2.5
    export ORACLE_BASE=/opt/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
    export NLS_LANG=American_america.zhs16gbk
    export PATH=$PATH:$ORACLE_HOME/bin
    (下面的其实可以不设,但设了更好。)
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export ORACLE_SID=data
    export ORACLE_TERM=vt100
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    umask 022

    3、重新用oracle用户login,看看有没有错误提示出现,如果没有就开始安装了。


    进入Xwindow:
    startx
    打开一个终端,解压linux81701.tar:
    tar xvf linux81701.tar
    cd Disk1
    安装:./runInstaller
    (如果安装界面迟迟不出来,LD_ASSUME_KERNEL=2.2.5这个变量或没有安装gcc。)
    提示要输入group名,填入dba,然后再开一个终端窗口,用root权限执行/opt/oracle/product/8.1.7/orainstRoot.sh
    选一路next,然后选择你的java的安装路径,我这里是/opt/IBMJava2-131。下一步填SID,随便填就好了。最后按install,安装正式开始了。


    在安装的到97%时,会出现ins_ctx.mk的错误,
    修改/opt/oracle/product/8.1.7/ctx/lib/env_ctx.mk文件,在 "INSO_LINK =" 行加入 "$(LDLIBFLAG)dl"
    如下:
    INSO_LINK=-L$(CTXLIB)$(LDLIBFLAG)m$(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca$(LDLIBFLAG)sc_fa$(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da$(LDLIBFLAG)sc_ut$(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi$(LLIBCTXHX)$(LDLIBFLAG)c-Wl,-rpath,$(CTXHOME)    lib $(CORELIBS) $(COMPEOBJS)
    然后点击 重试(retry)

    安装补丁(如果在前面出现prom等错误,可以在出现错误的时候安装该补丁!)
    在另一个窗口中,把glibc-2.1.3-stubs.tar.gz拷到$ORACLE_HOME下,解压:
    tar xzvf glibc-2.1.3-stubs.tar.gz
    然后执行./setup_stubs.sh
    在安装补丁的时候,oracle安装的窗口也会弹出窗口,要你用root权限运行root.sh文件(与是否在安装补丁无关)。该文件有两个错误的地方,记住一定两个地方都要改,不然会死得很惨的!
    第一,
    RMF=/bin/rm -f
    修改为
    RMF="/bin/rm -f"
    注意,共有两个“RMF=/bin/rm –f“,我们两个都要改![face43]

    第二,
    RUID=`/usr/bin/id|$AWK -F( ’{print $2}’|$AWK -F) ’{print $1}`
    修改为
    RUID=`/usr/bin/id|$AWK -F( ’{print $2}’|$AWK -F) ’{print $1}’`
    注意:是在那个不知道怎么叫的符号前面加一个单引号,而不是在最后加!
    修改完后,补丁安装完后,就可以用root权限运行$ORACLE_HOME/root.sh文件。
    最后系统自动配置net8和创建数据库等,就完成安装了!

    后记:
    在遇到了ins_prom错误,怎么都搞不好。我怀疑是因为先装了9i的原因,但是当我更换了用户来安装以后(即不用oracle用户来安装),就可以了。后来发现原来
  • 2004-04-25

    创建我的blog - [谈生活]

    一直很想在网上找个记录自己心情和工作的地方,但一直没有去找。今天上来本来想找找如何在自己的网站建一个blog,但想想还是怕麻烦,而且工作比较忙。以前整天整天的去研究作网页的日子已经不可能再有了。
    很高兴,终于可以将我工作中的技术所得随时记下来了。
    呵呵。。。