七、Linux入门之软件包管理

包和包管理器

        最初只有.tar.gz的打包的源码文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们急需系统提供一种方法来管理这些安装在机器上的软件,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才开发自己的“rpm”包管理系统

包的组成:

二进制文件、库文件、配置文件、帮助文件

程序包管理器

debian: deb文件, dpkg包管理器

redhat: rpm文件, rpm包管理器

        rpm:Redhat Package Manager

        RPM  Package Manager

包命名

源代码:name-VERSION.tar.gz|bz2|xz

        VERSION: major.minor.release

rpm包命名方式:

        name-VERSION-release.arch.rpm

        例:bash-4.2.46-19.el7.x86_64.rpm

        VERSION: major.minor.release

        release:release.OS

        常见的arch:

                x86: i386, i486, i586, i686

                x86_64: x64, x86_64, amd64

                powerpc: ppc

        跟平台无关:noarch

包:分类和拆包

Application-VERSION-ARCH.rpm: 主包

Application-devel-VERSION-ARCH.rpm 开发子包

Application-utils-VERSION-ARHC.rpm 其它子包

Application-libs-VERSION-ARHC.rpm 其它子包

包之间:可能存在依赖关系,甚至循环依赖

解决依赖包管理工具:

        yum:rpm包管理器的前端工具

        apt:deb包管理器前端工具

        zypper:suse上的rpm前端管理工具

        dnf:Fedora 18+ rpm包管理器前端管理工具

库文件

查看二进制程序所依赖的库文件

        ldd /PATH/TO/BINARY_FILE

管理及查看本机装载的库文件

        ldconfig     加载配置文件中指定的库文件

        /sbin/ldconfig –p  显示本机已经缓存的所有可用库文件名及文件路径映射关系

配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

缓存文件:/etc/ld.so.cache

包管理器

功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作

包文件组成 (每个包独有) :

        RPM包内的文件

        RPM的元数据,如名称,版本,依赖性,描述等

        安装或卸载时运行的脚本

程序包的来源

管理程序包的方式:

        使用包管理器:rpm

        使用前端工具:yum, dnf

获取程序包的途径:

        1、系统发版的光盘或官方的服务器

                CentOS镜像:

                        https://www.centos.org/download/

                        http://mirrors.aliyun.com

                        http://mirrors.sohu.com

                        http://mirrors.163.com

        2、项目官方站点

        3、第三方组织:

                Fedora-EPEL:

                        Extra Packages for Enterprise Linux

                       Rpmforge:RHEL推荐,包很全

                        搜索引擎:

                                http://pkgs.org

                                http://rpmfind.net

                                http://rpm.pbone.net

                                https://sourceforge.net/

        4、自己制作

        注意:第三方包建议要检查其合法性、来源合法性、程序包的完整性

rpm包管理

CentOS系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护

安装:rpm {-i|--install} [install-options] PACKAGE_FILE…

        -v: verbose

        -vv:

        -h: 以#显示程序包管理执行进度

        rpm -ivh PACKAGE_FILE ...

        [install-options]

        --test: 测试安装,但不真正执行安装,即dry run模式

        --nodeps:忽略依赖关系

        --replacepkgs | replacefiles

        --nosignature: 不检查来源合法性

        --nodigest:不检查包完整性

        --noscripts:不执行程序包脚本

        %pre: 安装前脚本     --nopre

        %post: 安装后脚本    --nopost

        %preun: 卸载前脚本  --nopreun

        %postun: 卸载后脚本   --nopostun

        示例:

                给系统安装另一个内核:

                可以看到无法安装,添加--force强制安装

                卸载内核:

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

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

        upgrade:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则“安装”

        freshen:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则不执行升级操作

        rpm -Uvh PACKAGE_FILE ...

        rpm -Fvh PACKAGE_FILE ...

        --oldpackage:降级

        --force: 强制安装

        注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此直接安装新版本内核

                   (2) 如果原程序包的配置文件安装后曾被修改,升级时&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值