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

目录

  • GPU技术支持-基础篇-包管理工具
    • 前言
    • 概述
    • 包管理工具简介
      • dpkg「Debian Package」
      • rpm「RPM Package Manager」
      • 依赖地狱「dependency hell」
      • apt「Advanced package tool」
      • yum「Yellow dog Updater, Modified」
      • 更好的用户体验
    • 参考资料

前言

转载请附上原文出处链接

稀土掘金本文链接: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

GPU技术支持-基础篇-包管理工具相关推荐

  1. linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器

    一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理 ...

  2. Java基础-Eclipse第三方安装包管理工具之Maven

    Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...

  3. Python 包管理工具解惑

    本文转载自http://zengrong.net/post/2169.htm,感谢原作者. 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: ...

  4. python模块版本管理工具_【转】Python包管理工具

    Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...

  5. Python包管理工具小结

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...

  6. Win10下媲美apt的包管理工具 Scoop 的安装以及常用软件清单

    本文首发于我的个人博客网站:https://www.xerrors.fun/scoop-list/ 欢迎访问 想必使用过 MacOS 或者 Linux 的小伙伴一定会对 windows 下面的软件配置 ...

  7. Ubuntu18.04环境下使用python包管理工具pipenv

    安装环境 ubuntu:18.04 python:3.6+ pipenv:2020.6.2 pip3:20.1.1 安装环境我一般使用的都是最新兼容版的,建议安装时把环境包更新到最新版. pipenv ...

  8. linux高级包管理工具,5 个给 Linux 新手的最佳包管理器

    原标题:5 个给 Linux 新手的最佳包管理器 一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Lin ...

  9. Helm包管理工具(简介、安装、方法)

    认识Helm 每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样.部署一套新的环境成本是真的很高.如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了 ...

最新文章

  1. 10件5G能实现但4G不能做的事情
  2. JavaScript正则表达式快速判断技巧
  3. Minimum Extraction 思维
  4. Android学习(七)—— Android布局
  5. C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法 (转)
  6. 从达标到卓越 —— API 设计之道
  7. php strncmp,PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
  8. keytool java_如何找到并运行keytool
  9. Web页面iOS真机调试-win10
  10. 基于单片机的便携式瓦斯检测仪系统设计-基于单片机超声波停车位自动检测系统-基于单片机产品数量自动计量系统设计-基于单片机激光电子琴设计-基于单片机锂电池电量显示设计-基于单片机温湿度农田自动灌溉设计
  11. 锂电池注液工艺视觉定位方案指南
  12. FPGA经验谈系列文章——写代码心中要有电路?
  13. STC12C5A60S2定时器配置
  14. 与其说我害怕成为普通人,还不如说我害怕生活,害怕找不到一种自己喜欢的方式去度过人生...
  15. c语言大作业实现程序功能描述,C语言程序设计大作业——员工管理系统(代码超详细内含实验报告)...
  16. java与设计模式-观察者模式
  17. 【MicroPython ESP32】I2C功能使用介绍
  18. java微信公众号素材管理系统_微信公众平台后台素材管理
  19. 计算机如何连接网络扫描仪,如何添加局域网网络扫描仪
  20. symbian学习转载

热门文章

  1. 利用Hbuilder + Android Studio 制作安卓APP
  2. 四川省科学技术奖申报条件和18市补助
  3. 微信内隐藏的一个修复功能
  4. 2.数据的结构 (学校考试必考概念)-数据结构入门(c语言实现)
  5. aps后缀是什么文件_文件后缀大全
  6. 大二java基础期末考试试题,保准看明白!
  7. 计算机学院毕业典礼口号,大学毕业典礼横幅标语大全
  8. VMware ESXi添加NVMe硬盘扩容
  9. 刚刚!霍金向北京喊话:人类需要大胆前行,涉足无前人所及之处
  10. Ice飞冰初始化《二》