fcitx(或ebf:)安装设置大全及软件下载(转贴)

(转自:http://www.linuxsir.org/bbs/showthread.php?s=&threadid=115270)

 LinuxSir.Org

用户名 密码 记住信息

您好,游客 [ 注册账号 ] 本站首页 | 论坛帮助 |

返回  LinuxSir.Org > Linux 软件应用讨论区 > Linux 输入法专题讨论 > [==请置顶==]fcitx(或ebf:)安装设置大全

转到页面...

回复

第1页,共14页 1 2 3 11 > 最后 »

 

主题工具

tram

 

tram 的头像

资 料:

★☆★版☆主★☆★

注册日期: Sep 2002

帖子: 7,314

精华: 28

  第 1 帖 

发帖时间: 03-05-06, 22:46

[==请置顶==]fcitx(或ebf:)安装设置大全

下载的软件包,有两种格式,一种是rpm,一种是tar.gz,我们分别来说怎样安装。

如果下载的是rpm,安装简单一些。可以直接在资源管理器里面点击它,一般会弹出软件包管理器的安装程序,一路确定就行了。如果这样不行,就打开一个终端,用命令来安装:

rpm -ivh ebf-fcitx-<版本号>.i386.rpm

如果曾经安装过相同的ebf软件包,比如说,装了以后,不知什么时候,删了个重要文件,那么再安装,可以用命令:

rpm -Uvh ebf-fcitx-<版本号>.i386.rpm

由于系统不一样,你在安装的时候,可能会不能满足依赖关系,也就是缺少一些库文件,导致安装失败,那么就用下面的命令强制安装:

rpm -ivh ebf-fcitx-<版本号>.i386.rpm --force --nodeps

rpm -Uvh ebf-fcitx-<版本号>.i386.rpm --force --nodeps

这样安装是不会有什么负作用的,放心

安装了以后,数据文件放在/usr/share/fcitx下,可执行文件在/usr/bin目录下。

如果要删除,用命令:

rpm -e ebf-fcitx

注意后面没有版本号。

tar.bz2格式压缩包的安装:

这种格式是源码包,用这种包安装,可以适应不同的发行版,可以自己做修改。

首先要解压,可以直接在资源管理器里点击,会跳出与winzip很象的ark程序,解压到用户目录下(因为其他地方你没有权限),比如,解压到/home/tram/tmp目录下。如果没有装ark程序,那可以用命令来解压。打开一个终端(比如说xterm,konsole都可以),进到你下载的文件所在目录,比如是/home/tram/tmp,运行命令:

tar jxvf ebf-fcitx-<版本号>.tar.bz2

现在文件已经解压在/home/tram/tmp/ebf-fcitx-<版本号>目录下,进入这个目录,再输入编译命令:

make

要安装,需要有root权限:

su

<输入root的密码>

安装:

make install

在运行make的时候,可能会失败,如果你得到错误信息如下:

(没有编译器cc或gcc)<哪位兄弟给找一下出错信息?我这里实在出不来>

以前没有编译过软件包吧?没关系,找出你的安装光盘,装上gcc的rpm,一般就在第一张盘上。也可以装上开发工具,这样以后编译什么软件包也方便。

有了编译器,还有可能出错的,因为ebf用了xlib的头文件,如果没装,就会:

MConn.c:32:22: X11/Xlib.h: No such file or directory

.....

make[1]: *** [IMConn.o] 错误 1

make[1]: Leaving directory `/home/liuyi/tmp/fcitx-1.8.2/IMdkit/lib'

make: *** [libXimd.a] 错误 2

[root@localhost fcitx-1.8.2]#

再找出光盘,装上XFree86的开发包(通常名为XFree86-devel),好了,现在不会有什么问题了(如果还有问题,反馈给我,我好补充进来)。

安装完了以后,可执行文件是/usr/bin/fcitx,数据文件在/usr/share/fcitx目录里面。

如果要卸载ebf,把/usr/bin/fcitx和/usr/share/fcitx目录删除了就行了。

安装完成后的基本设置:

如果你是用rpm来安装的话,对于redhat 8来说,就不用设置什么了,直接可以使用。如果是用源码编译安装,或者不是redhat 8,那么还需要做一些基本的设置,下面就说一说最通用的设置,这种设置方式也是我一直使用的(我在我用过的发行版上都是这样设置的,包括redhat,mandrake,gentoo和lfs),强烈推荐!

首先说说基本概念吧,输入法要正常运行,有三个条件,locale,XMODIFIERS和中文字体。locale是使用中文的基本条件,没有locale,就不能使用中文。XMODIFIERS是输入法和应用程序对话的通道,应用程序通过这个变量,来知道应该与哪个输入法对话。中文字体嘛,没有它就不能显示中文了。

如果你在安装系统的时候,选了简体中文,那么locale就已经设置好了,如果没有选,那么在你的用户目录下,找到.bashrc文件(是隐藏文件,所以前面有一个“.”),在这个文件最后面加上:

export LC_ALL=zh_CN.gbk

export LANG=zh_CN.gbk

export XMODIFIERS=@im=fcitx

上面的命令已经把locale和XMODIFIERS变量设置好了。

现在退出你的用户,再重新登陆,看看设置是否生效:

locale

得到的结果应该是:

[tram@~]$ locale

LANG=zh_CN.gbk

LC_CTYPE="zh_CN.gbk"

LC_NUMERIC="zh_CN.gbk"

LC_TIME="zh_CN.gbk"

LC_COLLATE="zh_CN.gbk"

LC_MONETARY="zh_CN.gbk"

LC_MESSAGES="zh_CN.gbk"

LC_PAPER="zh_CN.gbk"

LC_NAME="zh_CN.gbk"

LC_ADDRESS="zh_CN.gbk"

LC_TELEPHONE="zh_CN.gbk"

LC_MEASUREMENT="zh_CN.gbk"

LC_IDENTIFICATION="zh_CN.gbk"

LC_ALL=zh_CN.gbk

[tram@~]$

再看看XMODIFIERS:

echo $XMODIFIERS

得到的结果应该是:

[tram@~]$ echo $XMODIFIERS

@im=fcitx

[tram@~]$

ok!现在你在终端里输入命令:

fcitx

应该有一个图标出现在桌面顶部的中间了吧?再按一下ctrl+space(也就是空格),就能切换出输入条了。如果上面的命令得到的结果不对,那就要回过头检查一下。有一个注意事项,不要用gedit来编辑.bashrc文件,因为它会保存成utf8编码的,程序就读不出来了。

切换出了输入条,可能在输入条上还没有汉字,或者汉字比较难看,这就说明字体没设置好了。打开~/.gWuBi/profile文件,里面有一行:

字体=*

把后面的星号换成你系统里的字体,比如simsun,一般系统里没有simsun,可以添加一个,最简单的方法是找一个点阵字体,把它放在/usr/X11R6/lib/X11/fonts/misc目录下,运行命令:

mkfontdir

下一次进入Xwindow,就能看到比较好看的字体了。下载点阵字体,到 http://www.linuxfans.org/nuke/module...eninfo&did=523

现在的ebf用的字体是14号的。

你可能要问了:应该把*换成什么呢?用命令:

xlsfonts | grep gbk

我的系统里得到的结果是:

[tram@/usr/X11R6/lib/X11/fonts/misc]$ xlsfonts | grep gbk

-misc-simsun-medium-r-normal--0-0-0-0-c-0-gbk-0

-misc-simsun-medium-ri-normal--0-0-0-0-c-0-gbk-0

-misc-simsun-medium-ro-normal--0-0-0-0-c-0-gbk-0

把第二个字段填入,也就是simsun

如果没有gbk字体,可以把上面命令中的gbk换成gb2312。

OK,现在设置已经完成,能正常使用了,不过可能你已经注意到了,上面我们是手动打开输入法的,那么能不能自动加载呢?当然可以,在你的用户目录下找文件:.xinitrc或.xsession,把里面加上一句:

fcitx &

好了,现在你一进入XWindow,就能使用输入法了。注意的是,这一句话要加在窗口管理器的前面,比如你用的是kde,那就应该是:

fcitx &

exec startkde

你用的是gnome,就应该是:

fcitx &

exec gnome-session

其他的也一样。

在不同的版本下安装经验搜集:

suse 8.2:

http://www.linuxsir.org/bbs/showthre...threadid=36076

http://www.linuxsir.org/bbs/showthre...threadid=32345

suse 8.1中的问题与解决:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

debian:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

下面这一篇注意回贴里有一个.xsession文件:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

红旗3.2桌面版:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

红旗3.0 server:

http://www.linuxsir.org/bbs/showthre...threadid=27060

mandrake 9.1:

http://www.linuxsir.org/bbs/showthre...threadid=30376

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

redhat:

http://www.linuxsir.org/bbs/showthre...threadid=27869

英文系统,中文输入:

http://www.linuxsir.org/bbs/showthre...threadid=17458

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

turbolinux:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

slackware 9:

http://www.linuxsir.org/bbs/showthre...ighlight=fcitx

freebsd 4.8:

http://www.linuxsir.org/bbs/showthre...hlight=freebsd

gentoo与lfs:

http://www.linuxsir.org/bbs/showthre...threadid=14646

如果用kde3.1.1,即qt是3.1.2版时,为了在kde程序里面使用fcitx,需要用qtconfig把xim的选项改成over the spot。

http://www.linuxsir.org/bbs/showthre...highlight=spot

本文链接如果有误,请指出,如果有什么好的内容,也请告诉我。

不管是在哪个版本下遇到问题,都可以用通用的设置方法来试一试,就我自己来说,在四个版本下用的设置方法都一样的。

此帖于 03-05-06 23:39 被 tram 编辑.

_____________________________________

LFS全套中文文档:http://lfs.linuxsir.org(主力)

LFS 英文站点镜像:http://lfs.cosoft.org.cn

二笔输入法 for Linux: http://ebf.cosoft.org.cn

tram 当前离线 [发送短消息]

回复时引用此帖

tram

查看公开信息

发悄悄话给 tram

访问 tram 的个人网站

查找 tram 发表的更多帖子

windrose

 

windrose 的头像

资 料:

★☆★督导☆★☆

注册日期: Oct 2002

帖子: 5,815

精华: 47

  第 2 帖 

发帖时间: 03-05-06, 23:04

建议补充一点,如果用kde3.1.1,即qt是3.1.2版时,为了在kde程序里面使用fcitx,需要用qtconfig把xim的选项改成over the spot。

_____________________________________

Free as in freedom, slack as in Slackware.

欢迎访问 http://slack.linuxsir.org

个人blog:http://blog.donews.com/windrose/

RSS:http://feeds.feedburner.com/windroseblog

windrose 当前离线 [发送短消息]

回复时引用此帖

windrose

查看公开信息

发悄悄话给 windrose

访问 windrose 的个人网站

查找 windrose 发表的更多帖子

tram

 

tram 的头像

资 料:

★☆★版☆主★☆★

注册日期: Sep 2002

帖子: 7,314

精华: 28

  第 3 帖 

发帖时间: 03-05-06, 23:22

对,我就是想做成索引,这样方便查找。就怕时间长了不让改

此帖于 03-05-06 23:26 被 tram 编辑.

_____________________________________

LFS全套中文文档:http://lfs.linuxsir.org(主力)

LFS 英文站点镜像:http://lfs.cosoft.org.cn

二笔输入法 for Linux: http://ebf.cosoft.org.cn

tram 当前离线 [发送短消息]

回复时引用此帖

tram

查看公开信息

发悄悄话给 tram

访问 tram 的个人网站

查找 tram 发表的更多帖子

北南南北

 

北南南北 的头像

资 料:

管理员

注册日期: Apr 2002

帖子: 24,140

精华: 520

  第 4 帖 

发帖时间: 03-05-07, 17:35

辛苦了。。。tram兄。。。

等咱们把文章管理系统架好了,研究一下论坛的权限。 现在一打开权限,就把所有的权限打开了。对于咱们数据库来说,风险太大。

这个问题一定会解决。

_____________________________________

请弟兄们发帖时要写个好标题,多谢!

签名不支持html和bbcode,请弟兄为了版面的整洁,请更改签名档,谢谢!

请各版版主及初学Linux的弟兄,请在您的签名写上机器的配置,以及您所用的系统(包装版本号,内核),谢谢。

Slackware 10.x kernel 2.6.12

****************************************

因为太笨,所以努力;

北南南北 当前离线 [发送短消息]

回复时引用此帖

北南南北

查看公开信息

发悄悄话给 北南南北

查找 北南南北 发表的更多帖子

thought

资 料:

注册会员

注册日期: May 2002

帖子: 105

精华: 1

  第 5 帖 

发帖时间: 03-05-14, 19:52

我觉得还有一个东东要设正确

今天刚刚发现的,以前都没有有设这个变量,所以都不知道,今天我按照一篇文章里的做法把LANGUAGE设成了UTF8什么什么的,结果fcitx输入条就调不出来了,我把它设成zh_CN.GBK就可以了

thought 当前离线 [发送短消息]

回复时引用此帖

thought

查看公开信息

发悄悄话给 thought

查找 thought 发表的更多帖子

明月几时有

资 料:

注册会员

注册日期: May 2003

帖子: 33

精华: 0

  第 6 帖 

发帖时间: 03-05-18, 23:00

为什么我不能用双拼

我的系统为RH9,小企鹅1.8.4

拼音,五笔都正常,但不能用双拼。

我已经改了profile文件,如下:

#所有“是否”问题的回答:1-->是(打开) 0-->否(关闭)

#区域设置=zh_CN.GB18030

显示字体=*

是否使用大字体=1

字体区域设置=zh_CN.GBK

是否自动隐藏输入条=1

是否隐藏主图标=0

是否光标跟随=1

是否使用Z输入拼音=0

出错时是否响铃=1

是否使用双拼=1

是否使用ctrl+shift=0

是否切换区位输入法=1

#重码调整方式说明:0-->不调整 1-->快速调整 2-->按频率调整

拼音单字重码调整方式=1

拼音词组重码调整方式=1

拼音常用词重码调整方式=2

是否模糊an和ang=0

是否模糊en和eng=0

是否模糊ian和iang=0

是否模糊in和ing=0

是否模糊ou和u=0

是否模糊uan和uang=0

是否模糊c和ch=0

是否模糊f和h=0

是否模糊l和n=0

是否模糊s和sh=0

是否模糊z和zh=0

拷贝了sp.dat文件,如下:

# fcitx 双拼编码方案

# 以'#'打头的行是注释。

#

# 双拼编码范围为英文字母键(A到Z)和分号键“;”。在此文件中,为了看起来醒目起见,双拼编码

# 采用大写英文字母(此处也可以用小写字母);而在实际输入过程中,只能使用小写英文字母。

[零声母标识]

=O

[声母]

# 双拼编码就是它本身的声母不必列出

ch=I

sh=U

zh=V

[韵母]

# 双拼编码就是它本身的韵母不必列出

ai=L

an=J

ang=H

ao=K

ei=Z

en=F

eng=G

er=R

ia=W

ian=M

iang=D

iao=C

ie=X

in=N

ing=Y

iong=S

iu=Q

ng=G

ong=S

ou=B

ua=W

uai=Y

uan=R

uang=D

ue=T

ui=V

un=P

uo=O

重新启动X,仍然不能用双拼,郁闷!!!

_____________________________________

intel850 512MRambus 1.7Gcpu 40Gharddisk

realtek8139 yamaha724

Nv Gefore 2 Mx/Mx400

明月几时有 当前离线 [发送短消息]

回复时引用此帖

明月几时有

查看公开信息

发悄悄话给 明月几时有

访问 明月几时有 的个人网站

查找 明月几时有 发表的更多帖子

lieying2126

资 料:

注册会员

注册日期: May 2003

帖子: 2

精华: 0

  第 7 帖 

发帖时间: 03-05-25, 19:10

[root@localhost root]# fcitx

无法加载字体 -*-fixed-medium-r-normal--16-*-*-*-*-*-*-*,-*-simsun-medium-r-normal--16-*-*-*-*-*-zh_CN.GB2312-*

字体区域 zh_CN.GB2312 不支持! 使用 zh_CN.GB2312

已经存在另一个同名服务程序,因而无法启动输入服务 fcitx

What to do next ? Please Help.

my os is RedHat Linux 9.0.

_____________________________________

我很喜欢到这里来。

lieying2126 当前离线 [发送短消息]

回复时引用此帖

lieying2126

查看公开信息

发悄悄话给 lieying2126

访问 lieying2126 的个人网站

查找 lieying2126 发表的更多帖子

lieying2126

资 料:

注册会员

注册日期: May 2003

帖子: 2

精华: 0

  第 8 帖 

发帖时间: 03-05-25, 21:55

谢谢fcitx,我已经搞好了。

_____________________________________

我很喜欢到这里来。

lieying2126 当前离线 [发送短消息]

回复时引用此帖

lieying2126

查看公开信息

发悄悄话给 lieying2126

访问 lieying2126 的个人网站

查找 lieying2126 发表的更多帖子

明月几时有

资 料:

注册会员

注册日期: May 2003

帖子: 33

精华: 0

  第 9 帖 

发帖时间: 03-05-29, 07:06

找到问题的所在了,是因为用了gedit来编辑profile,这样文本的内码其实就不对了,gedit默认是utf8来保存文件的的。用vi来编辑一下文件就可以了。

引用楼主的一段话"有一个注意事项,不要用gedit来编辑.bashrc文件,因为它会保存成utf8编码的,程序就读不出来了",我在其中受到了启发。

另外,你也可以在gedit里面设置让gedit用其他的编码方式保存文件,比如用原来文件的编码方式,自己研究一下设置啦:)

此帖于 03-05-29 07:18 被 明月几时有 编辑.

_____________________________________

intel850 512MRambus 1.7Gcpu 40Gharddisk

realtek8139 yamaha724

Nv Gefore 2 Mx/Mx400

明月几时有 当前离线 [发送短消息]

回复时引用此帖

明月几时有

查看公开信息

发悄悄话给 明月几时有

访问 明月几时有 的个人网站

查找 明月几时有 发表的更多帖子

sadgone

资 料:

注册会员

注册日期: Mar 2003

帖子: 78

精华: 0

  第 10 帖 

发帖时间: 03-05-29, 13:50

gaimqq0.62无法办入啊!!slackware9.0

sadgone 当前离线 [发送短消息]

回复时引用此帖

sadgone

查看公开信息

发悄悄话给 sadgone

访问 sadgone 的个人网站

查找 sadgone 发表的更多帖子

abfall

资 料:

注册会员

注册日期: Sep 2002

我的住址: Aachen

帖子: 58

精华: 0

  第 11 帖 

发帖时间: 03-06-05, 16:51

我的小企鹅 只有在mozilla上才可以输入中文,怎么办……?

gentoo

kde

abfall 当前离线 [发送短消息]

回复时引用此帖

abfall

查看公开信息

发悄悄话给 abfall

查找 abfall 发表的更多帖子

better0796

 

better0796 的头像

资 料:

注册会员

注册日期: May 2003

帖子: 68

精华: 0

  第 12 帖 

发帖时间: 03-06-06, 11:37

唉,我就是XFree86-devel这个没有,光盘又没带,怎么办?带了还不一定会装呢,说具体点行不行啊?

better0796 当前离线 [发送短消息] 发 QQ 消息给 better0796

回复时引用此帖

better0796

查看公开信息

发悄悄话给 better0796

访问 better0796 的个人网站

查找 better0796 发表的更多帖子

tram

 

tram 的头像

资 料:

★☆★版☆主★☆★

注册日期: Sep 2002

帖子: 7,314

精华: 28

  第 13 帖 

发帖时间: 03-06-06, 14:54

http://rpmfind.net/

找到你的发行版能用的,然后:

rpm -Uvh ****.rpm

_____________________________________

LFS全套中文文档:http://lfs.linuxsir.org(主力)

LFS 英文站点镜像:http://lfs.cosoft.org.cn

二笔输入法 for Linux: http://ebf.cosoft.org.cn

tram 当前离线 [发送短消息]

回复时引用此帖

tram

查看公开信息

发悄悄话给 tram

访问 tram 的个人网站

查找 tram 发表的更多帖子

sandykong

资 料:

注册会员

注册日期: May 2003

帖子: 29

精华: 0

  第 14 帖 

发帖时间: 03-06-07, 10:10

按照贴子上所指引,我已经安装好了fcitx,但是有个问题,就是fcitx每次在系统启动的时候都自动运行,可是自动运行后按 ctrl+space or ctrl+shift都没有反应,我又不知道怎么关闭程序,所以每次都要杀死这个fcitx的进程,然后再重新运行一次,这样才能正常使用 fcitx。

是不是哪个步骤没到位啊,麻烦大家指点一下~~~

_____________________________________

RedHat9.0

AMD XP2500+(Barton)

Kinston DDR 400 512M

sandykong 当前离线 [发送短消息] 发 QQ 消息给 sandykong

回复时引用此帖

sandykong

查看公开信息

发悄悄话给 sandykong

查找 sandykong 发表的更多帖子

better0796

 

better0796 的头像

资 料:

注册会员

注册日期: May 2003

帖子: 68

精华: 0

  第 15 帖 

发帖时间: 03-06-07, 10:17

我这到底算不算装上了呀?

我按照上面的方法下载了fcitx-1.8.5.tar.bz2,

解压到fcitx-1.8.5,

进入此目录运行make

提示:

cd IMdkit/lib;make

make[1]: Entering directory '/usr/local/src/fcitx-1.8.5/IMdkit/lib'

make[1]:Nothing to be done for 'all'.

make[1]:Leaving directory '/usr/local/src/fcitx-1.8.5/IMdkit/lib'

下面make install的提示应该是正常的,完成后运行fcitx在屏幕顶端出现了一个小窗口, fcitx和一个灰色的五,这时我如果切换到另一个需要用输入法的窗口就不见了它!!!我以为是XFree86-devel没装呢,下载rpm包安装又提示装过了,怎么办?

better0796 当前离线 [发送短消息] 发 QQ 消息给 better0796

回复时引用此帖

better0796

查看公开信息

发悄悄话给 better0796

访问 better0796 的个人网站

查找 better0796 发表的更多帖子

回复

第1页,共14页 1 2 3 11 > 最后 »

« 上一主题 | 下一主题 »

主题工具

显示可打印版本 显示可打印版本

邮寄本页给好友 邮寄本页给好友

对此主题评分

您已经对此主题评分过

发帖规则

您不可以发表新主题

您不可以回复主题

您不可以上传附件

您不可以编辑您的帖子

论坛启用 BB 代码

论坛启用 表情符号

论坛禁用 [IMG] 代码

论坛禁用 HTML 代码

论坛跳转

用户控制面板悄悄话收藏夹会员在线状态搜索论坛论坛首页 Linux 综合讨论区    Linux 基础建设讨论专版    Linux shell进阶应用与shell编程    Linux 专业英文精品技术文档专题        Gas中文小组讨论区    Linux 硬件及周边设备    Linux 网络与服务器架设    Linux 系统及网络安全讨论专版    Linux及计算机学科基础理论版 Linux 发行版讨论区    Linux 发行版SuSE专题    Linux 发行版Archlinux讨论区    Linux 发行版Debian专题        Ubuntu Linux 专题讨论    Linux 发行版Slackware专题    Linux 发行版 LFS 讨论区    Linux 发行版Mandriva专题    Linux 发行版Redhat/Fedora专题    Linux 发行版Gentoo讨论区    Linux发行版 Turbolinux专题    Mini Linux 及准系统研究    Linux 发行版其他专题        Linux 发行版红旗专题        PPC Linux Users 讨论区 Linux 软件应用讨论区    Linux 输入法专题讨论    Linux 软件专题讨论        软件下载讨论区        即时通讯 Linux 高级应用讨论区    Linux 数据库专题讨论    Linux 认证考试学习与经验交流    Linux 内核研究小组    Linux 企业级应用专题讨论 编程开发讨论区    Linux 程序设计专题讨论    Java 程序设计开发讨论    perl & php & python 脚本程序开发    嵌入式Linux讨论区──实验田版 Unix 技术讨论区    BSD 讨论专题        BSD 新闻安全观察        RelaxBSD 讨论区    Solaris 讨论专题 社区中心    LinuxSir 论坛管理        LinuxSir 论坛临时存放区    LinuxSir 文章管理系统和BBS程序研究小组    小企鹅新闻图书馆    LinuxSir.Org 同城行 ── 我的城市 Free系列小组  

所有时间均为北京时间。现在的时间是 21:24。

联系我们 - 首页 - 论坛存档 - 返回顶端

Powered by vBulletin 版本 3.5.1

版权所有 ©2000 - 2006, Jelsoft Enterprises Ltd.

官方中文技术支持: vBulletin 中文

版权所有 ©2000 - 2005, Jelsoft Enterprises Ltd.

附件:fcitx-3.1.1.tar.bz2,2920856 bytes,把下载下来的文件更名为:fcitx-3.1.1.tar.bz2

PostgreSQL 昨天,今天和明天(即其简介)(转帖)

   PostgreSQL 昨天,今天和明天(转自:http://www.pgsqldb.org/twiki/bin/view/PgSQL/PostgreSQL)

    * PostgreSQL 昨天,今天和明天

          o 1.简介

          o 2.前言

          o 3.历史

                + 3.1 出身名门

                + 3.2 创世纪——Ingres

                + 3.3 新项目 Postgres

                + 3.4 炎黄子孙的贡献 Postgres95

                + 3.5 国际化 PostgreSQL

          o 4. 特点

          o 5. 人物

                + 5.1 Tom Lane:

                + 5.2 Vadim Mikheev:

                + 5.3 Jan Wieck:

                + 5.4 Thmas Lockhart:

                + 5.5 Bruce Monjian:

                + 5.6 Marc Fournier:

                + 5.7 Peter Eisentraut:

          o 6. 展望

          o 7.后记

          o 8. 附录

                + 8.1 参考资料

                + 8.2 历史

                + 8.3 特性

          o 9. 注释:

1.简介

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。请参看本站主要成员何伟平(BITBIRD)的文章“PostgreSQL的昨天、今天和明天—自由软件数据库PostgreSQL简介”。

PostgreSQL 的昨天今天和明--自由软件数据库 PostgreSQL 简介 v2.0

2.前言

今天,如果人们谈论起计算机操作系统,肯定有非常多的人会津津乐道自由软件操作系统Linux,毕竟,众人拾柴火焰高, 如今没有任何人敢于忽视 Linux 这个自由软件操作系统在我们星球的存在,就连国内比较特殊的环境下,也不断地有 各种各样的 Linux 秀出现让公众,甚至是那些对计算机知之甚少的群众都能意识到 Linux 的存在。但是,如果我们 说起数据库,可能绝大多数人只会记得有 Oracle,IBM DB2,Informix,Sybase,MS SQL Server,以及在互联网广为 使用的轻量级 Mysql,而提到 PostgreSQL 的名字,可能很多人都会皱起眉毛:“这是什么?”

“PostgreSQL 是一种特性非常齐全的自由软件的对象-关系性数据库管理系统(ORDBMS),它的很多特性正是当今许多商业数据库的前身” --摘自 PostgreSQL 手册。

为了让大家能够清楚的了解 PostgreSQL,请听我细细道来。

3.历史

3.1 出身名门

谈到 PostgreSQL,我们不得不谈 Berkeley,也就是中文中的“加州大学伯克利分校”这所大名鼎鼎的大学。 老实说,伯克利(BSD)对计算机科学的贡献可谓巨大,在整个计算机科学的发展史上,几乎到处都有这所学 校的研究人员和学生的足迹。只要稍微对计算机技术史有些记忆的人都会记得在 Unix 操作系统的发展里程碑 上 BSD 这三个字的分量,然而也许正是由于 BSD 在系统和网络领域里的光芒太耀眼,掩盖了 BSD 对计算机技术其他分支的贡献,而PostgreSQL 正是其中之一。

3.2 创世纪——Ingres

追本溯源地讲,PostgreSQL 最早开始于 BSD 的 Ingres 项目,这个项目主要是研究关系型数据库技术,早在 1970 年 E.F. Codd 就提出了关系模型,从那以后,人类在计算机领域的数据管理就进入了一个新的时期。从此人们开始用抽象的关系语句来描述自己的 数据,大大提高了人类对数据的抽象描述能力。而 Ingres 项目正是就此进行研究的,它始于 1977 年,到 1985 年结束,而其研究成果后来被一家叫 Relational Technologies 的商业公司拿去做成了商品软件,后来这家公司又被 Computer Associates(CA)收购,不知道 CA 的 JASMINE里面是否还有当年 Ingres 的影子?

3.3 新项目 Postgres

然后,从1986年开始,BSD 的 Michael Stonebraker 教授领导了称为 Postgres 的“后Ingres”项目, 其主要目的是数据库管理系统的更高级研究,因此而产生了 PostgreSQL 的直接前身,Postgres,而 PostgreSQL 的名字也是从 Postgres 项目继承过来的。 这个项目的成果是非常巨大的,在现代数据库的许多方面都做出的大量的贡献,比如,面向对象的数据库, 部分索引技术,规则,过程和数据库扩展等方面都走在了数据库管理系统的前列。而且,Stonebraker 教授还做出了一件造福全人类的事情, 那就是把 Postgres 放在了 BSD 版权的保护下,在这个版权的范围里,任何人几乎可以做任何事情,包括增强它和商业化等。条件只是把 BSD 的版权声明包括在软件的源程序里。

Postgres 在 1989 年发布了第一个版本,因为是BSD版权,所以很快在各种研究机构和一些公众服务组织里广泛使用起来, 由于 众多用户使 Postgres 的开发变得更多地是维护代码和打补丁,而日益背离了原先的数据库管理系统的研究的目标, 到了1994年 Postgres 在版本 4.2 的时候正式终止。而 Postgres 的许多成果则转化成一个商业公司 Illustra,后来 Illustra 被 Informix 收购。看到这里,想必大家应该对 Postgres 的影响有一些认识了吧。

3.4 炎黄子孙的贡献 Postgres95

Postgres 并没有因为 Postgres 项目的终止而停止发展,而是获得了一次新生:在1994年,两名伯克利的研究生在做研究生课题的时候, 向 Postgres 里增加了现代的 SQL 语言的支持。请不要奇怪,SQL 的祖宗是 E.F. Codd 的关系模型,但是 SQL 作为语言,一直到1992年 才形成真正的国际标准(还是草案),当时称为 SQL2,但是人们常称为 SQL92。而在那之前,所以查询语言都是由不同的数据库管理系统 自己实现的,比如,在 Postgres 里原来是用叫 Postquel 的查询语言;这两位研究生是 Andrew Yu 和 Jolly Chen,看了名字,大家可能会想:“很象中国人的名字嘛”,没错,他们就是黑头发黄皮肤的炎黄子孙,不过很可惜的是他们并没有在中国的(包括台湾省的)xx大学取得这样的成就。这样,Postgres 迎来了 1995年,大概 是受xxxxxxx95 的命名方法的“启发”吧,他们俩把这个版本的 Postgres 命名为 Postgres95,并且继续发布了几个版本,增强了一些特性。

3.5 国际化 PostgreSQL

到了 1996 年,Andrew Yu 和 Jolly Chen 相继离开 Postgres95 的开发队伍,(Andrew Yu 加入了 Informix, Jolly Chen 继续读书),而在一些自由软件黑客(注1)的发起下,Postgres 项目又开始了新的历程,最先是由几位加拿大黑客发起,开始了 PostgreSQL 项目,后来参与的人越来越多,逐渐成为了一个由近20个国家的近四十名黑客组成的团体共同开发的 自由软件项目。PostgreSQL 重新把版本号放到了原先 Postgres 项目的顺序中去,从 6.0 开 始(Postgres 本身到4.2,Postgres95 算5.0)。经过五年多的协作开发,PostgreSQL 可以说是目前世界上最先进,功能最强大的自由软件的数据库管理系统。

目前,PostgreSQL 的稳定版本到了 7.3,具有非常丰富的特性和商业级数据库管理系统的质量。而即将到来的 7.4 版本又将是一次飞跃, 将向高质量大型数据库管理系统的方向又迈进了一步。

在这里,先让我告诉您怎么念 PostgreSQL (的确很绕口):Post-gres-Q-L,大概因为大多自由软件开发人员把 SQL 念做:S-Q-L,而不是 IBM 常说的(squel)。

4. 特点

PostgreSQL 可以说是最富特色的自由数据库管理系统,甚至我们也可以说是最强大的自由软件数据库管理系统。事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,目前的提交人员已经超过三十人, 而且在许多黑客的努力下,PostgreSQL 的质量日益提高,也从另外一个侧面上增加了人们使用 PostgreSQL 的信心,毕竟数据库管理系统不能象桌面操作系统那样 一天宕一次还让人觉得挺满意 :-P。

从技术角度来讲,PostgreSQL 采用的是比较经典的 C/S (client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式, 这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写, 由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。

说完优点,不能不说几句缺点,不能因为是自由软件而偏袒 PostgreSQL,从 Postgres 开始,PostgreSQL 就经受了多次变化。

首先,早期的 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性, 性能还是使用方便方面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,目前,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。 不过学院味也给 PostgreSQL 带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种, 所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。

其次,PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如联机热备份,数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。

但是,话说回来,PostgreSQL 拥有极其强大的扩展能力,你可以很容易地扩展数据类型,内部函数,聚集,操作符等等,而且,别忘了,你拥有所有的源程序, 理论上你可以做任何你可以做的事情。因此,很多缺点,在转瞬之间就会消失也是很正常的。

总而言之,PostgreSQL的特性已经完全可以满足绝大部分用户的需要,而且其质量和特性仍然在日新月异地进步着,所以, 我们有理由相信在不远的将来,PostgreSQL 肯定能够成为一种优秀的,自由的,商业数据库的替代产品。

5. 人物

对 PostgreSQL 做出巨大贡献的人物太多了,我在这里只能摘其一二而为之,

首先是伯克利,作为一个学院,好象不应该进入人物的范畴,但是如果没有 BSD 的优良的学术环境,创造出这样优秀的科学技术成果是不可能的, 只要想想我们的 5000 多所科研单位就能明白。(我是不是应该还要在这里感谢美国?:-P)。

然后是 Michael Stonebraker 教授,正是这位学究的开明才能让这样优秀的科技成果走向了公众,甚至到了“自由的对立面”的我们的手里, 而且是所有的东西,不仅仅是一堆二进制文件。

接下来有我们的同胞,Andrew Yu 和 Jolly Chen,他们为 PostgreSQL 走向现代做出了巨大的贡献。

最后是现在正在辛勤耕耘的黑客们,这些黑客以他们执着的精神和高超的技术,为 PostgreSQL的日益完善做出了不可磨灭的贡献。 黑客总共有数十人之多,我只好把核心成员挑出来介绍一下,而对于贡献了更多代码的其他重要黑客,只好暂且委屈他们一阵子了,如果有机会,我还会进一步介绍他们。

5.1 Tom Lane:

一位卡耐基梅隆大学(CMU)的电子工程学 ph.D(博士),是 PostgreSQL 的非常重要开发人员,其足迹遍部PostgreSQL 的每一个角落, 可以说对 PostgreSQL 的性能和稳定性以及特性的取舍有极其重要的贡献,在开始参加 PostgreSQL 项目之前,他已经有了十余年的自由软件开发经验, 可以说是老牌的自由软件程序员;

5.2 Vadim Mikheev:

一位来自俄国的黑客,其特点是专干大项目,比如 V6.3 里面的子查询,V6.5里面的多版本并行控制,以及 7.1 里面的预写式日志系统等, 可以说是 PostgreSQL 的开拓者;

5.3 Jan Wieck:

一位来自德国的黑客,有十余年的数据库开发经验,原先曾经为 SAP 等大型软件厂商工作,后来加入 PostgreSQL 的开发;他也是喜欢大项目, 不过兴趣是用户端的特性,比如外键,一些过程语言比如 pl/pgsql 等,7.1 版本中的 CLOB(文本大对象)的部分也是他的作品。

5.4 Thmas Lockhart:

一位毕业于加洲理工学院的美国黑客,主要负责文档和若干种数据类型(尤其是与时间相关的类型),SQL 语法的标准一致性,时间类型,以及完整性约束等。

5.5 Bruce Monjian:

来自美国,是一些文档和项目协调,以及许多完整性约束和 SQL 语法的标准等,比如 OUTER JOIN,同时维护 TODO 列表和 FAQ。

5.6 Marc Fournier:

加拿大黑客,主要的协调人,维护站点,邮件列表,以及发布版本等。

5.7 Peter Eisentraut:

德国/瑞典黑客,主要负责文档编写、完善,认证和权限管理,制作脚本和一些管理配置接口的制定,以及客户端交互工具 psql 等, 其作用日益突出,可以说在 7.2 版本的开发过程中是不可或缺的人物。

另外还有大量来自欧洲,澳洲和亚洲(日本)等地的黑客。实际上,有越来越多的黑客的作用变得日益重要,在邮递列表中每天都有来自不同黑客的 各种各样的补丁程序。所以,自由软件的特点就是,只要愿意,任何人都可以对它有足够的影响。也就是说,我们命运是真正掌握在自己手里的。

6. 展望

就目前而言, PostgreSQL 的前景非常好,目前的稳定版本是 7.3,这个版本在 7.2 版本的基础上再次做了大量的改进和提高。

7.1 是继 6.5 之后的又一个巨大的变化,她首先引入了预写式日志的功能。这样,事务就拥有了完善的日志机制,可以提供更好的性能, 以及还可以实现更优良的备份和灾难恢复的能力(比如联机热备份和宕机后的自动恢复)。其次是对文本类型的数据段的长度不再限制, 从而很大程度上解决了 PostgreSQL 的大对象的问题。尤其在如今的 web 应用盛行的环境下,这个功能几乎立即将 PostgreSQL 摆到了 可以与其他所有类型的数据库竞争的地位。而且在 SQL 标准上又有进一步的提高,比如 OUTER JOIN 的支持等等。

7.2 版本在 7.1 的基础上改进了原来的数据库定期清理工作中排它锁的过程,使数据库维护不再影响数据库的正常使用,同时增强了查询优化的智能, 使数据库对索引的使用更加准确;同时还消除了每个安装节点的免维护事务次数的限制;国际化;以及还有大量其他方面的增强。

7.3 版本在 7.2 版本的基础上,继续增强了许多特性,包括可返回结果集的用户函数,模式(schema)的支持,准备好的查询规划,DROP COLUMN 的支持, 以及vacuum的优化,更好的查询计划器,更好的权限管理系统等。7.3 版本在许多现实项目中得到了充分的证明和大量的应用。标志着 PostgreSQL 正式成为主流数据库产品之一。

在未来的 7.4 版本中,我们有望可以看到索引空间的重复利用,优化了的 IN 子句(大家不用为 IN 恶劣的性能发愁了),新的前后端协议,更优的聚集函数。 甚至还可能提供 windows 的本机移植版本和具有相当的热备份功能的 PITR (即时恢复)和很多人期待已久的表空间的功能。可以说 7.4 将是一个完全胜任 7x24 应用需求的真正的高端数据库,一个具有开拓企业级应用的数据库。我们有什么理由不欢呼呢?

7.后记

作为一种数据库管理系统,PostgreSQL 并不象 Linux 与某些商业操作系统相比那样,得到迅速广泛的承认,这一点是可以理解的,Tom Lan 曾经有一段话说得实在: “首先,商业数据库系统不象某些商业操作系统那样实在太烂,相反,商业数据库系统的质量还是非常高的,与之相比,PostgreSQL 仍然有一定差距”但同时他也相信 “我们已经达到商业级的数据库系统的质量......”

的确,自由软件的发展具有跳跃性,因为开发者大多是利用空余时间进行开发,当开发者云集的时候,新的东西可能一下子就增加上去;而如果在自由软件运动的低潮时, 因为缺少开发人员,所以可能会有一长段时间的沉寂,而后又会随着社会的发展而出现新的活动。也就是一种螺旋的上升。

因而,我们在面对自由软件的时候,一定要有一点:要相信自己和依靠自己,因为自由软件的发展的确需要每一个爱好者充分发挥自己的聪明才智, 同时,也只有自由软件给你提供了这样的机会——依靠自己的力量改变自己的命运。最后,也只有这样,自由软件之光才能真正照耀我们的世界。

8. 附录

8.1 参考资料

8.2 历史

http://www.daemonnews.org/199907/devhistory.html

http://www.postgresql.org/osdn/history.pdf

http://www.postgresql.org/osdn/tour.pdf

8.3 特性

http://www.postgresql.org/idocs/

http://www.pgsqldb.com/pgsqldoc-7.2c/index.html

9. 注释:

本文中黑客一词源于英文 Hacker,是指那些计算机尖子,对计算机及全人类都有贡献的创造者, 不是一般媒体上的“黑客” 概念,那是指 Cracker,也就是破坏者。

 

作者:何伟平 laser(at)pgsqldb(dot)org laser(at)zhengmai(dot)com(dot)cn

注:如要转载请注明作者和出处 www.pgsqldb.org 或 laser.zhengmai.com.cn

远程连接PostgreSQL服务器。

众所周知,Postgres 8.1 分别发行了 Linux和Windows 两个版本,

所以,介绍远程连接的主题时,也是分别介绍这两个系统上是如何实现的。

其实,windows版比linux版的步骤少一些。

一、实现远程连接Linux上的PostgreSQL服务器。

主要分两个步骤:

<1>要使Linux上的PostgreSQL打开 “unix的tcpip套接子”。

编辑 $POSTGRES/data/postgresql.conf 文件,

将tcpip_socket=off改成tcpip_socket=on即可。

<2>设置远程访问认证机制。

编辑 $POSTGRES/data/pg_hba.conf 文件,

这个文件上面一大堆都是介绍如何使用这个文件使进行配置的,

最下面才是真正让我们填写东西的地方。

其中,有一行注释:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

说明每一行有五个字段,

分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。

下面,我只介绍一些针对每个字段常用的选项。

字段一:TYPE。

可以选择:local或host。

前者只能允许本地的用户登陆Postgres数据库;后者可以接受远程客户登陆。所以,

我们应该使用“host”。

字段二:DATWABSE。

连接用户可以使用的数据库名字。可以使Postgres的一个具体的

数据库名,也可以使用“all”来允许用户访问所有数据库。

字段三:USER。

可以指定某个具体的用户来连接Postgres数据库(还要结合后面的地址字段),

也可以使用“all”来允许所有用户连接数据库。

字段四:DIDR-ADDRESS。

这可能会让您不知所措,不知道它为何物。

其实,它就是IP地址与掩码的另一种表示方法而已。

Postgres是通过这个字段来了解,允许那些IP或IP网段连接此服务器。

它的格式是: IP地址/掩码。

这个掩码和子网掩码是一个道理,只不过是用一个小于等于32的正数来表示,

表示的正是子网掩码中高几位为1,

比如,255.255.255.0 就是“24”,说明高24位是1。

192.168.0.1/32 相当于 IP为192.168.0.1,子网掩码为255.255.255.255的网段,

很显然,这只表明192.168.0.1IP自己。

如果您对IP地址与子网掩码不太了解,请查看相关资料。

字段五:METHOD。

这是验证方法。可选的有:

reject:拒绝这个IP的用户访问;

md5:密码以md5作为hash编码;

password:密码作为明文传输(好恐怖!);

krb5:密码以krb5作为hash编码。

下面举一个例子,来说明如何进行设置:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

#允许IP为192.168.0.1的所有用户登陆到Postgres服务器的所有数据库,采用md5验证。

host      all                 all            192.168.0.1/32          md5

#允许用户testuser在192.168.0.XX的网段任意机器登陆Postgres服务器,

#只能使用数据库testdb,采用md5验证。

host      testdb           testuser 192.168.0.1/24          md5

==============================================

二、实现远程连接Windows上的PostgreSQL服务器。

前面都已经看懂后,这个配置就很简单了,除了上面介绍的步骤<1>不用修改后,

只需要配置步骤<2>中介绍的东西即可。(因为winodws不会存在unix的tcpip套接子)。

安装PostgreSQL。

    现在最新版本的 Postgres 8.1 已经发行了 for windows 版本的发行包,

可以在官方网站得到 “http://www.postgresql.org/”。

   由于它最早出现在 *nix 系统上,

而且它的文档也多是使用 *nix 上的概念,

所以,这里介绍一下此软件在 Linux 下的安装。

(只要有在windows下安装软件经验的朋友,都可以在windows下顺利安装它)

  由于我使用的Linux是SlackWare,所以,有一些词语会涉及到SlackWare,不过,

对于其他发行版本的Linux也适用。

  1、在 http://www.postgresql.org/ftp/source/v8.1.3/ 这里下载 postgresql-8.1.3.tar.bz2 这个文件,

这就是我们要安装的发行包。

  2、顺序执行下面的命令,每个命令是一行:

<1>tar jxvf postgresql-8.1.3.tar.bz2 //解开发行包

<2>cd postgresql-8.1.3 //进入软件目录

<3>./configure --prefix=PREFIX //PREFIX是自己想安装到哪里的路径,比如/usr/local/postgres

<4>make //使用GNU make工具编译源代码

<5>make install //最后安装软件。

  3、起动Postgres不能使用root用户(Postgres不建议这样作),所以,接下来创建一个专门管理Postgres的用

户:

useradd -m postgres //追加一个叫postgres的用户, -m是为这个用户自动建立一个home目录。

passwd postgres //为这个用户修改密码,刚才添加用户时没有指定密码,所以现在只需输入新密码并确认密

码即可。其实,在useradd的时候也可以顺便设置密码的,感兴趣的话,自己研究一下吧!

  4、为了postgres用户可以正常使用postgres软件,下面将安装postgres软件的目录的拥有者改成postgres用

户:

比如安装在了/usr/local/postgres 这里,那么,以root身份执行

" chown postgres -R /usr/local/postgres "。

chown用于改变一个路径的拥有者, -R 用于将拥有者置于指定路径及其子目录。

  5、创建数据库集群:

<1>由于要管理postgres软件,所以,首先将用户改成postgres。执行命令 " su postgres ",如果是非root用

户执行这个命令,还要输入postgres用户的密码才行。

<2>进入postgres安装目录的bin文件夹。

<3>执行 " ./initdb -D /usr/local/pgsql/data "

  6、所有东西都准备好了,就该起动服务器了。

<1>执行“ ./pg_ctl start -l logfile ”。

<2>然后可以运行“ ./psql ” 来使用PostgreSQL软件了。

  7、每次都到$POSTGRES_HOME/bin中,执行“点”命令显得有点傻,所以,还是将Postgres的安装目录

加入到PATH环境变量中,使得每次启动机器,都可以使用其bin目录中的命令进行管理:

这里介绍一个简单的方法,编辑 "/etc/profile" 文件,在"export PATH"句(可能还包括其他环境变量)前面

加上一句:"PATH=$PATH:/usr/local/postgres/bin"(不含双引号,冒号后面适Postgres安装目录的bin目录)即

可。

  8、通常,需要在Slackware 起动的时候,自动起动PostgreSQL服务器,需要修改文件 /etc/rc.d/rc.local

,加入下面代码:

su - postgres -c 'postgres安装目录/bin/pg_ctl -D postgres安装目录/data -l ~/postgersql.log start'

例如:安装在 /usr/local/postgres 目录,就可以写成:

su - postgres -c '/usr/local/postgres/bin/pg_ctl -D /usr/local/postgres/data -l ~/postgersql.log

start'

由于SlackWare是BSD风格的linux,所以我采用了这种简单的方式,

如果您的linux属于SysV风格,也可以将启动脚本放到 /etc/rc.d/rc.3和/etc/rc.d/rc.5 目录下,

并作相应的设置。

不过,无论是BSD风格还是SysV风格的Linux,都可以使用我在(8)中介绍的方式实现开机启动Postgres的目的。

PostgreSQL学习计划。

PostgreSQL是一个非常优秀的开源数据库系统,

它是以加州大学伯克利分校计算机系开发的  POSTGRES 版本 4.2 为基础的对象关系型数据库管理系统(ORDBMS)。 POSTGRES 领先的许多概念只是在非常迟的时候才出现在商业数据库中。

使用它,应该不会让用户失望的。

让我们就一起努力学习它吧!

如何实现Windows 与 Linux文件系统共享(转帖2篇)

如何实现Windows 与 Linux文件系统共享(http://www.51cto.com/html/2005/1201/12824.htm)

http://www.51cto.com 2005-12-01 19:03 出处:Linux乐园

Linux的开放性与免费理念吸引了无数的计算机爱好者,越来越多的人加入了Linux的阵营。但Linux使用的文件系统为Ext2,和传统的Windows系列的FAT不同,如何沟通两者间的资源成为应用中的一大问题。下面就介绍几种解决该问题的方法。

(一)同一机器上文件系统的共享

1.Windows系统下访问Linux分区信息

网络上提供一些程序用于在Windows系统下访问Linux分区信息,可以在http: //uranus.it.swin.edu.au/~jn/linux/下找到相应软件;也可以在www.globalxs.nl站点下载程序 fsdext.zip,解压后依照说明将vext2d.vxd、tsdext2.vxd拷贝到c:\windows\system目录下,使用命令 mount /dev/hda2 g将Linux分区虚拟为新的盘符g,卸载也只需使用命令mount /u g即可轻松完成。

2.Linux系统下访问Windows分区信息

直接使用Linux 的mount 命令加配参数即可实现。

(二)不同机器间文件系统的共享

需要在Linux系统上配置NFS、Samba等服务进程以支持资源互访。下面介绍如何配置Samba服务进程。

Samba由两个守护进程smbd和nmbd组成,可由命令 /etc/rc.d/init.d/smb start 启动。启动时读取配置文件 /etc/smb.conf。查询是否启动可使用ps -ef |grep smbd命令;停止Samba可使用命令/etc/rc.d /init.d/smb stop。smb.conf文件主要包括以下部分:

1.Global (全局)参数

该部分设置整个系统的规则,定义了一些公共变量。

netbios name=web

定义Windows系统“网上邻居”中所见的机器名。

workgroup=SambaServer

定义服务器的工作组名。

server string=Samba Server

对主机的说明信息。

hosts allow=202.110.211.225

guest account=hgz

定义smb用户名称。

security=user

定义访问权限。访问权限由低到高有三种:share、user和server。其中share安全级别最低,user模式要求连接时输入用户名和口令,可由以下命令建立smb网络用户:

#dduser username 添加该用户为Linux用户。

#mbpasswd -a username 添加该用户为smb用户。

#mbpasswd username 修改smb账户的口令,最后与/etc/passwd中的口令一致。

server模式要求用户的认证由Samba服务器或NT服务器来完成。

encrypt passwords=yes

设置是否需要加密口令。因为Windows系列默认采用加密口令传输,而Linux默认采用非加密口令传输,为保证smb网络用户的正常登录,在user安全级下设置为加密,在share 安全级下可不设。

smb passwd file=/etc/smbpasswd

由命令cat /etc/passwd | mksmbpasswd.sh > /etc /smbpasswd产生。

interfaces=202.110.211.225/24

配置smb服务所使用的网卡IP以及子网掩码。A段网址为8, B段网址为16, C段网址为24。如果有两个以上网卡,要全部列出。

name resolve order=host dns bcast

设定smb服务时,从机器netbios名称到IP地址的解析方式,默认顺序为host lmhosts wins bcast。如果局域网内有DNS,可设置为host dns bcast。

wins support=no

设置是否有wins支持。

public = yes

为yes时,“网上邻居”中可见该资源,否则不可见。

browseable = yes

为yes时,“网上邻居”中可见该资源,否则不可见。

printing = bsd

指定Linux使用哪个打印机守护进程(bsd、sysv、hpux、aix、qnx、plp),同时向samba说明命令lpr和lpq的缺省值。

printcap name = /etc/printcap

定义了打印配置文件所处的位置。

load printers = yes

表明是否加载printcap 定义的所有打印机以供浏览。

2.Directory shares (目录共享部分)——包括标准[homes]部分

该部分通常定义了Linux机器上共享的目录资源,其名字可以由用户确定。段中的设置控制了每一个用户目录的共享权限。

Comment = Home Directories

设定在浏览本机资源时,出现在指定资源旁边的字符串。

Browseable = no

控制一项服务是否能够出现在网上邻居中,no意味着这个目录将在浏览时显示为要验证的用户名称,yes则显示 homes 和要验证的用户名称的共享目录。

Read only = no

控制是否允许通过验证的用户对主目录有写入的权限,但最终取决于该目录的 Unix 权限。无论 Unix 的权限怎样, 设置 read only = yes 后, 主目录只能是只读的。

3.Printer shares (打印共享)部分

Comment = All Printers

指定为哪些设备进行设置。

Browseable = no

指定是否能够浏览Windows 客户机的printcap 文件定义的全部打印机。

Printable = yes

指定是否允许不打印而去访问与打印服务相关的假脱机目录,例如:/var/spool/lpd/lp。

Public = no

指定未被Linux 用户名验证的Windows 客户机是否有权使用Samba 打印服务。

Writable = no

指定是否有权写假脱机目录。

Create mode = 0700

假脱机文件的缺省许可权限。

4.Public 部分,配置共享目录部分

Comment = Public Stuff ;说明部分

Path = / ;共享的Linux目录

Writable = no ;写权限

Printable = yes

配置文件设置完毕后,重新启动Samba,可以运行以下几个程序进行检测或共享Windows系统资源。

● 运行Testparm程序检测smb.conf的配置文件是否正确。

● 启动Samba2.0.3版本中的swat程序,就可以利用浏览器来配置smb.conf文件。编辑/etc/inetd.conf 文件,将其中swat前的注释去除,再由inetd 服务启动。重启后在Linux主机或相同的客户机浏览器的地址中输入http://Linux主机名或IP地址,就可以利用浏览器来进行smb.conf 文件的配置与管理工作。

● 运行Smbstatus程序显示Samba 当前输出的共享资源。

● 可以把Smbclient程序用作一个基于Linux的Microsoft(smb)的客户,提供FTP模式界面,便于进行调试。

例如:smbclient -L 主机名 <口令> <-U 用户名>

可以查看主机的共享资源信息。smbclient \\\\主机名\\共享目录名 <口令> <-U 用户名>可以连接网络共享资源。其用法类似ftp。

● Nmbclient是可以用来进行调试的程序。

● Smbfs程序是使用SMB协议工作的文件系统。

● Smbmount程序用于在Linux上安装smbfs。使用它可以将Windows共享目录安装在 Linux主机上。

例如:smbmount \\\\主机名\\共享目录名 <口令> -c ‘mount /mnt/smb’命令就可以将指定主机的共享名安装到本地的目录。

● Smbumount程序用于卸载Smbmount建立的共享资源目录。

● Smbtar是一段shell脚本程序,它通过Smbclient使用 tar格式备份和恢复一台远程Windows的共享文件。

有关 Blogger API、MetaWeblog API、MovableType API的转帖3篇

1、Blogger API(http://www.blogger.com/developers/api/1_docs/)

Blogger API

By Evan Williams, 8/7/01

Update: 8/13/01 -Ev.

Update: 6/27/03 -Jason Shellen

Welcome to the Blogger API. This site is for independent developers and partners who are interested in hooking into Blogger with other programs, interfaces, or environments.

Please Note: While we will continue to support the Blogger API we will not be developing it further. We are working along with others in the blogging industry to produce a new, more robust API. You can view the current state of the Echo Project here. For further updates, stay tuned to the bloggerDev mail list and www.blogger.com/developers/.

DISCLAIMER: The current state of this interface is experimental and alpha. I'm sure something's broken and other things will change. Your help in figuring these things out are appreciated, but no guarantees are made about reliability, robustness, or longevity. Use at your own risk.

Protocols

The Blogger API is currently implemented for XML-RPC. There may be others some day.

Methods

These are the available methods:

blogger.newPost: Makes a new post to a designated blog. Optionally, will publish the blog after making the post.

blogger.editPost: Edits a given post. Optionally, will publish the blog after making the edit.

blogger.getUsersBlogs: Returns information on all the blogs a given user is a member of.

blogger.getUserInfo: Authenticates a user and returns basic user info (name, email, userid, etc.).

blogger.getTemplate: Returns the main or archive index template of a given blog.

blogger.setTemplate: Edits the main or archive index template of a given blog.

More Info

There is a mailing list.

There is also a node in the XML-RPC directory pointing to implementations and such.

AppKeys

Good news, friends! We no longer require appkey registration to use the Blogger API. If you send us an appkey of 0123456789ABCDEF, then everything will work fine.

Each API request requires an application key ("appkey"), which is a unique identifier for each application using the interface. You can register an application and get a key with this form. You can distribute appkeys with source code that uses the API. Please use different keys for different apps. Appkeys will be used for tracking, stats, and, potentially, other stuff.

Acknowledgements

The Blogger API implementation uses the Helma XML-RPC library for Java. Also?: Tomcat. And lots of help from some of the people over here.

Copyright © 2001 Pyra Labs

2、有没有与网志交互的 Web Services APIs?(http://hanhan.blog.ccidnet.com/blog/ccid/do_showone/tid_18919.html)

有没有与网志交互的 Web Services APIs?

作者: hanhan11 发表日期: 2006-01-20 17:19 文章属性: 原创 复制链接 

许多网志引 擎都提供属于自己的 Web service 接口,通过编程与网志交互,但目前还没有出现一种标准化的东西。

.Text 和 dasBlog 两者都提供某些 .asmx 端点,可以通过 SOAP 来实现编辑功能,但其接口是不同的。Blogger.com 提供基于 XML-RPC 的交互式 API (Blogger API)。Userland Software 对Blogger API 的功能进行了增强,并把它叫做 MetaWeblog API。这些可能是当今公认的网志 APIs,但仍然不是所有网志引擎都支持的。还有一个用于添加评论的独力的 API 叫做 Comment API,同样,它也不是被普遍支持。

  Atom 组正在努力解决这些问题,Atom API 定义了一个标准的网志 API 用于发布和编辑网志内容。有关信息请参考 The Atom Project 网站。 

阅读全文(192) | 回复(0) | 推送 | 举报 

3、wordpress的XML-RPC开发(http://wuhongsheng.com/blog/archives/2006/268/)

February 5, 2006

wordpress的XML-RPC开发

Filed under: 技术 — 吴洪声 @ 11:17 pm

wordpress支持使用xml-rpc进行开发。但网络上很少有相关的资料。这两天在做一个离线写blog的东东,研究到了这个东西,顺便做一下记录。

wordpress的xml-rpc支持多种API,根据从xmlrpc.php里面提取的数据,支持的API有:

// Blogger API

‘blogger.getUsersBlogs’ => ‘this:blogger_getUsersBlogs’,

‘blogger.getUserInfo’ => ‘this:blogger_getUserInfo’,

‘blogger.getPost’ => ‘this:blogger_getPost’,

‘blogger.getRecentPosts’ => ‘this:blogger_getRecentPosts’,

‘blogger.getTemplate’ => ‘this:blogger_getTemplate’,

‘blogger.setTemplate’ => ‘this:blogger_setTemplate’,

‘blogger.newPost’ => ‘this:blogger_newPost’,

‘blogger.editPost’ => ‘this:blogger_editPost’,

‘blogger.deletePost’ => ‘this:blogger_deletePost’,

// MetaWeblog API (with MT extensions to structs)

‘metaWeblog.newPost’ => ‘this:mw_newPost’,

‘metaWeblog.editPost’ => ‘this:mw_editPost’,

‘metaWeblog.getPost’ => ‘this:mw_getPost’,

‘metaWeblog.getRecentPosts’ => ‘this:mw_getRecentPosts’,

‘metaWeblog.getCategories’ => ‘this:mw_getCategories’,

‘metaWeblog.newMediaObject’ => ‘this:mw_newMediaObject’,

// MetaWeblog API aliases for Blogger API

// see http://www.xmlrpc.com/stories/storyReader$2460

‘metaWeblog.deletePost’ => ‘this:blogger_deletePost’,

‘metaWeblog.getTemplate’ => ‘this:blogger_getTemplate’,

‘metaWeblog.setTemplate’ => ‘this:blogger_setTemplate’,

‘metaWeblog.getUsersBlogs’ => ‘this:blogger_getUsersBlogs’,

// MovableType API

‘mt.getCategoryList’ => ‘this:mt_getCategoryList’,

‘mt.getRecentPostTitles’ => ‘this:mt_getRecentPostTitles’,

‘mt.getPostCategories’ => ‘this:mt_getPostCategories’,

‘mt.setPostCategories’ => ‘this:mt_setPostCategories’,

‘mt.supportedMethods’ => ‘this:mt_supportedMethods’,

‘mt.supportedTextFilters’ => ‘this:mt_supportedTextFilters’,

‘mt.getTrackbackPings’ => ‘this:mt_getTrackbackPings’,

‘mt.publishPost’ => ‘this:mt_publishPost’,

// PingBack

‘pingback.ping’ => ‘this:pingback_ping’,

‘pingback.extensions.getPingbacks’ => ‘this:pingback_extensions_getPingbacks’,

‘demo.sayHello’ => ‘this:sayHello’,

‘demo.addTwoNumbers’ => ‘this:addTwoNumbers’

其中最后两个API为用于测试的DEMO。

根据XML-RPC的约定,客户端必须向服务器作以下post:

POST /RPC2 HTTP/1.0

User-Agent: Frontier/5.1.2 (WinNT)

Host: betty.userland.com

Content-Type: text/xml

Content-length: 181

<?xml version="1.0"?>

<methodCall>

<methodName>examples.getStateName</methodName>

<params>

<param>

<value><i4>41</i4></value>

</param>

</params>

</methodCall>

User-Agent和Host项是必须的。

Content-Type的值必须是text/xml.

Content-Length必须指定,而且必须是正确的值。

下面是一个例子:

POST /api/RPC2 HTTP/1.0

User-Agent: Java.Net Wa-Wa 2.0

Host: plant.blogger.com

Content-Type: text/xml

Content-length: 515

<?xml version="1.0"?>

<methodCall>

<methodName>blogger.newPost</methodName>

<params>

<param><value><string>C6CE3FFB3174106584CBB250C0B0519BF4E294</string></value></param>

<param><value><string>744145</string></value></param>

<param><value><string>ewilliams</string></value></param>

<param><value><string>secret</string></value></param>

<param><value><string>Today I had a peanut butter and pickle

sandwich

for lunch. Do you like peanut-butter and pickle sandwiches? I do.

They’re yummy. Please comment!</string></value></param>

<param><value><boolean>false</boolean></value></param>

</params>

</methodCall>

服务器返回的数据:

HTTP/1.1 200 OK

Connection: close

Content-Length: 125

Content-Type: text/xml

Date: Mon, 6 Aug 20001 19:55:08 GMT

Server: Java.Net Wa-Wa/Linux

<?xml version="1.0"?>

<methodResponse>

<params>

<param>

<value><string>4515151</string></value>

</param>

</params>

</methodResponse>

如果出现错误,服务器会返回以下内容:

HTTP/1.1 200 OK

Connection: close

Content-Length: 225

Content-Type: text/xml

Date: Mon, 6 Aug 20001 19:55:08 GMT

Server: Java.Net Wa-Wa/Linux

<?xml version="1.0"?>

<methodResponse>

<fault>

<value>

<struct>

<member>

<name>faultCode</name>

<value><int>4</int></value>

</member>

<member>

<name>faultString</name>

<value><string>java.lang.Exception: java.lang.Exception: Error:

AppKey is

invalid or inactive.</string></value>

</member>

</struct>

</value>

</fault>

</methodResponse>

wordpress, xml rpc

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

水准仪整平的要点

    在搬动仪器到下一站的途中,将三个脚螺旋调节到适中的位置。

    到达下一站后,基本固定两个脚架,确定高度和位置。然后用手抓住第三个脚架前后左右移动,使水准泡大概居中,在合适了的位置固定第三个脚架。三个脚架全部固定后,再调节脚螺旋使水准泡严格居中。

Red Hat Linux 9: Red Hat Linux 入门指南(转)

今天,在linux下访问windows分区查到此文,如法炮制成功。特此转载。(其中的16.4. 访问 Windows 分区)

http://www.chinalinuxpub.com/doc/manual/9.0/rhl-gsg-zh_CN-9/index.html

Red Hat Linux 9

Red Hat Linux 入门指南

版权 © 2003 Red Hat, Inc.

ISBN: N/A

目录

介绍

    1. 本书的变更

    2. 文档约定

    3. 在 X 下复制和粘贴文本

    4. 使用鼠标

    5. 我们需要用户的反馈!

    6. 注册支持

1. 起步准备

1.1. 设置代理

1.2. 术语介绍

1.3. 登录

    1.3.1. 图形化登录

    1.3.2. 虚拟控制台登录

1.4. 图形化界面

1.5. 打开 Shell 提示

1.6. 创建用户帐号

1.7. 文档和帮助

    1.7.1. 说明书页

    1.7.2. Red Hat Linux 的文档

1.8. 注销

    1.8.1. 图形化注销

    1.8.2. 虚拟控制台注销

1.9. 关机

    1.9.1. 图形化关闭

    1.9.2. 虚拟控制台关闭

2. 使用图形化桌面

    2.1. 使用桌面

    2.2. 使用面板

        2.2.1. 使用「主菜单」

        2.2.2. 使用小程序

        2.2.3. 使用通知区域

        2.2.4. 在面板上添加图标和小程序

        2.2.5. 配置桌面面板

    2.3. 使用 Nautilus

    2.4. 从这里开始

        2.4.1. 定制桌面

        2.4.2. 定制系统

    2.5. 注销

3. 配置日期和时间

    3.1. 时间和日期属性

    3.2. 时区配置

4. 软盘和光盘

    4.1. 使用软盘

        4.1.1. 挂载和卸载软盘

        4.1.2. 在 MS-DOS 软盘上存放 Linux 文件

        4.1.3. 格式化软盘

    4.2. 光盘

        4.2.1. 在你的文件管理器中使用光盘

        4.2.2. 在 shell 提示下使用光盘

    4.3. CD-R 和 CD-RW

        4.3.1. 使用 CD Creator

        4.3.2. 使用 X-CD-Roast

        4.3.3. 用命令行工具来使用 CD-R 和 CD-RW

    4.4. 其它资料

        4.4.1. 安装了的文档

        4.4.2. 有用的网站

5. 上网

6. 浏览万维网

    6.1. Mozilla

        6.1.1. 使用 Mozilla

        6.1.2. Mozilla 网页编辑器

    6.2. Galeon

    6.3. 万维网浏览器的快捷键

7. 电子邮件程序

    7.1. Evolution

    7.2. Mozilla Mail

        7.2.1. Mozilla 和新闻组

    7.3. 简单文本电子邮件客户

        7.3.1. 使用 mutt

8. 打印机配置

8.1. 打印机配置工具

8.2. 添加本地打印机

8.3. 选择打印机型号和结束

    8.3.1. 确认打印机配置

8.4. 打印测试页

8.5. 修改现存打印机

    8.5.1. 「队列名称」

    8.5.2. 「队列类型」

    8.5.3. 「打印机驱动程序」

    8.5.4. 「驱动程序选项」

8.6. 管理打印作业

8.7. 其它资料

    8.7.1. 安装了的文档

    8.7.2. 有用的网站

9. 文档操作

    9.1. OpenOffice.org 办公套件

        9.1.1. OpenOffice.org 的功能与特性

        9.1.2. OpenOffice.org Writer

        9.1.3. OpenOffice.org Calc

        9.1.4. OpenOffice.org Impress

        9.1.5. OpenOffice.org Draw

    9.2. 编辑文本文件

        9.2.1. Shell 提示文本编辑器

    9.3. 查看 PDF

10. 音频、视频、以及一般娱乐

    10.1. 播放音频光盘

    10.2. 播放数码音乐文件

        10.2.1. 使用 XMMS

    10.3. 声卡的故障排除

        10.3.1. 如果声卡配置工具不起作用

    10.4. 视频卡故障排除

    10.5. 游戏

    10.6. 在网上寻找游戏

11. 图像操作

    11.1. 查看图像

        11.1.1. 使用 Nautilus 来查看图像

        11.1.2. 使用 gThumb

    11.2. 使用 GIMP 来操作图像

        11.2.1. GIMP 基础

        11.2.2. 载入文件

        11.2.3. 保存文件

        11.2.4. GIMP 选项

    11.3. 其它资料

        11.3.1. 安装了的文档

        11.3.2. 有用的网站

        11.3.3. 相关书籍

12. 使用数码照相机

    12.1. 使用 gtKam

13. Shell 提示基本知识

    13.1. 为什么要使用 Shell 提示

    13.2. Shell 的历史渊源

    13.3. 使用 pwd 来判定你的当前目录

    13.4. 使用 cd 命令来改变所在目录

    13.5. 使用 ls 来查看目录内容

    13.6. 定位文件和目录

    13.7. 从命令行中打印

    13.8. 清除和重设终端

    13.9. 使用 cat 来操作文件

        13.9.1. 使用重导向

        13.9.2. 后补标准输出

        13.9.3. 重导向标准输入

    13.10. 管道和分页器

        13.10.1. more 命令

    13.11. 阅读文本文件的其它命令

        13.11.1. head 命令

        13.11.2. tail 命令

        13.11.3. grep 命令

        13.11.4. I/O 重导向和管道

        13.11.5. 通配符和正则表达式

    13.12. 命令历史和 Tab 自动补全

    13.13. 使用多个命令

    13.14. 所有权和许可权限

        13.14.1. chmod 命令

        13.14.2. 使用数字来改变权限

14. 管理文件和目录

14.1. 文件系统的宏观画面

14.2. 识别和使用文件类型

14.2.1. 压缩的和归档的文件

14.2.2. 文件格式

14.2.3. 系统文件

14.2.4. 编程和脚本文件

14.3. 文件压缩和归档

    14.3.1. 使用文件打包器

    14.3.2. 在 shell 提示下压缩文件

    14.3.3. 在 shell 提示下给文件归档

14.4. 在 shell 提示下操作文件

    14.4.1. 创建文件

    14.4.2. 复制文件

    14.4.3. 移动文件

    14.4.4. 删除文件和目录

15. 安装和更新 Red Hat Linux 软件包

    15.1. Red Hat 网络

    15.2. 勘误列表

    15.3. 安装光盘

    15.4. 下载软件包

16. 常见问题

    16.1. localhost 登录和口令

    16.2. 安装 RPM 时的错误消息

    16.3. 启动应用程序

        16.3.1. 编辑你的 PATH

    16.4. 访问 Windows 分区

    16.5. 快速寻找命令

    16.6. 使用命令历史的窍门

        16.6.1. 其它捷径

    16.7. 防止 ls 输出卷屏

        16.7.1. 打印 ls 的输出

    16.8. 忘记口令

    16.9. 口令维护

    16.10. 把启动时从控制台登录改变为从 X 登录

A. KDE:K 桌面环境

    A.1. 介绍 KDE

    A.2. 寻求帮助

    A.3. 使用桌面

    A.4. 使用面板

        A.4.1. 使用「主菜单」

        A.4.2. 使用小程序

        A.4.3. 在面板上添加图标和小程序

        A.4.4. 配置 KDE 面板

    A.5. 管理文件

        A.5.1. 导航面板

    A.6. 使用 Konqueror 浏览万维网

    A.7. 使用 Konqueror 来查看图像

    A.8. KMail

    A.9. 定制 KDE

    A.10. 从 KDE 中注销

B. 应用程序

C. DOS 和 Linux 常用命令的对比

D. 系统目录

E. 键盘的快捷操作

索引

后记

    前进

    介绍

在jsp页面中获取http请求头的代码(转)

转自:http://www.ericgiguere.com/tools/http-header-viewer.html

Header Viewer Source Code

In case you're wondering, here is the code that prints the headers:

<table width="100%" border="0" cellspacing="0"

       cellpadding="8" bgcolor="#EEEEEE">

      

    <tr><td><b>Name</b></td><td><b>Value</b></td></tr>

    <tr><td colspan="2" width="100%" height="2" bgcolor="#000000"></td></tr>

   

    <c:forEach var="hname" items="${pageContext.request.headerNames}">

   

        <c:forEach var="hvalue" items="${headerValues[hname]}">

            <tr><td valign="top"><c:out value="${hname}"/></td>

            <td valign="top"><c:out value="${hvalue}"/></td></tr>

            <tr><td colspan="2" bgcolor="#000000" width="100%" height="1"></td></tr>

   

        </c:forEach>

    </c:forEach>

</table>

 

As you can see, it's very easy to access the HTTP headers using the Java Standard Tag Library (JSTL), a powerful tag library for use with JavaServer Pages (JSP).

If you didn't realize that this page was built using JSP pages, See How This Site Works for the details.