首页 运维 网络学院 查看内容

linux中软件的安装

2011-7-27 11:52 872 0

摘要:   源代码为文本文件,需要经过编译器编译之后,变成可执行的文件,在编译过程中,由于源代码比较大, 有时需要分成几个部分来进行编译成目标文件,之后将各个部分的编译成一个可执行文件,gcc编译器为Linu...
关键词: 文件 nbsp 函数 编译 目录 套件 RPM usr 二进制 动态

  源代码为文本文件,需要经过编译器编译之后,变成可执行的文件,在编译过程中,由于源代码比较大, 有时需要分成几个部分来进行编译成目标文件,之后将各个部分的编译成一个可执行文件,gcc编译器为Linux标准的编译器。  编译步骤:1.gcc  –c  hello.c 自动产生hello.o的文件,但不会产生二进制执行文件。  2.gcc  -o  hello  hello.c  参数后面跟为生成的二进制的执行文件的名字。  加入函数进行编译 3. gcc  sin.c –lm  -L /lib  -I/usr/include –lm指的是libm.so或libm.a  -L 后面接的路径是函数库的搜索目录,-I 后面接的是源码内包含文件的所在目录。  函数库有两种分别为动态函数库以及静态函数库,动态函数库的后缀即为。so文件,。a则表示静态函数库。当利用动态函数库进行编译的时候,没办法将全部函数都编译进去,只是给了一个指针型的指向,如果函数库升级了,不需要重新编译生成可执行文件,而静态函数库则需要重新编译。  Linux中的函数库默认放在/lib以及/usr/lib文件夹中,因此当编译的时候若没有放在这两个函数库中,则默认连接到这两个文件夹中。  Tarball安装的基本步骤:  1.       将tarball文件在/usr/local/src目录下解压缩;tar –zxvf 具体tarball  2.       查看安装文档  3.       运行。configure命令检查系统环境,建立makefile文件。  4.       Make编译成可执行二进制文件,Make install安装程序。  使用patch更新源代码,首先利用diff –Naur 旧文件 新文件 >oncomparion 比较出新旧文件的不同,生成一个需要补丁的新旧对比文件。然后在到旧的文件目录下去执行patch –p 0 <oncomparion ,就可以将旧的文件替换成新文件。  为了提高库的访问速度,则可以将库文件调入到内存当中。首先将库的目录写入在/etc/ld.so.conf中写入动态链接库的目录,利用ldconfig命令来调用动态库中。Ldd命令可以查看所用到的执行文件所用到的函数库。  通常建议将安装的套件放在/usr/local上,源码放在/usr/local/src上,默认情况下,man会去搜索/usr/local/man里面的帮助文件。/etc/man.config文件记录man page的搜索路径,当安装的套件独立在一个文件夹中,这么man page没有放在特定的目录下,就没办法查询到,因此需要将路径记录在man.config中。  由于RPM有数据库来记录套件相关的信息,所以RPM类型的套件所拥有的文件都放在系统默认设置的目录下。RPM安装的是直接编译好的可执行文件,因此系统环境应该是一样的,RPM存在的最大问题是无法自动满足套件的依赖属性的需求,可以利用yum、apt、urpmi服务来解决属性的相关问题,RPM的数据库放在/var/lib/rpm的文件目录下。  RPM:-ivh 具体的rpm包,可以查看具体安装包的过程。  -Uvh RPM包的升级。  -qR 查看套件的依赖关系。  RPM卸载要自上而下,rpm –e 具体套件名称  解安装这个套件。  Man查询的结果是在程序外,help查询的结果是在程序里,这个是内嵌到程序里的参数。  RPM类型的文件放在系统默认设置的文件夹下(如下)  目录  说明  /etc  一些配置文件  /usr/bin  一些可执行文件  /usr/lib  一些程序使用的动态函数库  /usr/share/doc  基本的软件使用手册与帮助文件  /usr/share/man  一些man page文件  SRPM  Source RPM该类型的文件与RPM的区别在于安装包里携带的是源代码,而RPM则是可执行的二进制文件,因此SRPM需要进行重新的编译成二进制文件。SRPM与tarball的区别是:SRPM包含依赖的关系,而tarball则不含有。  SRPM的目录  目录  说明  /usr/src/redhat/spec  存放将SRPM编译为RPM的配置文件  /usr/src/redhat/build  存放编译过程中的东西  /usr/src/redhat/source  存放原始文件  /usr/src/redhat/RPMS  存放编译后的RPMS包
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部