AutoCAD提高绘图效率的途径和技法(转帖)

AutoCAD提高绘图效率的途径和技法 (转自:http://www.chinaxy.org/forum/view.asp?id=740&p=1)

一、遵循一定的作图原则

  为了提高作图速度,用户最好遵循如下的作图原则:

  1.作图步骤:设置图幅→设置单位及精度→建立若干图层→设置对象样式→开始绘图。

  2.绘图始终使用1:1比例。为改变图样的大小,可在打印时于图纸空间内设置不同的打印比例。

  3.为不同类型的图元对象设置不同的图层、颜色及线宽,而图元对象的颜色、线型及线宽都应由图层控制(BYLAYER)。

  4.需精确绘图时,可使用栅格捕捉功能,并将栅格捕捉间距设为适当的数值。

  5.不要将图框和图形绘在同一幅图中,应在布局(LAYOUT)中将图框按块插入,然后打印出图。

  6.对于有名对象,如视图、图层、图块、线型、文字样式、打印样式等,命名时不仅要简明,而且要遵循一定的规律,以便于查找和使用。

  7.将一些常用设置,如图层、标注样式、文字样式、栅格捕捉等内容设置在一图形模板文件中(即另存为*.DWF文件),以后绘制新图时,可在创建新图形向导中单击"使用模板"来打开它,并开始绘图。

  二、选用合适的命令

  用户能够驾驭AutoCAD,是通过向它发出一系列的命令实现的。AutoCAD接到命令后,会立即执行该命令并完成其相应的功能。在具体操作过程中,尽管可有多种途径能够达到同样的目的,但如果命令选用得当,则会明显减少操作步骤,提高绘图效率。下面仅列举了几个较典型的案例。

  1.生成直线或线段

  (1)在AutoCAD中,使用LINE、XLINE、RAY、PLINE、MLINE命令均可生成直线或线段,但唯有LINE命令使用的频率最高,也最为灵活。

  (2)为保证物体三视图之间"长对正、宽相等、高平齐"的对应关系,应选用XLINE和RAY命令绘出若干条辅助线,然后再用TRIM剪截掉多余的部分。

  (3)欲快速生成一条封闭的填充边界,或想构造一个面域,则应选用PLINE命令。用PLINE生成的线段可用PEDIT命令进行编辑。

  (4)当一次生成多条彼此平行的线段,且各条线段可能使用不同的颜色和线型时,可选择MLINE命令。

  2.注释文本

  (1)在使用文本注释时,如果注释中的文字具有同样的格式,注释又很短,则选用TEXT(DTEXT)命令。

  (2)当需要书写大段文字,且段落中的文字可能具有不同格式,如字体、字高、颜色、专用符号、分子式等,则应使用MTEXT命令。

  3.复制图形或特性

  (1)在同一图形文件中,若将图形只复制一次,则应选用COPY命令。

  (2)在同一图形文件中,将某图形随意复制多次,则应选用COPY命令的MULTIPLE(重复)选项;或者,使用COPYCLIP(普通复制)或COPYBASE(指定基点后复制)命令将需要的图形复制到剪贴板,然后再使用PASTECLIP(普通粘贴)或PASTEBLOCK(以块的形式粘帖)命令粘帖到多处指定的位置。

  (3)在同一图形文件中,如果复制后的图形按一定规律排列,如形成若干行若干列,或者沿某圆周(圆弧)均匀分布,则应选用ARRAY命令。

  (4)在同一图形文件中,欲生成多条彼此平行、间隔相等或不等的线条,或者生成一系列同心椭圆(弧)、圆(弧)等,则应选用OFFSET命令。

  (5)在同一图形文件中,如果需要复制的数量相当大,为了减少文件的大小,或便于日后统一修改,则应把指定的图形用BLOCK命令定义为块,再选用INSERT或MINSERT命令将块插入即可。

  (6)在多个图形文档之间复制图形,可采用两种办法。其一,使用命令操作。先在打开的源文件中使用COPYCLIP或COPYBASE命令将图形复制到剪贴板中,然后在打开的目的文件中用PASTECLIP、PASTEBLOCK或PASTEORIG三者之一将图形复制到指定位置。这与在快捷菜单中选择相应的选项是等效的。其二,用鼠标直接拖拽被选图形。注意:在同一图形文件中拖拽只能是移动图形,而在两个图形文档之间拖拽才是复制图形。拖拽时,鼠标指针一定要指在选定图形的图线上而不是指在图线的夹点上。同时还要注意的是,用左键拖拽与用右键拖拽是有区别的。用左键是直接进行拖拽,而用右键拖拽时会弹出一快捷菜单,依据菜单提供的选项选择不同方式进行复制。

  (7)在多个图形文档之间复制图形特性,应选用MATCHPROP命令(需与PAINTPROP命令匹配)。

  三、使用快车工具(EXPRESS TOOLS)

  所谓快车工具,实际上是为用户设计并随AutoCAD 2000一起免费提供的实用工具库。该库中的大部分工具来自AutoCAD R14的优惠(Bonus)工具,其余的则已被舍弃或改进,同时又增加了一些新工具。快车工具在图层管理、对象选择、尺寸标注样式的输入/输出、图形的编辑修改等众多方面对AutoCAD进行了功能扩展,而且能非常容易地结合在AutoCAD 2000的菜单和工具条中,使用起来方便快捷,故能明显提高你绘图的工作效率。

  安装快车工具的方法,是在安装AutoCAD 2000时选择"完全"安装,或者选择带有"快车工具"选项的"用户"安装。假如当初不是这样,则应以"增加"方式重新安装AutoCAD 2000,并选择需添加的"快车工具"。

  缺省时,AutoCAD 2000在启动时不把快车工具装入内存,以缩短其启动时间。当你第一次使用快车工具时,工具库会自动装入。不过你也可以在开始时用EXPRESS TOOLS命令强行装入。在已正确安装了快车工具的前提下,如果屏幕上未出现其"快车"菜单,你可以使用EXPRESS MENU命令将菜单显示出来。

  下面则是在屏幕上显示"快车"工具条的方法步骤:

  (1)在下拉式菜单中,选择视图>工具条...,则出现"工具条"对话框。

  (2)在名为"菜单组"的下拉组合框中,选择"快车"。

  (3)在名为"工具条"的组合框中点选所需要的选项。凡冠以"X"的选项,将在屏幕上显示其工具条。

  (4)单击"关闭"按钮,退出对话框。

  四、打开或关闭一些可视要素

  图形的复杂程度影响到AutoCAD执行命令和刷新屏幕的速度。打开或关闭一些可视要素(如填充、宽线、文本、标示点、加亮选择等)能够增强AutoCAD的性能。

  (1)如果把FILL设为OFF,则关闭实体填充模式,新画的迹线、具有宽度的多义线、填充多边形等,只会显示一个轮廓,它们在打印时不被输出。而填充模式对已有图形的影响效果,可使用REGEN命令显示出来。另外,系统变量FILLMODE除控制填充模式之外,还控制着所有阴影线的显示与否。

  (2)关闭宽线显示。宽线增加了线条的宽度。宽线在打印时按实际值输出,但在模型空间中是按象素比例显示的。在使用AutoCAD绘图时,可通过状态条上的LWT按钮,或者从"格式"菜单中选择"宽线"选项,用"宽线设置"对话框将宽线显示关闭,以优化其显示性能。系统变量LWDISPLAY也控制着当前图形中的宽线显示。

  (3)如果把QTEXT设为ON,则打开快显文本模式。这样,在图样中新添加的文本会被隐匿起来只显示一个边框,打印输出时也是如此。该设置对已有文本的影响效果,可使用REGEN命令进行显示。另外,系统变量QTEXTMODE也控制着文本是否显示。这在图样中的文本较多时,对系统性能的影响是很明显的。

  (4)禁止显示标示点。所谓标示点,是在选择图形对象或定位一点时出现在AutoCAD绘图区内的一些临时标记。它们能作为参考点,能用REDRAW或REGEN命令清除,但打印输出时并不出现在图纸上。欲禁止标示点显示,可将BLIPMODE设为OFF,以增强AutoCAD的性能。

  (5)取消加亮选择。在缺省情况下,AutoCAD使用"加亮"来表示当前正被选择的图形。然而,将系统变量HIGHLIGHT的值从1改为0,取消加亮选择时,也可增强AutoCAD的性能。

  (6)顺便一提的是,将系统变量REGENMODE的值设为0,或者将REGENAUTO设为OFF,可以节省图形自动重新生成的时间。

  五、及时清理图形

  在一个图形文件中可能存在着一些没有使用的图层、图块、文本样式、尺寸标注样式、线型等无用对象。这些无用对象不仅增大文件的尺寸,而且能降低AutoCAD的性能。用户应及时使用PURGE命令进行清理。由于图形对象经常出现嵌套,因此往往需要用户接连使用几次PURGE命令才能将无用对象清理干净。

  六、使用命令别名和加速键

  AutoCAD为一些比较常用的命令或菜单项定义了别名和加速键。使用命令别名和加速键可以明显节省访问命令的时间。命令别名是在acad.pgp文件中定义的。用任何文本编辑器打开并编辑该文件,就可以添加、删除或更改命令别名。用这种方法定义的别名,当重新进入AutoCAD时即可使用。在最新的软件版本中,用户不必退出AutoCAD就可以利用快车工具重新定义命令别名,但如果使用这种方法,则需要在第一次使用新定义的别名之前,执行REINIT命令以对软件重新初始化。

  命令加速键是在acad.mnu文件中定义的。欲添加、删除或更改命令加速键,用户只能用文本编辑器对acad.mnu文件进行编辑修改。修改过的*.mnu文件必须用MENU命令加载并编译后,新定义的命令加速键方可使用。

AutoCAD设计技巧在线教程连载(转载目录)

AutoCAD设计技巧在线教程连载(第2页:转自:http://www.ddvip.net/machine/autoCad/index2/index.htm)

文章标题 文章序列号 录入时间

 AutoCAD也能一式多份打印输出 第67讲 2005-06-21

 AutoCAD画图技巧 第66讲 2005-06-21

 AutoCAD 2000快捷命令的使用 第65讲 2005-06-21

 AutoCAD各大论坛技巧精华集 第64讲 2005-06-21

 如何将你的AutoCAD绘图加速 第63讲 2005-06-21

 AutoCAD使用技巧六则 第62讲 2005-06-21

 AutoCAD应用技巧精选 第61讲 2005-06-21

 设置AutoCAD的系统变量 第60讲 2005-06-21

 AutoCAD二次开发程序的自动安装处理 第59讲 2005-06-21

 AutoCAD 菜单文件使用五问 第58讲 2005-06-21

 如何减少AutoCAD文件的大小 第57讲 2005-06-21

 AutoCAD2000 的一些实用技巧 第56讲 2005-06-21

 用Pline绘制齿轮 第55讲 2005-06-21

 利用VBA编程实现从EXCEL表到AUTOCAD表转换 第54讲 2005-06-21

 AutoCAD中标注文字与公差的方法 第53讲 2005-06-21

 

 因WBLOCK命令而引起的文件丢失 第52讲 2005-06-21

 AUTOCAD R14中幻灯片的制作 第51讲 2005-06-21

 给AutoCAD增加标注命令 第50讲 2005-06-21

 为DWG文件“减肥” 第49讲 2005-06-21

 AUTOLISP程序设计技巧 第48讲 2005-06-21

 AutoCAD中特定角度及长度捕捉的实现方法 第47讲 2005-06-21

 AutoCAD中关于层的用法介绍 第46讲 2005-06-21

 AutCAD图形文件弄上网页的方法 第45讲 2005-06-21

 为AUTOLISP建立缺省输入函数 第44讲 2005-06-21

 应用AutoCAD几何计算器实现快速定位 第43讲 2005-06-21

 转CAD图到SolidWorks做三维处理 第42讲 2005-06-21

 AutoCAD2005安装详细图解 第41讲 2005-06-21

 AutoCAD 经验与技巧 第40讲 2005-06-21

 在Word中使用AutoCAD图形 第39讲 2005-06-21

 AutoCAD2000软件学习心得 第38讲 2005-06-21

 优化3D图形渲染通道负载 第37讲 2005-06-21

 AutoCAD引发屏保文件关联问题 第36讲 2005-06-21

 AutoCAD线条加粗秘诀 第35讲 2005-06-21

 AutoCAD巧画角平分线 第34讲 2005-06-21

 AutoCAD应用技巧44例 第33讲 2005-06-21

 AutoCAD制表好帮手 第32讲 2005-06-21

 AutoCAD工具栏丢失怎么办 第31讲 2005-06-21

 将AutoCAD图形导入常用软件 第30讲 2005-06-21

 让AutoCAD启动为指定模板 第29讲 2005-06-21

 AutoCAD中线型的定制和使用 第28讲 2005-06-21

 AutoCAD 2000设置技巧 第27讲 2005-06-21

 裁剪AutoCAD的8种途径 第26讲 2005-06-21

 AutoCAD扩展实体数据的分析与应用 第25讲 2005-06-21

 如何在R14下改变中西文的比例 第24讲 2005-06-21

 给AutoCAD 增加超级编辑命令 第23讲 2005-06-21

 AutoCAD设计技巧在线教程连载(第1页:转自:http://www.ddvip.net/machine/autoCad/index2/index1.htm)

章标题 文章序列号 录入时间

 用字符映射表在AutoCAD中快速输入特殊字符 第22讲 2005-06-21

 CAD中剪切或延伸多条线段 第21讲 2005-06-21

 AutoCAD高版本中布局(layout)的使用 第20讲 2005-06-21

 AUTOCAD制作三维模型瓶 第19讲 2005-06-21

 巧借Excel在AutoCAD中绘曲线 第18讲 2005-06-21

 CAD中自动画管线图的LISP程序 第17讲 2005-06-21

 AUTOCAD中自动生成45°视图 第16讲 2005-06-21

 开目CAD图形标题栏信息的自动抽取 第15讲 2005-06-21

 企业如何选择微机平台三维CAD软件 第14讲 2005-06-21

 小巧玲珑的平面制图工具--CB-CAD 第13讲 2005-06-21

 提高AutoCAD绘图效率的一些技巧 第12讲 2005-06-21

 AutoCAD中输出位图 第11讲 2005-06-21

 为AutoCAD R14添加分页打印功能 第10讲 2005-06-21

 ATUOCAD中实体的选择方式 第9讲 2005-06-21

 AutoCAD 2000中自定义填充图案 第8讲 2005-06-21

 AutoCAD输出图像文件技巧 第7讲 2005-06-21

 图解AutoCAD2000足球建模 第6讲 2005-06-21

 将CAD图形导入Coreldraw的实用方法 第5讲 2005-06-21

 在AutoCAD中做纯文本的导入导出 第4讲 2005-06-21

 再谈AutoCAD输出图像文件 第3讲 2005-06-21

 AutoCAD R14的图纸空间 第2讲 2005-06-21

 CAD图形插入Word问题解答 第1讲 2005-06-21

 

基于XML-RPC的BloggerAPI学习(转贴)

基于XML-RPC的BloggerAPI学习(转自:http://blog.donews.com/softbunny/articles/11032.aspx)

blogger_logo.gif   Luliang的mail2blog脚本,通过基于XML-RPC的BloggerAPI来实现的发布blog的功能。

  BloggerAPI是一套程序接口,用以支持远程操作blog.这个规范现在的版本是1.0,是个试验版本和α版本。但是,规范的研发人员不再对BloggerAPI进一步地开发,他们正在制定一套新的、更稳定的API,新项目的名称为echomoinmoin.gif

.

  虽然如此,了解一下这个bloggerAPI还是非常有意义的。一方面有很多语言提供了实现包,另一方面很blog工具也提供了相应的包,如MT。需要说明的是,BloggerAPI提供的功能太有限了,只定义了6个方法或函数,所以出了一个RFC叫 MetaWeblog API,对其进行了扩展。我看了一下,MT2.6.4就支持MetaWeblogAPI.

  下面对二者进行简单地介绍,以后有机会,再跟echo比较一下。:)

BloggerAPI based on XML-RPC

1、方法列表

方法 说明

blogger.newPost 向批定的blog增加新的文章(post),通常会在增加后即发布。

blogger.editPost 编辑一篇文章(post),通常会在修改后发布。

blogger.getUsersBlogs 返回一个成员的所有文章的信息。

blogger.getUserInfo 鉴证一个用户并反回其信息(如userid,email等)

blogger.getTemplate 返回指定的blog的主要或文档索引模板

blogger.setTemplate 编辑指定的blog的主要或文档索引模板

2、blogger.newPost

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

blogid (string) 这个post即将发送到的blog的标志

username (string) 有权post文章的用户名

password (string) 用户密码

content (string) Post的内容

publish (boolean) 是否发布

示例:

请求XML-RPC调用的数据

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>

失败时的应答

错误信息通过XML-RPC <methodResponse>及<fault> 项返回,包含着的 <struct> 有错误码和描述,这是由xml-rpc规范定义.

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>

3、blogger.editPost

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

postid (string) 某篇post的唯一标志

username (string) 有权修改文章的用户名(作者或管理员)

password (string) 用户密码

content (string) Post的内容

publish (boolean) 是否发布

4、blogger.getUserBlogs

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

username (string) 用户名

password (string) 用户密码

成功应答示例

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" encoding="ISO-8859-1"?>

<methodResponse>

<params>

<param>

<value>

<array>

<data>

<value>

<struct>

<member>

<name>url</name>

<value>http://stuff.foo.com/biz</value>

</member>

<member>

<name>blogid</name>

<value>2997323</value>

</member>

<member>

<name>blogName</name>

<value>Blogger Biz Dev</value>

</member>

</struct>

</value>

<value>

<struct>

<member>

<name>url</name>

<value>http://www.blogger.com/</value>

</member>

<member>

<name>blogid</name>

<value>2723</value>

</member>

<member>

<name>blogName</name>

<value>Blogger News</value>

</member>

</struct>

<value>

<struct>

<member>

<name>url</name>

<value>http://www.geocities.com/rafting/</value>

</member>

<member>

<name>blogid</name>

<value>223723</value>

</member>

<member>

<name>blogName</name>

<value>RaftingBlog</value>

</member>

</struct>

</value>

</value>

</data>

</array>

</value>

</param>

</params>

</methodResponse>

5、blogger.getUserInfo

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

username (string) 用户名

password (string) 用户密码

成功应答示例

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" encoding="ISO-8859-1"?>

<methodResponse>

<params>

<param>

<value>

<struct>

<member>

<name>nickname</name>

<value>Ev.</value>

</member>

<member>

<name>userid</name>

<value>1</value>

</member>

<member>

<name>url</name>

<value>http://www.evhead.com</value>

</member>

<member>

<name>email</name>

<value>ev@pyra.com</value>

</member>

<member>

<name>lastname</name>

<value>Williams</value>

</member>

<member>

<name>firstname</name>

<value>Evan</value>

</member>

</struct>

</value>

</param>

</params>

</methodResponse>

6、blogger.getTemplate

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

blogid (string) 这个post即将发送到的blog的标志

username (string) 有权post文章的用户名

password (string) 用户密码

templateType (string) 指定返回哪个模板,目前只能是 "main" 或 "archiveIndex".

成功时的应答,....表示此处内容被我省略。

<?xml version="1.0" encoding="ISO-8859-1"?<<methodResponse<<params<<param<<value<<HTML<

<HEAD<

<TITLE<<$BlogTitle$<: <$BlogDescription$<</TITLE<

</BODY<

</HTML<

</value<</param<</params<</methodResponse<

7、blogger.setTemplate

参数说明

参数 说明

appkey (string) 发送这个post的程序的唯一标志

blogid (string) 这个post即将发送到的blog的标志

username (string) 有权post文章的用户名

password (string) 用户密码

template (string) 模板文本(通常是HTML).必须包含 和标签,因它们需要发布。 (?我的mainindex里没有啊)

templateType (string) 指定返回哪个模板,目前只能是 "main" 或 "archiveIndex".

请求格式示例

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.setTemplate</methodName>

<params>

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

<param><value><string>744154</string></value></param>

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

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

<param><value><string><html><head><title><$BlogTitle$></title></head><body><Blogger><BlogDateHeader><h1><$BlogDateHeaderDate$></h1></BlogDateHeader><$BlogItemBody$><br></Blogger></body></html></string></value></param>

<param><value><string>main</string></value></param>

</params>

</methodCall>

MetaWeblog API

这个rfc的最新发布是在08/26/2003.

1、什么是MetaWeblog API

  MetaWeblog API (MWA)是一套编程接口,允许外面的程序能取得和设置blog文章的文本或属性。它基于流行的XML-RPC通信协议,后者在很多的流行的开发环境中都有了实现的包。

2、MetaWeblog API与Blogger API 的关系

  MetaWeblog API是对Blogger API增强, Blogger API只能取得或设置blog文章的文本内容(hedong问,能取得吗?).在2002年春天MWA面世,在此以前许多blog工具能存储许多扩展数据,但不能访问或编辑这些数据,因为没有一个通过的API。

  到2003年夏天,在本文的写作期间,大部分流行的blog工具和编辑器,能同时支持Blogger API 和MetaWeblog API.

3、MetaWeblog API和 RSS 2.0 的关系

MetaWeblog API利用XML-RPC来描述一篇blog文章. 我们使用了RSS2.0中对一个项的术语来描述一篇blog文章的元数据,而不是重新发明一套。请参照RSS2.0中对文章的title, link 、description,author, comments, enclosure, guid等的定义或命名。更进一步,由于RSS2.0是可扩展的,因而MetaWeblog API也是可扩展的. 我们在MWA中设计了一些用以表述属性和命名空间的约定。

4、基本函数(entry-points)

1)metaWeblog.newPost (blogid, username, password, struct, publish) returns string

2)metaWeblog.editPost (postid, username, password, struct, publish) returns true

3)metaWeblog.getPost (postid, username, password) returns struct

blogid, username, password 和publish参数的含义同 Blogger API. newPost返回的字符串表示post_id,同Blogger API定义的一样. 而那个struct就是MWA的精华所在。

5、数据结构

  在newPost和editPost中,内容信息不再跟BloggerAPI中那是一个字符串,而是一个数据结构。这个数据结构的成员,就是rss2.0中定义的ITEM的元素。参见后面附表。

  当一个元素有属性时,用一个数据结构(属性做成员)传递属性及其相应的值。如enclosure元素,用一个包含url, length 和type的结构传递属性。

对source元素,数据结构的成员为url 和name,前者为source的属性后者为source值。

对categories元素,传递一个字符串数组。在服务器端,如果传来的category不存在,则忽略不报错,且只保存有效的那些category.(hedong,好象没说domain属性的事啊)

  服务器必须忽略所有不能理解的元素。

在调用 metaWeblog.newPost 或 metaWeblog.editPost时,如果数据结构中含有一个名叫flNotOnHomePage的 boolean 值,则主页不显示此文章而只在分类中显示。

6、其它函数

1)metaWeblog.newMediaObject (blogid, username, password, struct) returns struct

  参数的struct,至少包含name, type and bits三个元素。

name是个字符串,可以用来作存储对象的文件名或用于对象列表的显示。它决定weblog如何引用这个对象。如果name和weblog已有一个对象重名,则替换掉已有的对象。

type是个字符串,表示对象的类型,必须是个标准的MIME类型,如 audio/mpeg or image/jpeg or video/quicktime.

bits是个base64-编码的二进制值,包含着对象的内容。

这个结构可以含有其它的元素,这些元素可以或不能被内容管理系统保存.

当调用失败时,抛出error.当成功时,返回的strcut中,至少要有一个元素url,用以指明这个对象如何被访问。其值只能是一个HTTP url或FTP url.

2)metaWeblog.getCategories (blogid, username, password) returns struct

返回的struct中,为每个分类提供一个子结构,子结构中至少包含三个元素:description, httpurl 和 rssurl.

3)metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs

  返回是一个结构数组,盛放着最新发布的文章信息。每个结构的内容同metaWeblog.getPost返回内容相同.

  numberOfPosts指明要取回的按发布时间倒序计数的文章数量,当值超过总文章数时,返回全部文章信息。

7、传送带属性的元素

  除了enclosure和source元素有专门规定外,其它元素按下列规则处理:

1)如果一个元素有属性,则用一个struct来表示,各属性为struct的子元素。

2)如果一个元素同时有属性和值,则用一个一个struct来表示,各属性为struct的子元素,再增加一个叫_value的子元素,表示元素的值。这也就要求,元素的属性名不能为_value.

8、传送某命名空间的元素

  RSS 2.0允许使用命名空间. 如果你要传送的元素是一个命名空间的一部分,那就在传递给 newPost 或 editPost 的struct中增加一个子struct,以指明命名空间的URL为名,以要传送的元素值为子元素。

9、说明

  在MWA中不要明确要求传送appkey值,如果应用程序要传送appkey,则在struct中增加一个名为appkey的元素,并赋之以相关的值。

附表:RSS2.0中ITEM的元素列表  

元素(Element) 描述(Description) 例子(Example) 重要性 属性

title 项(item)的标题 Venice Film Festival Tries to Quit Sinking 必备

link 项的URL http://www.nytimes.com/2002/09/07/movies/07FEST.html 必备

description 项的大纲 Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged. 必备

author 该项作者的email oprah@oxygen.net 可选

category 包含该项的一个或几个分类(catogory) Simpsons Characters 可选 domain可选,指分类法的URL

comments 该项的评论(comments)页的URL http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290 可选

enclosure 描述该附带的媒体对象 可选 url/length/type皆必备,type须是标准MIME类型

guid 项的唯一标志符串 http://inessential.com/2002/09/01.php#a2 可选 isPermaLink可选,默认为真,指明guid是否为一永久URL。

pubDate 项的发布时间 Sun, 19 May 2002 15:21:36 GMT 可选

source 该项来自的RSS道 Quotes of the Day 可选 Url必备

附:MWAAPI清单

   1. metaWeblog.newPost (blogid, username, password, struct, publish) returns string

   2. metaWeblog.editPost (postid, username, password, struct, publish) returns true

   3. metaWeblog.getPost (postid, username, password) returns struct

   4. metaWeblog.newMediaObject (blogid, username, password, struct) returns struct

   5. metaWeblog.getCategories (blogid, username, password) returns struct

   6. metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=11032

[点击此处收藏本文]   发表于 2004年04月07日 10:24 PM

Linux常用下载工具推荐(转自:http://phpads.bokee.com/4591810.html

phpads的博客

最利于维护的网站目录结构- -| 回首页 | 2006年索引 | - -Linux下常用压缩格式的压缩与解压方法

Linux常用下载工具推荐

关键词: linux    下载                                         

  Windows中有很多下载工具,如耳熟能详的FlashGet,NetAnt等。随着Linux的发展,特别是桌面应用的成熟,越来越多的用户转向了Linux。面对网上丰富的下载资源,Linux用户如何下载呢?其实Linux下载和在Windows下载一样,都离不开下载工具。那Linux中又有哪些下载工具呢?本文就为大家介绍Linux中常用的下载工具。图形界面下载工具     对于Linux初学者来说,图形化下载工具无疑是最佳选择。Linux提供了很多类似Windows中FlashGet、网络蚂蚁等下载工具,下面就为大家详细介绍一下,希望大家能找到自己得力的下载工具。

  

   KGet     KGet是KDE默认的断点续传工具,通常无需安装。它界面简洁,操作方便,高效的拖拽下载功能最令人称道。比较遗憾的是它不支持代理服务器及SOCKS5代理功能。功能上虽然不如FlashGet全面和强大,但对于日常下载已经绰绰有余了,推荐初学者使用,其界面如图1所示。

  选择“主选单”→“互联网”→“KGet”或直接使用“Alt+F2”快捷键并输入“kget”命令即可运行程序,其界面如图1所示。第一次使用会弹出一个对话框,选择KGet的工作方式。可选择与Konqueror集成也可选择独立运行,不习惯使用Konqueror作浏览器的话,建议选择后者。它的使用也非常的简单,在“打开”对话框中输入下载文件的地址,KGet就可下载了。更为方便的是拖拽下载,单击“拖放目标”按钮就会出现拖放标志,只需将下载链接拖到该标志即可开始下载。KGet同网络蚂蚁一样也支持定时下载、下载完毕可设定自动断开连接或关机,具体设置方法为选择“设置”→“配置KGet”→“自动”标签页并将相应选项选中,设定具体的时间和操作便可定时下载。 Gwget     Gwget是GNOME下常用的一个图形化下载工具。它是命令行下常用下载工具Wget的GTK图形化前端,具有Wget的全部功能,如断点续传、代理下载等功能等。 1.安装 Gwget可到http://nchc.dl.sourceforge.net/sourceforge/gwget/gwget-0.93.tar.gz下载,然后在终端中使用如下命令进行安装: #tar zxvf gwget-0.93.tar.gz #cd gwget-0.93/ #./configure #make #make install 2.设置     成功安装后便可在终端中运行“gwget”命令启动Gwget。图形界面操作起来十分便捷,具体下载操作只需将下载地址复制到“文件”→“URL”中即可,单击“确定”按钮便可下载,图2便是下载中的Gwget。此外,在“编辑”→“首选项”中可设置Gwget的其他功能,如下载文件夹、限速、代理等。由于Gwget和KGet使用上大同小异,这里就不作更详细地介绍了。

  Downloader for X     Downloader For X(文中简称为D4X)是Linux下功能强大的图形化下载工具。支持HTTP与FTP协议,具有类似NetAnt和FlashGet等多线程、断点续传下载等功能。D4X还具有连接超时断点续传、记录下载日志、模拟下载、链接拖拽下载、自动复制剪贴板链接到下载地址栏中等功能。 1.下载和安装 D4X的下载地址为http://www.krasu.ru/soft/chuchelo/files/d4x-2.5.0final.tar.gz,下载后使用如下命令安装: #tar zxvf d4x-2.5.0final.tar.gz #cd d4x-2.5.0final #./configure #make #make install 成功安装后,运行“d4x”命令便可直接运行。它的界面如图3所示,和FlashGet有点相像吧。

  2.使用和设置     D4X的使用十分简单,下载文件时,只需在“添加新的下载任务”对话框中输入下载文件地址即可。如果下载地址需要用户名和密码,可在这个对话框中直接输入。如要计划下载,可在时间选项中设定下载时间。此外,在下载任务选项中,可设定一些下载的配置,如下载文件默认目录、默认线程个数、界面风格等。值得一提是代理选项,可指定默认的代理服务器和SOCKS5代理,具体设置如图4所示。

  WxDfast     WxDfast也是一个图形化的下载工具,支持多线程、断点续传等功能,最大特点是下载速度快。可在http://heanet.dl.sourceforge.net/sourceforge/dfast/wxdfast-0.2.1-src.tar.gz下载WxDfast的最新版本。然后使用如下命令进行安装: #tar jxvf wxdfast-0.2.1d.tar.bz2 #cd wxdfast-0.2.1-src #make install     在终端下运行“./wxdfast”命令便可运行程序。WxDfast界面非常简洁,其界面如图5所示。全英文界面使用起来可能不如KGet方便,好在它的操作和KGet、D4X基本相同,大家可参照学习,这里就不赘述了。

  Aria     Aria是个小巧的多线程下载工具,简单易用的界面用起来得心应手。可在http://aria.rednoah.com/download_e.html下载最新版本,然后使用如下命令进行编译安装: #./configure #make #make install 成功安装后直接运行如下命令便可运行Aria: #aria& Aria的界面如图6所示,它的操作和D4X差不多,可参照使用。

                                           命令行下载工具   

       对于喜欢命令行操作及追求高效率、高速度下载的朋友,推荐使用命令行下载工具。命令行工具不但使用方便,而且大多具有很高的下载速度及下载效率,尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。

   Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装: #tar zxvf wget-1.9.1.tar.gz #cd wget-1.9.1 #./configure #make #make install 它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址] 1.Wget常用参数 ◆-b:后台下载,Wget默认的是把文件下载到当前目录。 ◆-O:将文件下载到指定的目录中。 ◆-P:保存文件之前先创建指定名称的目录。 ◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。 ◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。     除了上述常用功能,Wget还支持HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文件,将“http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。此外,Wget还可下载整个网站,如下载http://man.chinaunix.net整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net 其中-r参数是指使用递归下载,-p是指下载所有显示完整网页所以需要的文件,如图片等,-np是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。

   Prozilla     Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装: #tar zxvf prozilla-1.3.7.4.tar.gz #cd prozilla-1.3.7.4 #./configure #make #make install Prozilla命令格式如下: #proz [参数] [下载地址] 常用的选项有: ◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。 ◆-P, --directory-prefix=DIR:指定将下载的文件保存在DIR/目录。 ◆-r, --resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz 这样便以5线程进行文件的下载,并将文件保存到当前目录。和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。

   MyGet     MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。在http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2下载其最新版本0.1.0,下载后使用如下命令安装: #tar jxvf myget-0.1.0.tar.bz2 #cd myget-0.1.0 #./configure #make #make install MyGet命令格式如下: #mytget [选项] [下载地址] 常用的选项: ◆-d [目录]:指定下载到的文件在本地存放的位置,默认当前目录。 ◆-f [文件]:指定下载文件名称。 ◆-h:帮助选项。 ◆-n [线程数]:下载线程数量,默认为4个。 ◆-x [代理服务器地址]:设置代理服务器地址,如“-x http://user:password@host:port”。 MyGet常用的形式如下: #mytget -d /root/ -n 10 http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip Linuxdown     Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载。在https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。然后使用如下命令进行编译安装: #tar zxvf linuxdown-1.1.0.tar.gz #cd dandelion/ #make #make install linuxdown格式为: #linuxdown [下载地址] [选项] [线程数]     需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下: #linuxdown "http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip" 30

  Curl     Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。下载后便可使用如下命令编译安装: #tar zxvf curl-7.14.0.tar.gz #cd curl-7.14.0/ #./configure #make #make test #make install Curl使用格式如下: #curl [选项][下载地址] Curl典型下载如下: #curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz     使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但它可同时下载多个文件或下载文件的某一部分,可使用如下命令实现: #curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。     对于常用的代理下载Curl也可轻松实现,具体操作如下: #curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。 #curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。

  Axel     Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。可在http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。下载后使用如下命令编译安装: #tar zxvf axel-1.0a.tar.gz #cd axel-1.0a/ #./configure #make #make install 基本的用法如下: #axel [选项] [下载目录] [下载地址] 一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 用10线程将指定路径的文件下载到/home/kennycx/这个目录下。

     本文详细介绍了Linux中常用的下载工具,这些下载工具功能上各有千秋,使用上都比较简单,所以无论是初学者还是Linux高手总有一款适合你。

【作者: phpads】【访问统计:1】【2006年03月4日 星期六 19:04】【 加入博采】【打印】

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4591810

博客手拉手

回复

发布人: 邮箱:

主 页:

验证码:  

评论内容:

               

2003-2004 BOKEE.COM All rights reserved

Powered by BlogDriver 2.1

安装linux不能自动分区;konqueror浏览器;fecitx五笔安装

    在家里安装linux时,从硬盘中中划了5个G来安它,如法炮制使用自动分区不成功,告诉:不能把分区划拨到主分区。。。使用手动分区解决问题。不知道是怎么一回事?

   在mozilla中不能使用ftp,但是在konqueror中可以。而且,konqueror中默认的下载工具是Kget,它可以支持断点续传。但在有的情况下,Kget下载的东西会取一个临时的名字,好像隔一定的时间后,下载的取了临时名字的文件就不在了。搞不懂是怎么一回事了?

    在新系统中按照网上的方法配置用预编译的包来安装系统(网上介绍的方法是用源码来安装的),在输入文字时马上就非法退出了,搞不懂?

  

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 领先的许多概念只是在非常迟的时候才出现在商业数据库中。

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

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