包管理器入门 linux(apt-get,yum,pkg)与node(yarn,npm)

网友投稿 1494 2022-05-30

1、包管理器是什么?

什么是包管理器?

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

什么是软件包?

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

包管理器是如何工作的?

几乎所有的 Linux 发行版都有软件仓库,它基本上是软件包的集合。是的,可以有不止一个软件库。软件库包含不同种类的软件包。

软件仓库也有元数据文件,其中包含了软件包的信息,如软件包的名称、版本号、软件包的描述和软件仓库名称等。这就是你在 Ubuntu/Debian 中使用 apt show 命令所看到的。

你的系统上的包管理器首先会与元数据进行交互。包管理器在你的系统上创建了一个元数据的本地缓存。当你运行包管理器的更新选项(例如 apt update)时,它会通过引用仓库中的元数据来更新本地元数据缓存。

当你运行软件包管理器的安装命令(例如 apt install package_name)时,软件包管理器会引用这个缓存。如果它在缓存中找到了包的信息,它就会使用互联网连接到相应的仓库,并在你的系统上安装之前先下载包。

一个包可能有依赖关系。意思是说,它可能需要安装其他软件包。软件包管理器通常会处理这些依赖关系,并将其与你正在安装的软件包一起自动安装。

2、操作系统的包管理器

Ubuntu(全球热门发行版)

默认采用apt-get 作为包管理器

常见的命令如下:

apt-get update apt-get upgrade apt-get install apt-get uninstall apt-get source

1

2

3

4

5

CentOS(大名鼎鼎的RedHat的社区版)

默认使用yum作为包管理器,用法与apt-get相似。

FreeBSD

默认使用pkg作为包管理器。

Fedora(对比Ubuntu有不一样的包管理)

默认使用dnf作为包管理器。

Red Hat Linux

RPM包管理器,一种用于互联网下载包的打包及安装工具,最早由红帽发行,后来开源。几乎所有的Linux发行版本都使用了这种形式的命令管理、安装、更新和卸载软件。

Windows

微软 Build 2021 开发者大会发布了 winget 1.0 版本。

可以再cmd中输入winget使用它。

在此之前,windows通过使用msi文件打包安装所需的数据库和系统依赖项。

也有比较有名的第三方如Chocolatey提供windows的包管理服务。

包管理器入门 linux(apt-get,yum,pkg)与node(yarn,npm)

macOS

官方没有包管理器,最有名的第三方包管理器是Homebrew。

一款自由及开放源代码的软件包管理系统,用以简化macOS系统上的软件安装过程,最初由马克斯·霍威尔写成。因其可扩展性得到了一致好评,而在Ruby on Rails社区广为人知。 Homebrew使用GitHub,通过用户的贡献扩大对软件包的支持。

3、编程语言的包管理器

npm

是 JavaScript 运行时 Node.js 的默认程序包管理器。

npm 由两个主要部分组成:用于发布和下载程序包的 CLI(命令行界面)工具和托管 JavaScript 程序包的在线存储库。

yarn

由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的。

npm install的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。同一个项目,安装的时候无法保持一致性。由于package.json文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义。

Yarn和npm命令对比

npm install === yarn npm install taco --save === yarn add taco npm uninstall taco --save === yarn remove taco npm install taco --save-dev === yarn add taco --dev npm update --save === yarn upgrade

1

2

3

4

5

pip

python的默认包管理器。

gem

Ruby的默认包管理器。

Nuget

.NET世界的包管理器,C#会经常用到。

apt-get Linux npm Yarn

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何做到精通GitLab CI/CD?
下一篇:【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System Big
相关文章