软件包管理02

软件包管理02

此处简单介绍一下dnf 和 Debian系列的包管理

dnf工具

  • dnf简介:新一代的rpm软件包管理器。DNF发行日期是2015年5月11日,DNF包管理器采用Python编写,发行许可协议为GPLv2。在RHEL8.0版本正式取代YUM,DNF包管理器客服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等。
  • 配置文件:/etc/dnf/dnf.conf
  • 仓库文件:/etc/yum.repos.d/ *.repo
  • 日志: /var/log/dnf.rpm.log
  • DNF用法:与yum一致
    dnf [options] […]
    dnf --version
    dnf repolist
    dnf install httpd
    dnf remove httpd
    dnf clean all
    dnf makecache
    dnf list installed
    dnf list available
    dnf search nano
    dnf history undo 1
此处在centos7上安装的dnf与yum进行简单的对比,对比工具使用time
    1、获取DNF的rpm安装包
        [root@localhost dnf]# ls -1
        dnf-0.6.4-2.sdl7.noarch.rpm
        dnf-conf-0.6.4-2.sdl7.noarch.rpm
        libcomps-0.1.8-3.el7.x86_64.rpm
        python2-libcomps-0.1.8-3.el7.x86_64.rpm
        python-dnf-0.6.4-2.sdl7.noarch.rpm
    2、使用yum安装dnf,因此需要手动生成repodata目录文件,
    没有此文件不能使用yum安装。使用createrepo
        [root@localhost dnf]# createrepo .
        [root@localhost dnf]# ls -1
        dnf-0.6.4-2.sdl7.noarch.rpm
        dnf-conf-0.6.4-2.sdl7.noarch.rpm
        libcomps-0.1.8-3.el7.x86_64.rpm
        python2-libcomps-0.1.8-3.el7.x86_64.rpm
        python-dnf-0.6.4-2.sdl7.noarch.rpm
        repodata
        [root@localhost dnf]#
    3、配置yum客户端,目前我的主机在本机,因此仓库路径是本地
            vim /etc/yum.repos.d/dnf.repo
            [dnf]
            name=dnf
            baseurl=file:///data/dnf
            gpgcheck=0
    4、yum listrepo 
    5、yum install dnf -y
    至此dnf就安装完成啦~,我是直接在CentOS7安装的dnf软件,用来测试的。

    6、yum 与 dnf 性能对比:
    ]#time yum reinstall vsftpd -y
    real	0m1.128s
    user	0m0.847s
    sys	0m0.265s

    ]# time dnf reinstall vsftpd -y
    real	0m0.722s
    user	0m0.445s
    sys	0m0.247s
    从安装同一软件所需时间来看,dnf用时更短

time命令

  • time - 计算命令执行所消耗的时间
  • 实际使用时间:real time
  • 用户空间消耗的时间:user time
  • 内核空间消耗的时间:system time
  • real time > system time + user time :进程切换会消耗一定的时间

Ubuntu的包管理

  • Debian软件包通常为预编译的二进制格式的扩展名“.deb”,类似rpm文件,因此安装快速,无需编译软件。包文件包括特定功能或软件所必需的文件、元数据和指令

  • dpkg:package manager for Debian,类似于rpm, dpkg是基于Debian的系统的包管理器。可以安装,删除和构建软件包,但无法自动下载和安装软件包或其依赖项

  • APT:Advanced Packaging Tool,功能强大的软件管理工具,甚至可升级整个Ubuntu的系统,基于客户/服务器架构

  • APT工作原理:在服务器上先复制所有DEB包,然后用APT的分析工具genbasedir根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在文件夹base内的一个DEB 索引清单文件中,一旦APT 服务器内的DEB有所变动,要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于 /var/cache/apt/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。

  • dpkg常见用法: man dpkg
    dpkg -i package.deb 安装包
    dpkg -r package 删除包,不建议,不自动卸载依赖于它的包
    dpkg -P package 删除包(包括配置文件)
    dpkg -l 列出当前已安装的包,类似rpm -qa
    dpkg -l package 显示该包的简要说明,类似rpm –qi
    dpkg -L package 列出该包中所包含的文件,类似rpm –ql
    dpkg -S 搜索包含pattern的包,类似rpm –qf
    dpkg -s package 列出该包的状态,包括详细信息,类似rpm –qi
    dpkg --configure package 配置包,-a使用,配置所有没有配置的软件包
    dpkg -c package.deb 列出 deb 包的内容,类似rpm –qpl
    dpkg --unpack package.deb 解开deb包的内容
    注意: 一般建议不要使用dpkg卸载软件包。因为删除包时,其它依赖它的包不会卸载,并且可能无法再正常运行

  • Debian 使用APT工具来管理包系统,它与 apt 命令不同。在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。
    apt-get 是其中一个常用的命令行工具,另外一款较为流行的命令行与 GUI 兼顾的工具是 aptitude ,之前最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令中

  • 在 2014 年apt 命令发布第一个稳定版,Ubuntu 16.04 引入新特性之一便是 apt 命令,apt 命令解决了命令过于分散的问题,它包括 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,提供管理软件包所需的必要选项

  • apt 相当于 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合

  • apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。此外,启用的几个特性也非常有帮助。例如:可以在使用 apt 命令安装或删除程序时看到进度条,apt 还会在更新存储库数据库时提示用户可升级的软件包个数  apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即可用 apt 替换部分apt-get 系列命令,但不是全部。

  • apt 特有的命令
    apt list 列出包含条件的包(已安装,可升级等)
    apt edit-sources 编辑源列表

  • APT包索引来自/etc/apt/sources.list文件和/etc/apt/sources.list.d目录中定义的存储库的可用包的数据库。要使用存储库中所做的最新更改来更新本地程序包索引

  • apt命令操作(如安装和删除软件包)记录在/var/log/dpkg.log日志文件中

  • apt与apt-get命令对比
    apt 命令 被取代的命令 命令的功能
    apt install apt-get install 安装软件包
    apt remove apt-get remove 移除软件包
    apt purge apt-get purge 移除软件包及配置文件
    apt update apt-get update 刷新存储库索引
    apt upgrade apt-get upgrade 升级所有可升级的软件包
    apt autoremove apt-get autoremove 自动删除不需要的包
    apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
    apt search apt-cache search 搜索应用程序
    apt show apt-cache show 显示安装细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值