Linux中的包管理工具

Linux中的包管理工具,第1张

“ 包管理器(package manager)”(或“软件管理器”)是一种工具,它允许用户在 *** 作系统上安装、删除、升级、配置和管理软件包。软件包管理器可以是像“软件中心”这样的图形化应用,也可以是像 yum、apt-get 或 pacman 这样的命令行工具。

一个“ 包(package)”(或“软件包”)通常指的是一个应用程序,它可以是一个 GUI 应用程序、 行工具或(其他软件程序需要的)软件库。包本质上是一个存档文件,包含二进制可执行文件、配置文件,有时还包含依赖关系的信息。

包管理系统的功能和优点大致相同,但打包格式和工具却因平台而异,例如

下面以最常用的CentOS作为常用命令的例子,其他的类推

更新包列表:yum check-update

更新已安装的包:sudo yum update

搜索某个包:

yum search search_string

yum search all search_string

查看某个包的软件信息:

yum info package

yum deplist package

从存储库安装包:

sudo yum install package

sudo yum install package1 package2 ...

sudo yum install -y package

从本地系统安装一个包:sudo yum install package.rpm

删除一个或者多个已安装的包:sudo yum remove package

更多具体命令建议使用:yum -h来查看使用帮助

apt所采用的包是deb包,deb包最初是Debian Linux推出的。由于ubuntu基于debian,ubuntu将其集成到了apt包管理器中。apt可以自动解决软件之间依赖问题,ubuntu创建了一个类似apple store的软件商店。

snap是Canonical公司发布的全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。

snap最大的特点就是使用了容器来管理软件,容器带来最大的好处就是:

snap的特点是:

有三种隔离级别:

简单来说,包管理器 package manager 是一种工具,它允许用户在 *** 作系统上安装、删除、升级、配置和管理软件包。

软件包管理器可以是像“软件中心”这样的图形化应用,也可以是像apt-get或winget 这样的命令行工具。

包管理器是一个通用的概念,它并不是Linux独有的。你会经常发现各种软件或编程语言的包管理器。有只是针对Python包的PIP包管理器。甚至Atom编辑器也有自己的包管理器。

一个包 package 通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库。包本质上是一个存档文件,包含二进制可执行文件、配置文件,有时还包含依赖关系的信息。

在旧时代,软件曾经是从它的源代码安装的。你会参考一个文件(通常命名为 README ),看看它需要什么软件组件、二进制文件的位置。它通常包括一个配置脚本或 Makefile 。你必须自己编译该软件或自己处理所有的依赖关系(有些软件需要安装其他软件)。

为了摆脱这种复杂性,Linux 发行版创建了自己的打包格式,为终端用户提供随时可用的二进制文件(预编译软件),以便安装软件,同时提供一些元数据(版本号、描述)和依赖关系。

这就像烤蛋糕与买蛋糕一样。

大约在上世纪 90 年代中期,Debian 创建了 DEB 打包格式(.deb),Red Hat Linux 创建了 RPM(Red Hat Package Manager 的缩写)打包系统(.rpm)。编译源代码的方式仍然存在,但现在是可选的。

打包系统就是所有相同打包格式的集合仓库,要与打包系统交互或使用打包系统,你需要一个包管理器来拉取下载打包系统中的包,也就是我们常说的软件。

每个打包系统都有一个或者多个包管理工具。

包管理器分为:通用软件包管理器和应用程序级软件包管理器。与系统级软件包管理器相比,应用级软件包管理器专注于软件系统的一小部分,为开发人员提供所需要的编程语言的各种库。

Linux下有:

APT:是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。

Yum是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。

dpkg:最初由Debian使用,现在由Ubuntu使用。使用.deb格式,是第一个拥有广为人知的依赖性解决工具APT。

当然,还有很多,就不一一列举出来了!

Windows下有:

Chocolatey: 以Yum和apt-get的精神为基础的Windows开源分散式软件包管理器。

pacman: MSYS2移植的Windows版本的Arch Linux软件包管理器。

Scoop:一个用于Windows的命令行安装程序。

WinGet:(Windows 程序包管理器:Windows Package Manager)是微软为 win10 开发的一款开源的软件包管理器。

MacOS下有:

Mac App Store:OS X应用程序的官方数字分销平台。

Homebrew:MacOS的软件包管理器,基于Git。

Fink: dpkg的移植,它是最早的macOS的软件包管理器之一。

几乎都是各大开发语言的库管理相关。

gitee: https://gitee.com/cmcc-oneos/OneOS-Lite

docs: https://oneos-lite.com/

公众号:CMCC-OneOS


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8992415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存