栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux软件包管理

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux软件包管理

软件包和包管理器 软件包介绍

开源软件最初只提供了.tar.gz的打包的源码文件,用户必须自已编译每个想在GNU/Linux上运行的软件。用户急需系统能提供一种更加便利的方法来管理这些软件,当Debian诞生时,这样一个管理工具dpkg也就应运而生,可用来管理deb后缀的"包"文件。从而著名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才开发自己的rpm包管理系统

软件包中的文件分类
    二进制文件
    库文件
    配置文件
    帮助文件

范例:利用 cpio工具查看包文件列表

rpm2cpio 包文件|cpio –itv  预览包内文件
rpm2cpio 包文件|cpio –id  “*.conf” 释放包内文件
程序包管理器

软件包管理器功能:

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

主流的程序包管理器

    redhat:rpm文件, rpm 包管理器,rpm:Redhat Package Manager,RPM  Package Manager 
    debian:deb文件, dpkg 包管理器
包命名

源代码打包文件命名:

name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release

rpm包命名方式:

name-VERSION-release.arch.rpm
VERSION: major.minor.release
release:release.OS

常见的arch:

    x86: i386, i486, i586, i686
    x86_64: x64, x86_64, amd64
    powerpc: ppc
    跟平台无关:noarch

范例:

bash-3.2-32.el5_9.1.i386.rpm
bash-4.2.46-19.el7.x86_64.rpm
bash-4.4.19-7.el8.x86_64.rpm
bash-4.4.19-7.el8.aarch64.rpm
bash-4.4.19-7.el8.ppc64le.rpm
bc_1.07.1-2_amd64.deb
bc_1.07.1-2_s390x.deb

范例:统计rpm的架构类型及相应的包数量

[root@centos8 Packages]#pwd
/misc/cd/baseOS/Packages
[root@centos8 Packages]#ls *.rpm | grep -Eo '[^.]+.rpm'| grep -Eo '^[^.]+'|sort |uniq -c
    389 i686
    211 noarch
   1061 x86_64
[root@centos8 Packages]#ls *.rpm |rev|cut -d. -f2|rev |sort |uniq -c
    389 i686
    211 noarch
   1061 x86_64
[root@centos8 Packages]#ls *.rpm | grep -Eo '[^.]+.rpm'|cut -d. -f1|sort |uniq -c
    389 i686
    211 noarch
   1061 x86_64
分类和拆包

软件包为了管理和使用的便利,会将一个大的软件分类,放在不同的子包中。

包的分类

    Application-VERSION-ARCH.rpm: 主包
    Application-devel-VERSION-ARCH.rpm 开发子包
    Application-utils-VERSION-ARHC.rpm 其它子包
    Application-libs-VERSION-ARHC.rpm 其它子包
包的依赖

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包

安装软件包时,会因为缺少依赖的包,而导致安装包失败。

解决依赖包管理工具:

    yum:rpm包管理器的前端工具
    dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum
    apt:deb包管理器前端工具
    zypper:suse上的rpm前端管理工具
程序包管理器相关文件
    包文件组成 (每个包独有)
    包内的文件
    元数据,如:包的名称,版本,依赖性,描述等
    可能会有包安装或卸载时运行的脚本
    数据库(公共):/var/lib/rpm
    程序包名称及版本
    依赖关系
    功能说明
    包安装后生成的各文件路径及校验码信息
获取程序包的途径

软件包需要事先将源码进行编译后打包形成,获取包的途径如下:

系统发版的光盘或官方网站

CentOS镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com

Ubuntu 镜像:

http://cdimage.ubuntu.com/releases/
http://releases.ubuntu.com

第三方组织提供
    Fedora-EPEL:Extra Packages for Enterprise Linux

    https://fedoraproject.org/wiki/EPEL

    https://mirrors.aliyun.com/epel/?spm=a2c6h.13651104.0.0.3bc47dfaZpesAr

    Rpmforge:官网:http://repoforge.org/,   RHEL推荐,包很全,即将关闭
    
    Community Enterprise Linux Repository:http://www.elrepo.org,支持最新的内核和硬件相关包
    
软件项目官方站点

http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/

搜索引擎

http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/

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

自己制作

将源码文件,利用工具,如:rpmbuild,fpm等工具制作成rpm包文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/10379.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号