The NoteBook of EricKong

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

#

//IBMUSERC JOB 'COMP BATCH',CLASS=A,MSGCLASS=H,                        
//       NOTIFY=IBMUSER,MSGLEVEL=(1,1)                                 
//*********************************************************************
//        SET SRC=HELLO                                                
//*********************************************************************
//* JOB TO COMPILE AND LINK-EDIT COBOL PROGRAM                         
//*********************************************************************
//***************  COMPILE STEP **********************************     
//COBOL EXEC PGM=IGYCRCTL,REGION=2048K,                                
//      PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF,OFFSET'       
//STEPLIB DD DSNAME=IGY410.SIGYCOMP,                                   
//           DISP=SHR                                                  
//SYSPRINT DD SYSOUT=*                                                 
//SYSLIN DD DSNAME=&&LOADSET,UNIT=SYSDA,                               
//        DISP=(MOD,PASS),SPACE=(TRK,(3,3)),                           
//        DCB=(BLKSIZE=3200)                                           
//SYSIN DD DSN=IBMUSER.TEST.COBOL(&SRC),DISP=SHR                       
//SYSLIB DD DSN=IBMUSER.TEST.COPY,DISP=SHR                             
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))  
//SYSUT2  DD UNIT=SYSDA,SPACE=(CYL,(1,1))                               
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1))                                
//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1))                                
//SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1))                                
//SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1))                                
//SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1))                                
//****************** LINK STEP *****************************************
//LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K,                    
//          PARM='LIST,XREF'                                            
//SYSLIB DD DSNAME=CEE.SCEELKED,DISP=SHR                                
//       DD DSN=IBMUSER.TEST.LOAD,DISP=SHR                              
//SYSPRINT DD SYSOUT=*                                                  
//SYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)                          
//SYSLMOD  DD DSNAME=IBMUSER.TEST.LOAD(&SRC),DISP=SHR                   
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))                              
//**********************************************************************
//*      RUN THE COMBOL PROGRAM                                         
//**********************************************************************
//STEP020 EXEC PGM=HELLO   
//STEPLIB DD DSN=IBMUSER.TEST.LOAD(HELLO),DISP=SHR                      
//SYSOUT DD SYSOUT=*                                                    
//  
posted @ 2013-07-28 15:56 Eric_jiang 阅读(439) | 评论 (0)编辑 收藏

IGYWC - Enterprise COBOL Compile only
IGYWCG - Enterprise COBOL Compile, load and run
IGYWCL - Enterprise COBOL Compile and link
IGYWCLG - Enterprise COBOL Compile, link and run
IGYWCPG - Enterprise COBOL Compile, prelink, load and run
IGYWCPL - Enterprise COBOL Compile, prelink and link
IGYWCPLG - Enterprise COBOL Compile, prelink, link and run  
posted @ 2013-07-28 15:28 Eric_jiang 阅读(402) | 评论 (0)编辑 收藏

Data set record formats
数据集记录根式
z/OS concepts
Z/OS的概念
Traditional z/OS® data sets are record oriented, and have one of five possible formats.
传统意义上来说,Z/OS的数据集的都是面向记录,有5种可能的格式。

In normal usage, there are no byte stream files such as are found in PC and UNIX® systems. (z/OS UNIX has byte stream files, and byte stream functions exist in other specialized areas. These are not considered to be traditional data sets.)
在一般的使用上,Z/OS是没有像PC和Unix系统的上的字节流文件(Z/OS Unix有字节流文件,而这些字节流功能存在其他特定的功能区域,但是这些已经不是传统意义上的数据集了,另当别论)

In z/OS, there are no new line (NL) or carriage return and line feed (CR+LF) characters to denote the end of a record. Records are either fixed length or variable length in a given data set. When editing a data set with ISPF, for example, each line is a record.
在Z/OS中,没有新行符号(NL)或者(CR+LF) 等字符作为记录的结束标志。在一个给定的数据集,记录总是固定长度的或者是可变长度的。

Traditional z/OS data sets have one of five record formats, as follows:
传统Z/OS有下面5中的记录格式:

F (Fixed)
Fixed means that one physical block on disk is one logical record and all the blocks and records are the same size. This format is seldom used.
F(固定)
       在磁盘的上一个物理块就是一个逻辑记录,而且所有的块和记录都是同样大小的,这种格式是很少用的了。

FB (Fixed Blocked) 
This format designation means that several logical records are combined into one physical block. This format can provide efficient space utilization and operation. This format is commonly used for fixed-length records.
FB(定长 分块)
    这种格式意味着几个逻辑记录组合成为一个物理块,这种格式能够提供高效的空间利用率和操作行,是一种经常被固定长度记录使用的格式。

V (Variable) 
This format has one logical record as one physical block. A variable-length logical record consists of a record descriptor word (RDW) followed by the data. The record descriptor word is a 4-byte field describing the record. The first 2 bytes contain the length of the logical record (including the 4-byte RDW). The length can be from 4 to 32,760 bytes. All bits of the third and fourth bytes must be 0, because other values are used for spanned records. This format is seldom used.
V(变长)
      这种格式中,一个逻辑的记录作为一个物理块,一个可变长度的逻辑记录包含一个记录描述符(RDW),它放置在在数据的前面。这个记录描述符有4个字节,前两个字节描述了逻辑记录的长度(长度也包含了RDW的长度在内)。长度范围可以是4字节到32760个字节,第三和第四个字节必须是0,因为其他值已经被跨越式的记录使用,这种格式也是很少使用的。

VB (Variable Blocked)
This format places several variable-length logical records (each with an RDW) in one physical block. The software must place an additional Block Descriptor Word (BDW) at the beginning of the block, containing the total length of the block.
VB(变长,分块)
       这种格式将多个可变长度的逻辑记录(每一个都包含了RDW)放在一个物理块里面。系统必须放置一个额外的块描述符(BWD)在块的开始部位,BDW它包含了这个块全部长度。

U (Undefined) 
This format consists of variable-length physical records and blocks with no predefined structure. Although this format may appear attractive for many unusual applications, it is normally used only for executable modules.
U(未定义)
       这个格式包含了可变长度的记录和没有预先定义好格式的块,这种格式对于那些不常用的应用程序是多么的吸引,但是一般来说,主要用于可执行模块的存储格式。

We must stress the difference between a block and a record: a block is what is written on disk, while a record is a logical entity.
我们这里需要强调一个块和一个记录的区别,一个块是用于写入磁盘,而一个记录是一个逻辑实体。
The terminology here is pervasive throughout z/OS literature. The key terms are:
这些技术词汇贯穿了Z/OS技术文化里面中,下面是关键的一些项目:
Block Size (BLKSIZE) is the physical block size written on the disk for F and FB records. For V, VB, and U records, it is the maximum physical block size that can be used for the data set.

块大小(BLKSIZE),是指用于写入F或者FB格式的物理块的大小。而对于V,VB和U格式的记录,BLKSIZE是数据集能够使用的最大物理块大小。
Logical Record Size (LRECL) is the logical record size (for formats F and FB) or the maximum allowed logical record size (for formats V and VB) for the data set. Format U records have no LRECL.
逻辑记录格式大小(LRECL)是指一个逻辑记录的大小(对于F和FB的格式)或是最大的可允许的逻辑记录大小(对于V和VB格式的)数据集,对于格式U来说,是没有LRECL可言的。

Record Format (RECFM) is F, FB, V, VB, or U as just described.
记录格式(RECFM)F, FB, V, VB, or U,上面已经讲过了
These terms are known as data control block (DCB) characteristics, named for the control block where they may be defined in an assembly language program. The user is often expected to specify these parameters when creating a new data set. The type and length of a data set are defined by its record format (RECFM) and logical record length (LRECL). Fixed-length data sets have a RECFM of F, FB, FBS, and so on. Variable-length data sets have a RECFM of V, VB, VBS, and so on.

这些项目就是我们知道的(DCB)数据控制块,被命名的DCB常用于汇编程序,当我们需要创建新的数据集的时候,我们经常需要指明这些项目的数值。数据集的类型和长度由它的记录格式(RECFM)和逻辑记录长度(LRECL)来决定的。固定长度的数据集有记录格式(RECFM)F, FB等等其他,可变长度的数据集有记录格式(RECFM)V, VB, VBS,等等其他

A data set with RECFM=FB and LRECL=25 is a fixed-length (FB) data set with a record length of 25 bytes (the B is for blocked). For an FB data set, the LRECL tells you the length of each record in the data set; all of the records are the same length. The first data byte of an FB record is in position 1. A record in an FB data set with LRECL=25 might look like this:
Positions 1-3: Country Code = 'USA'
Positions 4-5: State Code = 'CA'
Positions 6-25: City = 'San Jose' padded with 12 blanks on the right
使用了RECFM=FB and LRECL=25进行定义的数据集是一个固定长度的数据集,数据集的记录长度为25个字节,B意味指分块的,在一个FB格式的数据集中,LRECL项告诉了你这个数据集每个记录的长度,他们长度都是一样的,如上面的记录。

A data set with RECFM=VB and LRECL=25 is a variable-length (VB) data set with a maximum record length of 25 bytes. In a VB data set, the records can have different lengths. The first four bytes of each record contain the RDW, and the first two bytes of the RDW contain the length of that record (in binary). The first data byte of a VB record is in position 5, after the 4-byte RDW in positions 1-4. A record in a VB data set with LRECL=25 might look like this:
定义为RECFM=VB and LRECL=25的数据集是一个可变长度的数据集,它最大的长度是25个字节,在一个定义为VB格式的数据集中,记录可以有不同的才长度,前面的四个字节是记录描述(RDW),前面两个字节包含了记录的长度(二进制表示),因此,可变长度的记录的开始的数据位是5,定义为VB格式,LRECL=25的数据集的一条记录会像下面这样保存。
Positions 1-2: Length in RDW = hex 0011 = decimal 17
Positions 3-4: Zeros in RDW = hex 0000 = decimal 0
Positions 5-7: Country Code = 'USA'
Positions 8-9: State Code = 'CA'
Positions 10-17: City = 'San Jose'
Figure 1 shows the relationship between records and blocks for each of the five record formats.

下面的图展示了,在不同格式下,5个记录和块的关系
Figure 1. Basic record formats 基本记录格式
posted @ 2013-07-27 17:49 Eric_jiang 阅读(353) | 评论 (0)编辑 收藏

      如果数据集是一个分区数据集,如果是一个刚刚建立的分区数据集,我们按前述进行编辑的时候,右上角会提示 No member in data set,这个就是说明了,一个分区数据集是不能拿来直接编辑的,因为它是一个顺序数据集的集合,它相当于一个文件夹,怎么可以拿来直接编辑呢,所以要先在其中建立顺序数据集,这个顺序数据集一般被称为MEMBER,然后再对MEMBER进行相应的编辑。如何给分区数据集添加顺序数据集呢?很简单,就在如上的两处环境下在Data set name一项中填上数据集名称,然后在后面加上一个括号,其中写上要添加的成员的名字就可以了(例如LIB.COURCE(MEM1)),然后回车就直接进入编辑状态了。如果是一个已经有成员的分区数据集,填写好数据集名称,不用加什么括号然后直接回车,会出现一个成员列表,再在其中进行选择,然后选择一个数据集来编辑就可以了,编辑命令当然跟前面说过的那两种命令相同了。
posted @ 2013-07-27 14:04 Eric_jiang 阅读(210) | 评论 (0)编辑 收藏

IBM提供的400环境! 1、用IE访问400的地址如下:http://iseriesd.dfw.ibm.com/webaccess/iWA5250 2、用PCOM400的配置如下:主机IP: iSeriesD.DFW.IBM.COM端 口: 23 用 户: WUSER密 码: DEMO2PWD
posted @ 2013-07-26 16:51 Eric_jiang 阅读(392) | 评论 (0)编辑 收藏


你可以start命令再开一个
然后用F9切换
用=X删除
posted @ 2013-07-18 22:31 Eric_jiang 阅读(306) | 评论 (0)编辑 收藏

dataset:数据集,主机上最基本的存储单元,相当于fat文件系统中的文件。主要有四种数据集类型:顺序数据集(PS),分区数据集(PDS),扩展分区数据集(PDSE),VSAM数据集以及UNIX文件格式。

PS:顺序数据集,数据集的一种,它相当于一个文本文件,但在物理存储上完全按照数据存入的先后顺序存储的。

PDS(PO):分区数据集,相当于一个文件夹,PDS内包含若干个顺序的member,每个member都是一个数据集。但物理存储上,每个PDS包含两部分:Directory(目录)和members(数据集成员)。Directory中存有每个member的名字和地址。PDS的缺陷是member被删除后,该member所占用的空间没有释放,无法立即使用,需要对该分区数据集压缩之后才会被释放。

PDSE(Library):扩展分区数据集,与分区数据集的区别是,PDSE的目录可根据存储member的增加而扩大,member被删除后,其占用的空间会被立即释放。主机中PDSE又称Library。

VSAM:VSAM数据集(Virtual Storage Access Method)是在虚拟存储器和树型数据结构的基础上,为了满足数据量大、存放速度快和维护方便的要求发展起来的一种文件形式。

HFS:全称叫做Hierarchical file system,层次型文件系统。在Z/OS上定义一个HFS数据集,这个HFS数据集就是一个完整的层次型文件系统。文件系统里所看到的所有数据其实都存储在这个数据集里。从外面来看,这是一个普通的数据集,到这个数据集里面看,里面是与其他数据集不一样的结构:它的内部是树形结构。从根开始,有一些节点,,节点上再连着节点。目录和文件就挂在这些节点上,100% UNIX风格。UNIX文件系统就是这样的结构。可以理解为,HFS是在数据集里创建了一个UNIX特别行政区,UNIX SERVICE可以在这个区域里进行UNIX方式的操作。值得注意的是,支持HFS的数据集只能在DASD的卷上。HFS的数据集属性中的DSNTYPE(数据集名属性)是“HFS”。

posted @ 2013-07-14 17:44 Eric_jiang 阅读(482) | 评论 (0)编辑 收藏

HDFS和MapReduce只是打造Hadoop平台最基本的核心套件,在Apache基金会的网站中还有其他的相关开源套件,共同组成了一个Hadoop体系(Hadoop Ecosystem)。

  通过这些相关项目的延伸,开发人员就算不懂Java,也可以用特定Script语言来写Hadoop上的MapReduce程序,甚至可以用SQL语法来查询HDFS上的数据。这些周边项目可说是大幅强化Hadoop功能的软件军火库,想要善用Hadoop的开发人员不可错过。其中重要的周边项目包括HBase、Hive 、ZooKeeper、Pig和Mahout.

  HBase 能容纳PB数据量的分布式数据库  HBase是专门用于Hadoop文件系统上的数据库系统,采取Column-Oriented 数据库设计,不同于传统的关系数据库,例如没有数据表、Schema数据架构等功能,而是采用Key-Value形式的数据架构,每笔数据都有一个Key值对应到一个Value值,再通过多维度的对应关系来建立类似表格效果的数据架构。如此就能采取分布式储存方式,可以扩展到数千台服务器,应对PB级的数据处理。

  Hive 可用SQL语法存取Hadoop数据  Hive是部署在HDFS上的一套分布式数据存储系统,可让用户以惯用的SQL语法,来存取Hadoop文件中的大型数据集,例如可以使用Join、Group by、Order by等,而这个语法称为Hive QL.不过,Hive QL和SQL并非完全相同,例如Hive就不支持Store Procedure、Trigger等功能。   Hive会将用户输入的Hive QL指令编译成Java程序,再来存取HDFS文件系统上的数据,所以,执行效率依指令复杂度和处理的数据量而异,可能有数秒钟,甚至是数分钟的延迟。和HBase相比,Hive容易使用且弹性高,但执行速度较慢。不少数据库系统,都是通过先连结到Hive,才能与Hadoop整合。例如微软就是通过Hive ODBC驱动程序,将SQL指令转换成Hive QL,让Excel可以存取Hadoop上的数据。

  在同一个Hadoop集群中,Hive可以存取HBase上的数据,将HBase上的数据对应成Hive内的一个表格。

  Pig 不懂Java开发也能写MapReduce  Pig提供了一个Script语言Pig Latin,语法简单,类似可读性高的高等Basic语言,可用来写MapReduce程序。Pig会自动将这些脚本程序转换,成为能在Hadoop中执行的MapReduce Java程序。

  因此,使用者即使不懂Java也能写出MapReduce.不过,一般来说,通过Pig脚本程序转换,会比直接用Java写MapReduce的效能降低了25%.

  ZooKeeper 让Hadoop内部服务器能协同运作  Zookeeper是监控和协调Hadoop分布式运作的集中式服务,可提供各个服务器的配置和运作状态信息,用于提供不同Hadoop系统角色之间的工作协调。

  以HBase数据库为例,其中有两种服务器角色:Region服务器角色和Master服务器角色,系统会自动通过ZooKeeper监看Master服务器的状态,一旦Master的运作信息消失,代表当机或网络断线,HBase就会选出另一台Region服务器成为Mater角色来负责管理工作。

  Mahout 立即可用的常用MapReduce程序库  在Hadoop中,开发人员必须将数据处理作法拆解成可分散运算的Map和Reduce程序,因为思考逻辑和常见的程序开发逻辑不同,所以开发难度很高。Mahout则提供了一个常用的MapReduce函式库,常见的数值分析方法、集群分类和筛选方式,都已经有对应的MapReduce函数可呼叫,开发人员就不必再重复开发一次。

posted @ 2013-07-01 22:02 Eric_jiang 阅读(372) | 评论 (0)编辑 收藏

Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。

与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。

为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考

'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍:

--cache-file=FILE

'configure'会在你的系统上测试存在的特性(或者bug!).为了加速随后进行的配置,测试的结果会存储在一个cache file里.当configure一个每个子树里都有'configure'脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助.

--help

输出帮助信息.即使是有经验的用户也偶尔需要使用使用'--help'选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的'configure'脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项.

--no-create

'configure'中的一个主要函数会制作输出文件.此选项阻止'configure'生成这个文件.你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了.

--quiet

--silent

当'configure'进行他的测试时,会输出简要的信息来告诉用户正在作什么.这样作是因为'configure'可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么.使用这两个选项中的任何一个都会把你扔到一旁.(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)

--version

打印用来产生'configure'脚本的Autoconf的版本号.

--prefix=PEWFIX

'--prefix'是最常用的选项.制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

$ ./configure --prefix=/opt/gnu

--exec-prefix=EPREFIX

与'--prefix'选项类似,但是他是用来设置结构倚赖的文件的安装位置.编译好的'emacs'二进制文件就是这样一个问件.如果没有设置这个选项的话,默认使用的选项值将被设为和'--prefix'选项值一样.

--bindir=DIR

指定二进制文件的安装位置.这里的二进制文件定义为可以被用户直接执行的程序.

--sbindir=DIR

指定超级二进制文件的安装位置.这是一些通常只能由超级用户执行的程序.

--libexecdir=DIR

指定可执行支持文件的安装位置.与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行.

--datadir=DIR

指定通用数据文件的安装位置.

--sysconfdir=DIR

指定在单个机器上使用的只读数据的安装位置.

--sharedstatedir=DIR

指定可以在多个机器上共享的可写数据的安装位置.

--localstatedir=DIR

指定只能单机使用的可写数据的安装位置.

--libdir=DIR

指定库文件的安装位置.

--includedir=DIR

指定C头文件的安装位置.其他语言如C++的头文件也可以使用此选项.

--oldincludedir=DIR

指定为除GCC外编译器安装的C头文件的安装位置.

--infodir=DIR

指定Info格式文档的安装位置.Info是被GNU工程所使用的文档格式.

--mandir=DIR

指定手册页的安装位置.

--srcdir=DIR

这个选项对安装没有作用.他会告诉'configure'源码的位置.一般来说不用指定此选项,因为'configure'脚本一般和源码文件在同一个目录下.

--program-prefix=PREFIX

指定将被加到所安装程序的名字上的前缀.例如,使用'--program-prefix=g'来configure一个名为'tar'的程序将会使安装的程序被命名为'gtar'.当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in'文件使用时才会工作.

--program-suffix=SUFFIX

指定将被加到所安装程序的名字上的后缀.

--program-transform-name=PROGRAM

这里的PROGRAM是一个sed脚本.当一个程序被安装时,他的名字将经过`sed -e PROGRAM'来产生安装的名字.

--build=BUILD

指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.

--host=HOST

指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

--target=GARGET

指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.

--disable-FEATURE

一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字.例如:

$ ./configure --disable-gui

-enable-FEATURE[=ARG]

相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它.这里'FEATURE'是特性的名字.一个特性可能会接受一个可选的参数.例如:

$ ./configure --enable-buffers=128

`--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的.

--with-PACKAGE[=ARG]

在自由软件社区里,有使用已有软件包和库的优秀传统.当用'configure'来配置一个源码树时,可以提供其他已经安装的软件包的信息.例如,倚赖于Tcl和Tk的BLT器件工具包.要配置BLT,可能需要给'configure'提供一些关于我们把Tcl和Tk装的何处的信息:

$ ./configure --with-tcl=/usr/local --with-tk=/usr/local

'--with-PACKAGE=no'与下面将提到的'--without-PACKAGE'是同义的.

--without-PACKAGE

有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNU ld.通过使用这个选项可以做到这一点:

$ ./configure --without-gnu-ld

--x-includes=DIR

这个选项是'--with-PACKAGE'选项的一个特例.在Autoconf最初被开发出来时,流行使用'configure'来作为Imake的一个变通方法来制作运行于X的软件.'--x-includes'选项提供了向'configure'脚本指明包含X11头文件的目录的方法.

--x-libraries=DIR

类似的,'--x-libraries'选项提供了向'configure'脚本指明包含X11库的目录的方法.

在源码树中运行'configure'是不必要的同时也是不好的.一个由'configure'产生的良好的'Makefile'可以构筑源码属于另一棵树的软件包.在一个独立于源码的树中构筑派生的文件的好处是很明显的:派生的文件,如目标文件,会凌乱的散布于源码树.这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难.建议使用三棵树:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree).这里有一个很接近的例子,是使用这种方法来构筑GNU malloc包:

$ gtar zxf mmalloc-1.0.tar.gz

$ mkdir build && cd build

$ ../mmalloc-1.0/configure

creating cache ./config.cache

checking for gcc... gcc

checking whether the C compiler (gcc ) works... yes

checking whether the C compiler (gcc ) is a cross-compiler... no

checking whether we are using GNU C... yes

checking whether gcc accepts -g... yes

checking for a BSD compatible install... /usr/bin/install -c

checking host system type... i586-pc-linux-gnu

checking build system type... i586-pc-linux-gnu

checking for ar... ar

checking for ranlib... ranlib

checking how to run the C preprocessor... gcc -E

checking for unistd.h... yes

checking for getpagesize... yes

checking for working mmap... yes

checking for limits.h... yes

checking for stddef.h... yes

updating cache ../config.cache

creating ./config.status

这样这棵构筑树就被配置了,下面可以继续构筑和安装这个包到默认的位置'/usr/local':

$ make all && make install

一个软件包通过编译源代码安装后,如何完全的卸载??

如果原先的source还在的话,很多source的Makefile都有写uninstall规则,直接在Souce里make uninstall就可行,不过碰到无良作者没写的,那一句一句看Makefile里install部分他都干了些什么,然后挨个删除。

如果source没了.....那就一边郁闷吧

到目前为止, 我装的都可以make uninstall.......

(因为总是不小心装错地方, 结果就make uninstall&&make clean,然后重新configure......)

linux下软件的基本安装和卸载

Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序”来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。它可以用来建立、安装、查询、更新、卸载软件。该工具是在命令行下使用的。在Shell的提示符后输入rpm,就可获得该命令的帮助信息。

软件的安装

Linux下软件的安装主要有两种不同的形式。第一种安装文件名为xxx.tar.gz;另一种安装文件名为xxx.i386.rpm。以第一种方式发行的软件多为以源码形式发送的;第二种方式则是直接以二进制形式发送的。

对于第一种,安装方法如下:

1 .首先,将安装文件拷贝至你的目录中。例如,如果你是以root身份登录上的,就将软件拷贝至/root中。

#cp xxx.tar.gz /root

2 .由于该文件是被压缩并打包的,应对其解压缩。命令为:

#tar xvzf filename.tar.gz 如果是filename.tar.bz2格式的,应该是tar jxvf filename.tar.bz2来解压

3. 执行该命令后,安装文件按路径,解压缩在当前目录下。用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有“Install”的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。

4.执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为: #./configure

如果您想把软件安装到指定目录,应该用#./configure --prefix=/您自己指定的目录,比如我想把一个mlterm安装到/opt/mlterm目录中,应该如下输入

#./configure --prefix=/opt/mlterm

5.检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。命令为: #make。

6.成功编译后,键入如下的命令开始安装:

#make install

7.安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:

#make clean

#make distclean

至此,软件的安装结束。

对于第二种,其安装方法要简单得多。

同第一种方式一样,将安装文件拷贝至你的目录中。然后使用rpm来安装该文件。命令如下:

#rpm -i filename.i386.rpm

rpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm的数据库中。参数i的作用是使rpm进入安装模式。

软件的卸载

1.软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:

#rpm -q -a

即可查询到当前系统中安装的所有的软件包。

2. 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令:

#rpm -e [package name]

即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为[package name]的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:

#rpm -e [package name] -nodeps

忽略依赖关系的卸载可能会导致系统中其它的一些软件无法使用

如果想知道rpm包安装到哪里了呢?

应该用 #rpm -ql [package name]

3.如何卸载用源码包安装的软件?

最好是看README和INSTALL ;一般的情况下都有说,但大多软件没有提供源码包的卸载方法;我们可以找到软件的安装点删除。主要看你把它安装在哪了。

比如:

如果安装软件时,指定个目录。这个问题也不会难;

比如用源码包安装gaim 的

#./configure --prefix=/opt/gaim

#make

#make install

如果安装mlterm

#./configure --prefix=/opt/mlterm

#make

#make install

把源码包安装的软件,都指定安装在 /opt目录中,这样不就知道了??

如果删除,就删除相应的软件目录;

有些软件要在解压安装目录中执行 make uninstall ,这样就卸载掉了
posted @ 2013-06-30 13:42 Eric_jiang 阅读(472) | 评论 (0)编辑 收藏

1.网卡配置

要使主机接入网络必须正确配置网卡,网卡配置存放在/etc/sysconfig/network-script/目录中。
目录里面存放了很多关于网络配置的脚本,其中网卡配置使用了ifcfg-eth0的形式编号。
修改指定网卡配置文件ifcfg-eth0。
修改网卡配置后需要重启network服务(参照8)。

例如:
/etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices 79c970 [PCnet32 LANCE]
DEVICE=eth0 #设备名称
BOOTPROTO=static|dhcp #使用静态配置还是使用dhcp分配的ip地址
HWADDR=00:0C:29:26:A2:A6 #网卡的物理地址mac
ONBOOT=yes
DHCP_HOSTNAME=192.168.1.1 #dhcp地址
IPADDR=192.168.1.9 #网卡ip
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1 #网关ip
BROADCAST=192.168.1.255 #广播ip

2.network网络配置
/etc/sysconfig/network文件记录了一些网络配置信息。
例如(结合网络收集):
NETWORKING=YES|NO #YES表示需要配置网络。 NO:表示不需要配置网络。
HOSTNAME=yezee #主机的全限定域名
GATEWAY=gw-ip #网络网关的IP地址
GATEWAYDEV=gw-dev #网关设备的名称(例如eth0或IP地址)
NISDOMAIN=dom-name #表示NIS(名称信息服务)域(如果有的话)
FORWARD_IPV4=”NO” #配置路由器时,是否转发IPV4。
NETWORKING_IPV6=yes #ipv6网络协议

3.配置DNS
保存DNS配置的文件是/etc/resolv.conf
nameserver最多可以有3个DNS服务器.
search最多可以指定6个域名

格式:
domain a.yezee.org
search b.yezee.org c.yezee.org
nameserver 202.96.128.86
nameserver 192.168.1.1

在网上找了段关于domain和search关键字的说明,说明domain和search关键字的作用其实是一样的。

domain linpro.no
search linpro.no uio.no ifi.uio.no
domain function:
Had I typed telnet math.uio.no. with the trailing dot, the resolver would have known it was an FQDN and would have looked up math.uio.no at once, without trying to append the specified domain first. Not all applications are tolerant of the trailing dot, though, so it can’t always be specified.
search function:
When ssh gram is executed, the resolver first looks for gram.linpro.no, which does not exist; then gram.uio.no, which does not exist, either; and finally gram.ifi.uio.no, which will succeed because it does exist
 

4.配置host

主要是/etc/hosts配置文件 。
文件记录了IP地址和主机名的映射关系,作用和WindowsXp下的C:\WINDOWS\system32\drivers\etc\hosts相仿。
格式:
192.168.1.9 www.yezee.org(Hostname主机名) yezee(Alias别名)

5.配置DNS解析顺序

/etc/host.conf文件配置决定了/etc/resolv.conf和/etc/hosts的配置解析顺序。

一般系统中会同时存在DNS域名解析和静态/etc/hosts配置,/etc/host.conf则确定这些配置的解析顺序。

格式:
order hosts,bind #DNS解析顺序
multi on|off #允许或禁止/etc/hosts配置中一个主机是否能拥有多个IP地址
nospoof on #禁止(检查)IP地址欺骗
alert on #若检查出有IP欺骗,则把警告信息通过syslog记录

order关键字定义了DNS的解析顺序,先使用本机hosts表解析域名,如果不能解析,再使用指定的DNS服务器。

6.服务端口配置

配置文件/etc/services 记录了端口号和服务之间的端口对应关系。
通过配置这个文件,服务器和客户端的程序便能够把服务的名字转成端口号。

配置完成后,就需要使用一些命令来检查和启用新的配置。

7.ifconfig命令

7.1 使用ifconfig命令来检查网络配置,直接输入ifconfig回车即可.
格式:ifconfig 或者 ifconfig eth0 #查看指定网卡配置
显示如下:

7.2 使用ifconfig来激活和禁止网卡(网络设备)
格式:ifconfig eth0 up|down
up为激活网卡eth0;down为禁止网卡eth0。

7.3 使用ifconfig来修改网卡配置
格式:Ifconfig eth0 192.168.1.9 netmask 255.255.255.0
网卡ip被修改为192.168.1.9,子网掩码为255.255.255.0

7.4 使用ifconfig来让网卡获取dhcp动态分配的地址
格式:ifconfig eth0 -dynamic

8.使用/etc/rc.d/init.d/network启动和停止network服务

格式:/etc/rc.d/init.d/network
使用该脚本可启动、停止、重启network网络服务,
命令实际上是调用了/etc/sysconfig/network-scritps/目录下相关脚本。

9.更多常用CentOS检查网络的命令:

ping www.yezee.org #ping,简单连通性测试
traceroute www.yezee.org #查看路由测试情况
netstat –t #查看tcp连接情况,netstat还有很多好用的参数,具体可参考帮助
hostname yezee #更改主机名为yezee
arp #查看arp缓存
arp –s IP MAC #网arp缓存中添加ip和mac映射
arp –d IP #从arp缓存中删除映射

posted @ 2013-06-28 22:26 Eric_jiang 阅读(4867) | 评论 (0)编辑 收藏

仅列出标题
共57页: First 上一页 21 22 23 24 25 26 27 28 29 下一页 Last