GPU技术支持-基础篇-包管理工具

GPU技术支持-基础篇-包管理工具

前言

转载请附上原文出处链接

稀土掘金本文链接:https://juejin.cn/post/7160210027779719182

CSDN本文链接:https://blog.csdn.net/qq_43252610/article/details/127600253

概述

包管理工具「package manager」是软件工具的集合,他们能自动的执行安装、更新、配置、卸载软件(或者说包「package」)的操作。

那么包具体是个啥呢?

包是包含了软件、共享库、文档、软件名称、用途描述、版本号、供应厂商、校验和、所需依赖等等信息的归档文件「archive files」

一般包管理工具存在以下典型功能特性:

  • 能够提取包的归档文件
  • 能够通过校验和或者数字证书来确保包的完整性和真实性
  • 能够从软件存储库或者应用程序商店查找、下载、安装、更新现有包
  • 按功能对包进行分组,避免用户混淆
  • 管理依赖关系以确保一个包安装了它所依赖的所有包,从而避免“依赖地狱「dependency hell」

备注:依赖地狱后面再进行说明

一般软件开发商先在固定的硬件和操作系统平台上将软件进行编译,同时将相关的归档文件和信息按照指定格式(例如deb、rpm)进行打包,然后得到的包就可以给到用户使用。

用户用对应的包管理工具对软件开发商发布的包进行安装、卸载等操作。安装时包管理工具会读取包中记录的所需依赖,自动检测当前系统环境是否满足要求,如果满足要求就会开始安装。安装之后还会将包的信息存储在包管理工具的管理机制中,方便未来对包进行升级、卸载等操作。

目前在 Linux 中常用的包管理工具有两种,分別是:

  • dpkg「Debian Package」:

    dpkg是Linux操作系统Debian及其众多派生系统中的基础包管理工具。B2D、Ubuntu、银河麒麟(desktop)、UOS(desktop)等系统都是使用dpkg。

  • rpm「RPM Package Manager」:

    rpm是由Red Hat公司开发的,PCLinuxOS、Fedora、 AlmaLinux、CentOS、openSUSE、OpenMandriva、银河麒麟(Server)、中标麒麟等系统都是使用rpm。

包管理工具简介

dpkg「Debian Package」

常用功能命令
查询已安装的软件包dpkg -l | grep packagename
安装软件包(需要root权限)dpkg -i filename.deb
卸载软件包(需要root权限)dpkg -r packagename
更新软件包
卸载软件包及配置(需要root权限)dpkg -P packagename

进阶阅读:GPU技术支持-进阶篇-dpkg命令解析及使用

rpm「RPM Package Manager」

常用功能命令
查询已安装的软件包rpm -qa | grep packagename
安装软件包(需要root权限)rpm -i filename.rpm 或 rpm –ivh filename.rpm
卸载软件包(需要root权限)rpm -e packagename
更新软件包(需要root权限)rpm –U filename.rpm

进阶阅读:GPU技术支持-进阶篇-rpm命令解析及使用

依赖地狱「dependency hell」

dpkg/rpm的包管理工具虽然在一定程度上方便了用户使用,也能解决一些基础的依赖问题,但是在一些依赖问题上仍然无法较好解决。

例如安装包A时,却检测到系统中未安装包B,包A的依赖项中存在包B,导致包A无法安装成功,好不容易下载到了包B,却检测到系统中未安装包C,包B的依赖项中存在包C,导致包B无法安装成功…

又例如包A依赖于libfoo.1.3.so,系统当前使用的是libfoo.1.1.so,libfoo.1.1.so由包B提供,需要自己去寻找更高版本的包B,升级包B。如果现有的包C、包D依赖于libfoo.1.1.so,那么升级包B时可能还会引入需要额外升级包C、包D的情况…

这些各种依赖问题又被称为依赖地狱「dependency hell」

为了更好的解决依赖的问题,也为了简化各种包的获取安装过程,基于dpkg/rpm的包管理工具的各种**前端「Front ends」**工具也诞生了。

这些前端工具一般都存在一个由系统进行维护的存储库(软件源),里面包含了各种软件包,方便通过网络下载安装相关的包。用户可以使用部分关键词搜索存储库(软件源)的包进行安装,存在依赖问题时,也会智能解决或者提供给用户解决方案。

dpkg

  • APT,Advanced package tool

rpm

  • yum,Yellow dog Updater, Modified
  • DNF,Dandified YUM
  • Zypper
  • urpmi

下面介绍两个最常用的前端工具:apt、yum。

apt「Advanced package tool」

**apt「Advanced package tool」**是一个在Debian和基于Debian的Linux 发行版上的的Shell前端软件包管理工具。apt 通过从预编译文件或编译源代码自动检索、配置和安装软件包,简化了在类 Unix 计算机系统上管理软件的过程。

常用功能命令
搜索软件源中的软件包apt-cache search packagename
安装软件包(需要root权限)apt-get install packagename
卸载软件包(需要root权限)apt-get remove packagename
更新软件包(需要root权限)apt-get install --only-upgrade packagename

进阶阅读:GPU技术支持-进阶篇-apt命令解析及使用

yum「Yellow dog Updater, Modified」

**yum「Yellow dog Updater, Modified」**是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理工具。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

常用功能命令
搜索软件源中的软件包yum search packagename
安装软件包(需要root权限)yum install packagename
卸载软件包(需要root权限)yum remove packagename
更新软件包(需要root权限)yum update packagename

进阶阅读:GPU技术支持-进阶篇-yum命令解析及使用

更好的用户体验

上面说的包管理工具都是基于命令行进行操作的,那有没有像Windows中的应用管理或者应用商店这些图形化界面操作的工具呢?

有,当然有!

这些工具相当于基于apt/yum这些包管理工具开发的**前端「Front ends」**工具,提供更友好的图形界面,对于应用的分类、预览都更加智能,应用安装、卸载、升级等操作也对普通用户更友好。

Ubuntu的软件商店
请添加图片描述

Kylin的软件商店
请添加图片描述

UOS的软件商店
请添加图片描述

参考资料

  • wikipedia-Package manager:https://en.wikipedia.org/wiki/Package_manager
  • wikipedia-dpkg:https://en.wikipedia.org/wiki/Dpkg
  • wikipedia-APT(software):https://en.wikipedia.org/wiki/APT_(software)
  • wikipedia-RPM Package Manager:https://en.wikipedia.org/wiki/RPM_Package_Manager
  • wikipedia-Yum(software):https://en.wikipedia.org/wiki/Yum_(software)
  • wikipedia-Dependency hell:https://en.wikipedia.org/wiki/Dependency_hell
  • 鳥哥私房菜-第二十二章、軟體安裝 RPM, SRPM 與 YUM:https://linux.vbird.org/linux_basic/centos7/0520rpm_and_srpm.php
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值