📄 00000008.htm
字号:
队列存放的目录。由于系统中可能有不止一台打印机,这个选项是必须的。 <BR> <BR> mx是“最大打印文件的长度”,你可以将它设置成为一个合理的数值,这样可以避免 <BR>一些新手做出愚蠢的打印二进制文件之类的事情,数值要以类似于mx#10000之类的办法 <BR>给出,如果你给出的是mx#0,那就意味着关闭这个检测功能(一个傻瓜也许会在一次作 <BR>业中用光你的打印纸!)。 <BR> <BR> lp=给出的是打印机的设备名,如/dev/lp0,/dev/lp1等等。 <BR> <BR> 最后,if=/var/spool/lpd/filter定义了一个过滤器,过滤器必须是可执行的文件, <BR>当UNIX打印时,文件首先被过滤器转换,然后再传送到打印机。显然,如果你打印的是 <BR>纯文本,那么根本没有必要使用过滤器。在一般的情况下,由于我们用Linux打印机系统 <BR>是为局域网上的Windows 9x系统提供打印服务,而Windows输出的已经是打印机能够直接 <BR>接受的字节流,所以你可以不使用过滤器(将这一栏删除)。 <BR> <BR> 如果你需要在Linux系统下打印文档,那么你就要关心过滤器问题了。通常的Linux下 <BR>的软件产生的是PostScript文档,但是许多打印机并不能直接解释PostScript文档,所 <BR>以必须用某种过滤器程序来处理,例如GhostScript,这个程序能够将PostScript文件转 <BR>换为打印机能够接受的原生数据。 <BR> <BR> 要使用GhostScript,需要首先确认GhostScript能够支持你的打印机,使用gs –hel <BR>p命令可以显示当前的GhostScript能够支持的打印机型号,例如,HP LaserJet III系列 <BR>的驱动程序是ljet3,然后你可以写一个这样的打印过滤器: <BR> <BR> [openlab]$cat /var/spool/lpd/lp/filter <BR> <BR> SENDEOF= <BR> <BR> PAPERSIZE=a4 <BR> <BR> DEVICE=ljet3 <BR> <BR> RESOLUTION=360x360 <BR> <BR> nenscript | gs –q –sDEVICE=$DEVICE \ <BR> <BR> -r$RESOLUTION \ <BR> <BR> -PAPERSIZE=$PAPERSIZE \ <BR> <BR> -sOutputFile=- <BR> <BR> 这个文件的内容一目了然,由于ghostscript程序只能处理PS文件,所以纯文本必须先 <BR>转换为PS。其中nenscript能够将文本文件转换成为PS文件,再通过GhostScript打印出 <BR>来,中间使用了管道操作,-OutputFile=-是说直接将gs的输出送到标准输出,而过滤器 <BR>的输出缺省已经指向打印机。然后,设置过滤器为if=/var/spool/lpd/lp/filter。 <BR> <BR> 过滤器可以使用if或者of来定义,但我们主张全部使用if,如果你对if和of的具体概 <BR>念感兴趣,请参考有关文档。 <BR> <BR> printtool程序通常对于一般系统的配置已经足够好,但是我们发现在最新的RedHat <BR>6.1中,printtool经常发生找不到打印机的情况(可能是内核配置的问题),在这种情况 <BR>下,你手工建立一个/etc/printcap文件就可以了。 <BR> <BR> 在建立了printcap文件并且打印机工作无误之后,就可以使用打印机了,Linux使用的 <BR>是BSD打印系统,为了启用打印机,需要启动/usr/sbin/lpd程序,这是一个守护程序, <BR>用来在后台打印文档。接下来,你可以使用lpr程序打印一个测试文档,例如一个小的文 <BR>本文件: <BR> <BR> lpr –P[打印机名] [文件名] <BR> <BR> 打印机名就是在/etc/printcap中定义的打印机名字。如果不使用-P选项,lpr首先看 <BR>是否存在$PRINTER环境变量,如果有就使用,否则使用缺省打印机lp。 <BR> <BR> 另外的经常使用在/etc/printcap里面的表达式是af和lf,af对用户进行记账,如:af <BR>=/var/log/printacct:将在/var/log/printacct中记录每个用户打印了多少东西,而lf <BR>则是出错记录,如:lf=/var/err/print_err:。 <BR> <BR> 4.5.2 其他可能的设备 <BR> <BR> 前面我大量使用了X Window,笔者希望不要给大家一种错误的印象,即Linux的配置需 <BR>要使用X Window,相反,大部分配置工具是不需要图形的,(printtool是个例外)。而 <BR>且,你总是可以手工编写配置文件。所以,我们一直没有将图形卡作为重要的设备。另 <BR>外,X Window的实现使得你可以在远程使用X,所以图形卡通常并不是很重要。 <BR> <BR> 另外的设备之一是接在串行口上的终端,笔者从未在Linux系统上安装过这类产品,所 <BR>以也无法对你说什么,而且我怀疑是不是真的有人用Linux当主机,这在价格上未免说不 <BR>过去了。 <BR> <BR> 调制解调器应该是最重要的外接设备了,通常我们使用调制解调器是用来拨号上网或 <BR>者作为拨号服务器,这两种功能的设置我们将在后面介绍。 <BR> <BR> 4.6 安装应用程序 <BR> <BR> 下面我们来解释如何在Linux系统中安装软件,例如如何安装现成的应用程序,或者编 <BR>译公开源代码的应用程序。事实上,由于Linux应用程序可以以源代码或者目标程序的方 <BR>式提供,所以有多种提供软件包的方法,最常用的两种方法是rpm和tgz。 <BR> <BR> 4.6.1 rpm程序 <BR> <BR> rpm是一种将软件打包发行并且实现自动安装的程序,目前,大部分Linux发行版本都 <BR>使用rpm程序来管理软件的安装和拆除,例如RedHat,Turbo Linux,Corel Linux等等。 <BR>对于个别没有提供rpm程序的发行版本,你可以自己下载rpm程序并且进行编译。 <BR> <BR> 需要用rpm安装的软件包通常是一些打包文件,后缀名是.rpm。rpm程序可以对这种程 <BR>序包进行安装,卸载,升级和维护。 <BR> <BR> Rpm程序的第一个功能是安装应用软件,例如,在当前目录下有一个apache-1.3.6-4. <BR>rpm软件包,那么安装它的命令是 <BR> <BR> rpm –i apache-1.3.6-4.rpm <BR> <BR> -i开关用来安装应用软件,如果你想看到更完整的安装信息,可以同时使用-v和-h选 <BR>项: <BR> <BR> rpm –ivh apache-1.3.6-4.rpm <BR> <BR> 这两个选项将在安装的同时显示软件的名称和安装进度。 <BR> <BR> rpm程序能够在安装程序的同时检查软件包的相互依赖关系,并且检验软件之间的文件 <BR>冲突,如果发现冲突或者需要的软件包没有安装,或者已经安装了其他版本的软件包, <BR>就会报错并退出。 <BR> <BR> 对于需要升级旧版本软件的情况,使用-U选项,例如,已经安装了Apache 1.2.1的系 <BR>统上再安装1.3.6,那么需要执行 <BR> <BR> rpm –U apache-1.3.6-4.rpm <BR> <BR> 同样可以使用-v和-h选项。 <BR> <BR> 偶尔你可能会碰到想要不顾文件冲突或者版本冲突而想强行安装应用程序的情况,这 <BR>种情况下可以使--force选项,如: <BR> <BR> rpm –i --force apache-1.3.6-4.rpm <BR> <BR> 类似的还有两个选项--nodeps 和--replacefiles。-nodeps是不检查相互依赖关系, <BR>--replacefiles是自动强制替换文件。 <BR> <BR> 另外一个有趣的用法是可以用rpm从ftp server上安装应用程序,例如 <BR> <BR> rpm –i <A HREF="ftp://myserver.com/apache/apache-1.3.6-4.rpm">ftp://myserver.com/apache/apache-1.3.6-4.rpm</A> <BR> <BR> rpm程序的第二个标准用法是卸载软件包,这可以用-e选项,例如,删除apache-1.3. <BR>6的命令是 <BR> <BR> rpm –e apache <BR> <BR> 注意删除软件包的时候使用的软件包的名字不包含版本号。 <BR> <BR> 同样,删除软件包也会引起rpm的软件包依赖性验证,如果你想删除的软件包被别的软 <BR>件包使用就会出错。--nodeps选项仍然用于禁止依赖性检查。 <BR> <BR> 下一个常用的功能是对软件包进行查询,这是通过-q选项来完成的,例如,要查阅当 <BR>前是否安装了apache软件包,版本是什么,可以使用命令(注意没有版本后缀) <BR> <BR> rpm –q apache <BR> <BR> 会显示当前安装的apache rpm的文件名。如果要查询当前安装的所有软件包,使用-a <BR>选项: <BR> <BR> rpm –a <BR> <BR> 有时你想知道某个文件是什么软件包安装上去的,这时可以使用-f选项,例如,要查 <BR>出/etc/httpd/httpd.conf属于那个软件包,执行 <BR> <BR> rpm –qf /etc/httpd/httpd.conf <BR> <BR> 另外的工作是查询某个软件包所包含的文件,这可以使用-qpl选项,如 <BR> <BR> rpm –qpl apache-1.3.6-4.rpm <BR> <BR> 其中,l选项的含义是建立类似于ls –l的文件列表输出,类似的还有-i,-d和-c,例 <BR>如 <BR> <BR> rpm –qpi apache-1.3.6-4.rpm <BR> <BR> 显示这个软件包的版本和开发人员信息。 <BR> <BR> rpm –qpc apache-1.3.6-4.rpm <BR> <BR> 显示软件包中的配置文件清单 <BR> <BR> rpm –qpd apache-1.3.6-4.rpm <BR> <BR> 显示软件包中的文档列表。 <BR> <BR> 最后一个常用的功能是校验软件包的完整性,命令是-V。例如,检验某个软件包的文 <BR>件是否正确,使用 <BR> <BR> rpm –V apache <BR> <BR> 想检查某个安装好的文件和包中的文件是否一致,使用-Vf,例如 <BR> <BR> rpm –Vf /usr/sbin/httpd <BR> <BR> 想检查某个包安装到系统上的文件是否完全正确(和包比较),使用-Vp,如 <BR> <BR> rpm –Vp apache-1.3.6-4.rpm <BR> <BR> 4.6.2 编译应用程序 <BR> <BR> 尽管rpm程序带来了很多好处,但是由于各种原因,仍然难免发生在某个系统上编译出 <BR>的应用程序在其他系统上不能运行的情况。最常见的情况是运行库的不同,例如,现在 <BR>大部分Linux上的应用程序基于GLIBC(GNU GCC编译器使用的运行库),结果是没有包含 <BR>正确的GLIBC版本的Linux就无法使用这些目标代码,这种互相不兼容是UNIX传统的一大 <BR>体现。幸运的是,所有Linux都基于共同的操作系统内核(内核版本不同引起的冲突除外 <BR>)和相同的编译器(GNU GCC)。而且Linux下的应用程序是基于GNU协议的,因此你通常 <BR>总是可以重新编译源程序,得到一个可以使用的版本。 <BR> <BR> 要编译应用程序,首先必须拿到应用程序的源代码。一般来说,各个Linux厂商都会提 <BR>供它的发行版本中各种应用程序的源代码,实在不行的话你也可到网上去下载。 <BR> <BR> 下载下来的源代码
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -