码迷,mamicode.com
首页 > 系统相关 > 详细

linux的软件安装包管理

时间:2015-09-19 18:24:29      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:

1.软件管理器

    linux中比较常用的软件管理器分别为RPM和dpkg。dpkg最早是由Debian社区开发出来的,通过dpkg的机制,Debian提供的软件能够快速的安装起来,同时提供安装后的信息。派生于Debian的其他linux版本都可以使用该机制,如ubuntu,B2D。RPM是由红帽公司开发的,使用该机制的如centos等。

    为了解决软件属性依赖的问题,linux版本的发行商通过使用“在线升级”机制来处理。具体来讲就是,发行商将依赖属性的数据做成列表,等到实际软件安装时,若发生依赖的情况,只要存在网络,依据软件安装列表就可以将发行商提供的任何软件进行安装。其中红帽公司的在线升级命令是yum,而Debian发行商的在线升级命令为apt-get。

2.软件管理程序rpm

    基本工作:软件的安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作

    rpm命令: rpm   rpmbuild

    数据库: /var/lib/rpm

    rpm的默认安装路径:/usr/bin :一些可执行文件

                                        /usr/lib : 一些程序使用的动态链接库

                                        /usr/share/doc :一些基本的软件使用手册与帮助文档

                                        /usr/share/man:一些man page文件

    顺便讲述下文件系统的一些内容:

    根目录包含的文件夹:

    /usr/share/man

    /bin /sbin /etc /lib:系统启动就需要的程序,这些目录不能挂载额外的分区,必须在根目录下。

    /usr/bin、 /usr/sbin、/usr/lib :这些目录存放的是操作系统的核心功能区,可以单独分区

    /usr/local  bin、sbin、lib、etc、man  :第三方软件存放位置

    /opt

    /proc、/sys   内核虚拟目录,默认为空,不能单独分区

    /dev:设备文件,不能单独分区   /udev

    /root不能单独分区

    /var:存放一些变量、临时文件,建议单独分区

    /boot:内核文件initrd

3.软件管理程序rpm命令

    rpm命名:

    包的组成部分:主包     bind-9.7.1-1.el5.i586.rpm

                             子包     bind-libs-9.7.1-1.el5.i586.rpm
                                         bind-utils-9.7.1-1.el5.i586.rpm

    包名格式:  name-version-release.arch.rpm(发行号、平台架构)

                        版本名称 版本信息 发布版本次数 适合平台 扩展名

                        bind-major.minor.release-release.arch.rpm

主版本号:重大改进

子版本号:某个子功能发生重大变化

发行号:修正了部分bug,调整了一点功能。

    1.安装

     rpm   -ivh      package_name

      i:install;             v:查看详细信息;      h:以安装信息栏显示安装信息

        --nodeps: 忽略依赖关系;
        --replacepkgs: 重新安装,替换原有安装;
        --force: 强行安装,可以实现重装或降级;

      2.查询

        rpm -q 仅查询,后面接的软件名称是否安装

        rpm -qa 查询已经安装的所有包

        rpm -qi package_name :查询指定包的说明信息

        rpm -ql package_name :   查询指定包安装后生成的文件列表;

        rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
        rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

        rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;
        如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
        rpm -qpi /PATH/TO/PACKAGE_FILE
        rpm -qpl

      3、升级
        rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
        rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
                                             --oldpackage: 降级

        4.卸载

            rpm -e PACKAGE_NAME           --nodeps

        5、校验
            rpm -V PACKAGE_NAME

        6、重建数据库
            rpm
              --rebuilddb: 重建数据库,一定会重新建立;
              --initdb:初始化数据库,没有才建立,有就不用建立;

        
        7、检验来源合法性,及软件包完整性;
        加密类型:
         对称:加密解密使用同一个密钥
         公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;  
         单向:
  

        # ls /etc/pki/rpm-gpg/
         RPM-GPG-KEY-redhat-release
         rpm -K /PAPT/TO/PACKAGE_FILE
         dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
         sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项

          rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

 4.yum在线升级机制

        根据各软件的相关性做出属性依赖时的解决方案,然后可以自动处理软件的依赖属性关系,从而解决软件安装与删除与升级的问题。

    

        1.利用yum进行查询、安装、升级与删除功能

        查询功能:

        yum [options] [查询项目工作目录] [相关参数]

    -y :等待用户输入yes时,可以自动提供yes; --installroot=/some/path:安装到其他目录中,不使用特殊目录

    search: 搜索某个软件名称或者是描述的重要关键字

    list : 列出目前yum所管理的所有的软件名称与版本,类似于rpm -qa

    技术分享

    info:类似于rpm -qai

    技术分享

        provides:从文件夹中搜索软件,类似于rpm -qf

    技术分享

    升级/安装  yum[install/update]

    删除        yum [remove]

    

linux的软件安装包管理

标签:

原文地址:http://my.oschina.net/alfredliukai/blog/508555

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!