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

linux之程序包安装

时间:2016-12-19 00:44:36      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:包管理

一、软件包组成:

    软件包组成:(二进制程序、库文件、配置文件、帮助文件)

            二进制程序文件:

                存放路径:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin;

                    /bin;/sbin:系统自身启动需要的二进制文件;

                    /usr/sbin;/usr/local/bin:系统启动后完成基本管理需要的二进制文件;

                    /usr/local/bin;/usr/local/sbin:第三方管理需要的二进制文件;

            库文件:(也是可执行文件,但不能独立执行,需要调用执行)在程序中通常称为函数;

                    存放路径:/lib;/usr/lib;/usr/local/lib;

                     库文件分类:静态库(以.a结尾的文件)、动态库(以.so结尾的文件)

                    库文件配置路径:/etc/ld.so.conf;/etc/ld.so.conf.d/*.conf

            配置文件:

                    存放路径:/etc

            帮助文件:

                    帮助文件分类:手册(/usr/share/man);README;INSTALL;通常后两个都放在/usr/share/doc,

                                            man的配置文件在/etc/man_db.conf(定义man去哪里找帮助文件)


二、linux程序包管理工具:

包管理工具应包含:文件清单、文件存放位置、软件功能说明、依赖关系(依赖其他程序包)

程序包管理工具数据库:追踪软件安装位置,便于卸载操作

软件包前端管理工具会自动查找、解决软件包之间的依赖关系,然后安装需要的软件包。

Debian :dpt;apt-get(软件包前端管理工具)

Redhat:rpm;yum(软件包前端管理工具)

suse:rpm


软件包安装方法:包管理工具安装、源代码编译安装、软件包管理器前端工具、通用二进制格式;

    包管理工具安装:rpm实现的功能:打包、安装、查询、升级、校验、卸载等;

    编译安装:将源代码编译成二进制格式文件;需提供环境(如:编译器:gcc,g++;库文件),

                     由于编译安装只能手动进行安装,为了方便管理(卸载、升级),一般安装到特定的文中,带来的问题:如找不到二进制文件执行(因为在环境变量中没有定义)、找不到库文件、找不到帮助手册(可以通过修改配置文件或使用命令:man -M /path来指定帮助文件路径)、头文件路径(/usr/include)。


三、软件包及源程序命名:

    1、源程序命名:

            name-version.tar.{gz | bz2 | xz}  (包名-版本号.后缀名)

                其中的版本号组成:major.minor.release (主版本号.次版本号.发行号);主版本号一般是程序的重大改变,次版本号一般是程序部分功能发生改变,发型号一般是是bug修复,一次升级时要查看相应版本号。

            如:bash-4.3.1.tar.xz


    2、rpm包命名:

            name-version-release.arch.rpm (包名-源程序版本号-打包版本号.平台.rpm;平台指主机架构如:i686,x86_64,amd64,ppc,noarch(表示与平台无关)) 此处的release是发行者打包的管理号,可能还包括所适用的操作系统(如:centos6);

而version也包含major.minor.release (主版本号.次版本号.发行号),解释同源程序的release;

            如:bash-4.3.2-5.e16.x86_64.rpm  包名.源程序版本号.打包版本号及适用操作系统.平台.rpm 


    3、rpm分包命名:将某些功能做成独立的包,需要此功能才安装。

            主包包名-分包包名--version-release.arch.rpm   一般分包会依赖于主包,也就是说安装分包必须安装主包;

            主包:核心包;bind

            分包:支包;bind-chroot

                如:bind-chroot 

    4、程序包位置:

            一般放在packet下        


四、软件包获取及验证软件包:

红帽软件包第三方平台:epel,现在由fedora来维护;因此又叫fedroa-epel:

http://mirrors.sohu.com;这里的软件一般是系统光盘不带的;

http://rpmfind.net;用来搜rpm包的

http://rpm.pbone.net;用来搜rpm包的


rpm包验证机制:来源合法性、包的完整性; 

gpg pgp:

redhat系列官方公钥存放位置:

[root@promote ~]# ls /etc/pki/rpm-gpg/    //显示公钥文件

RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

[root@promote ~]#

[root@promote ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    //导入公钥

[root@promote ~]# rpm -K zziplib-utils-0.13.62-5.el7.x86_64.rpm            //验证包来源合法

zziplib-utils-0.13.62-5.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

[root@promote ~]#



五、rpm安装、卸载、

 INSTALLING, UPGRADING, AND REMOVING PACKAGES:

1、rpm安装:  要指定安装文件的路径(从哪个文件安装)   

  rpm {-i|--install} [install-options] PACKAGE_FILE ...

install-options:

    -v:显示详细信息;

    -vv:显示更详细信息;

    -h:以#号显示安装进度,一个#表示2%的进度

    --nodeps:忽略依赖关系;注意:忽略依赖关系可能能安装软件包,但安装后不一定能正常使用;

    --test:仅测试安装,但不安装

    --replacepkgs:重新安装软件包,替换已安装包的所有文件;

常用组合:-ivh

如:

[root@promote ~]# rpm -ivh /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm

[root@promote ~]# rpm -ivh zziplib-utils-0.13.62-5.el7.x86_64.rpm

error: Failed dependencies:

        libzzip-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

        libzzipfseeko-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

        libzzipmmapped-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

        zziplib(x86-64) = 0.13.62-5.el7 is needed by zziplib-utils-0.13.62-5.el7.x86_64

[root@promote ~]# rpm -ivh /cdrom/Packages/

注意:rpm安装包不会自动安装依赖的包;

[root@promote ~]# rpm -ivh --replacepkgs /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm


2、rpm卸载:卸载只需要指包名;

     rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

 --nodeps:忽略依赖关系;

 --test:测试卸载

如:

[root@promote ~]#  rpm -e zsh

[root@promote ~]#


注意:在安装或卸载的时候,如果有写文件做了改动,rpm会将修改的文件cp一份作为备份,可以在警告信息中看到;waring。。。。。


3、rpm查询:

     rpm {-q|--query} [select-options] [query-options]

rpm -qa:查询所有的包   //不支持golbing

rpm -qa | grep ‘包名’  :查询特定的包

rpm -qi ‘包名’:查询软件包的摘要信息;

rpm -ql ‘包名’ :查询软件包安装产生的文件清单;

rpm -qc ‘包名’: 查询软件包安装后的配置文件清单;

rpm -qd ‘包名’:查询软件包安装后产生的帮助文档信息清单;



如:

[root@promote ~]# rpm -q zsh

package zsh is not installed

[root@promote ~]# rpm -qa | grep zsh

zsh-5.0.2-14.el7.x86_64

[root@promote ~]# rpm -qi zsh    //查询软件包的相关摘要信息

[root@promote ~]#  rpm -ql zsh  | less//查询zsh安装产生的文件清单,并分页显示;






  QUERYING AND VERIFYING PACKAGES:

       rpm {-q|--query} [select-options] [query-options]

       rpm {-V|--verify} [select-options] [verify-options]


       rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

       rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

      

           [--notriggers] [--test] PACKAGE_NAME ...





























linux之程序包安装

标签:包管理

原文地址:http://10631377.blog.51cto.com/10621377/1883751

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