GPU技术支持-基础篇-包管理工具
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技术支持-基础篇-包管理工具相关推荐
- linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器
一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理 ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- Python 包管理工具解惑
本文转载自http://zengrong.net/post/2169.htm,感谢原作者. 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: ...
- python模块版本管理工具_【转】Python包管理工具
Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...
- Python包管理工具小结
此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...
- Win10下媲美apt的包管理工具 Scoop 的安装以及常用软件清单
本文首发于我的个人博客网站:https://www.xerrors.fun/scoop-list/ 欢迎访问 想必使用过 MacOS 或者 Linux 的小伙伴一定会对 windows 下面的软件配置 ...
- Ubuntu18.04环境下使用python包管理工具pipenv
安装环境 ubuntu:18.04 python:3.6+ pipenv:2020.6.2 pip3:20.1.1 安装环境我一般使用的都是最新兼容版的,建议安装时把环境包更新到最新版. pipenv ...
- linux高级包管理工具,5 个给 Linux 新手的最佳包管理器
原标题:5 个给 Linux 新手的最佳包管理器 一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Lin ...
- Helm包管理工具(简介、安装、方法)
认识Helm 每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样.部署一套新的环境成本是真的很高.如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了 ...
最新文章
- 10件5G能实现但4G不能做的事情
- JavaScript正则表达式快速判断技巧
- Minimum Extraction 思维
- Android学习(七)—— Android布局
- C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法 (转)
- 从达标到卓越 —— API 设计之道
- php strncmp,PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
- keytool java_如何找到并运行keytool
- Web页面iOS真机调试-win10
- 基于单片机的便携式瓦斯检测仪系统设计-基于单片机超声波停车位自动检测系统-基于单片机产品数量自动计量系统设计-基于单片机激光电子琴设计-基于单片机锂电池电量显示设计-基于单片机温湿度农田自动灌溉设计
- 锂电池注液工艺视觉定位方案指南
- FPGA经验谈系列文章——写代码心中要有电路?
- STC12C5A60S2定时器配置
- 与其说我害怕成为普通人,还不如说我害怕生活,害怕找不到一种自己喜欢的方式去度过人生...
- c语言大作业实现程序功能描述,C语言程序设计大作业——员工管理系统(代码超详细内含实验报告)...
- java与设计模式-观察者模式
- 【MicroPython ESP32】I2C功能使用介绍
- java微信公众号素材管理系统_微信公众平台后台素材管理
- 计算机如何连接网络扫描仪,如何添加局域网网络扫描仪
- symbian学习转载