Chinaunix首页 | 论坛 | 博客

分类: LINUX

2011-08-03 01:01:43

linux 下软件包的管理
 
 
linux软件包有两种 : 源代码 和 二进制文件
 
  首先说下软件的组成:
   1),配置文件
   2),二进制程序
   3),库文件
   4),帮助文件
 
 软件包的安装路径:
   一般情况下安装文件会在以下三个目录中-->
   /          ...........操作系统自身启动就要用到的程序
   /usr       ...........操作系统启动后为了完善一些功能的软件包安装在这里
   /usr/local ...........用户自己安装的软件包安装在这里
 
我们知道软件由配置文件,二进制文件,库文件,帮助文件组成,为了便于管理系统会把几种文件分类放在不同目录下,比如:
第一种:操作系统自身启动要运行的程序  配置文件在/etc   二进制文件在/bin 和/sbin下 
                             库文件 /lib      帮助文件在/usr/share/man
第二种程序...................分别会放在/etc   /usr/bin和/usr/sbin
                             /usr/lib         /usr/share/man
第三种程序.................. /usr/locale/etc   /usr/locale/bin和/usr/locale/sbin
                             /usr/locale/lib   /usr/locale/share/man  
 
我们的系统如何知道库文件都在哪里呢?这根一个配置文件有关--》/etc/ld.so.conf
同样安装的软件的帮助文件放在哪里一样需要一个文件事先定义出来--》/etc/man.config
 

二进制程序的软件包:
 

   首先说下软件包命名的一般格式--》package-version-release.arch.rpm
   比如:  http-2.2.19-1.i386.rpm
 
   http(package)-2(主版本号).2(次版本号).19(修订号)-1(第一次被做成二进制的程序   的发型号)-arch(硬件平台).rpm(后缀)
   有时候可能会出现http-2.2.19-1.el5.i386.rpm
   这里的el5表明:这个软件只能安装在redhat5版本上

 下面说一下rpm包的管理:
     查询功能:  rpm   -qa  package_name ............
                 rpm   -ql  package_name............列出安装后都在系统上生成了哪些                                                    文件
                 rpm   -qf  软件路径............     查询是由哪个软件包安装的
     安装功能:   rpm   -ivh  package_name.........
                 rpm   -ivh --nodeps  ..............不管依赖关系强行安装(安装后可                                                    能不能用)
     卸载功能:  rpm   -e  package_name .............卸载软件包
                rpm    -e --nodeps package_name......不管依赖关系强行卸载
     升级功能: rpm    -Uvh  高版本软件bao............如果有老版本则升级没有则安装
                rpm   -Fvh   高版本软件。。。。。。。。如果有老版本则升级没有则不执行
              注意:内核只能安装不能升级,就是说不能用rpm -Uvh ..........

      校验功能:rpm -V  package—name ..............查看是否被人改动过
                显示选项表示的意思如下:
               
       S file Size differs
       M Mode differs (includes permissions and file type)
       5 MD5 sum differs
       D Device major/minor number mismatch
       L readLink(2) path mismatch
       U User ownership differs
       G Group ownership differs
 
      签名功能:rpm -K package_name
       如何导入KEY? 找到目录/etc/pki/rpm-gpg下有一个文件RPM-GPG-KEY-redhat-release,这就是redhat官方给的一个包的公钥,然后使用命令:rpm --import RPM-GPG-KEY-redhat-release
       数据库:rpm -rebuilddb       重建rpm包数据库,以前有没有都重建
           
               rpm -initdb          ................如果以前有则不建
 

   rpm包挺好用的,但是
唯一让人头疼的就是它的依赖关系,我们系统管理员经常会遇到以一种情况就是为了装一个软件包,因为相互依赖最后网上找了几十个包还没有装上,这就为了后来yum的产生的原因
   yum就是为了解决rpm包中的依赖关系的,它运用c/s结构的思想,server端通常有一个事先定义好的XML文件,这个文件上说明了所有包的依赖关系,然后就是各种包,通常情况下,这个XML文件在这些包的父目录上
 
   有三种方法创造yum源:  ftp ://192.168.0.1/pub/....
                         ....
                         .................(在自己机器上装yum源)
 
    那么如何告诉客户端yum源在哪里呢 --》通过配置文件  位置在/etc/yum.conf
                                                                    / etc/yum.repos.d/FILE.repo
 
      我们只需打开配置/etc/yum.repos.d/*.repo文件即可,它的文件格式如下:
       []
       name=...
       baseurl=ftp://........
       gpgcheck=0(是否校验,O为关闭校验)
       enabled=0(表示当前的yum源不能y用了) 
 
    yum的相关命令:
        安装: yum install +软件包名
        升级:  yum update  +软件包名
        查看哪些可以升级       yum check-update
        查看软件包: yum list (all|installed|available)      
        卸载: yum remove +包名
         清除yum包缓存信息: yum clean all
         yum  groupinstall  +组名
         yum   groupupdate  +组名
         yum   grouplist  。。。
         yum   groupremove。。。。
         yum   groupinfo 。。。。。。
         yum  localinstall  rpm—file(包路径) 使用本地包
         yum  --nogpgcheck localinstall rpm-file(包路径名)
         yum  reinstall  +包名 。。。。。。。
 
源代码格式的软件包:   安装过程有四步--》

        tar .........
        ./configure
        make
        make install
       在linux当中很多使用C语言开发软件包都会声明一些头文件 head  ,这些头文件的作用是软件运行所不可缺的库文件,一般放在/usr/include 里面,所以以后在安装软件的时候如果提示说缺少头文件,那么只需将头文件链接到这个目录里就可以了
阅读(2011) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~