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

举报
小哈里 发表于 2022/05/06 22:50:27 2022/05/06
【摘要】 1、包管理器是什么? 什么是包管理器? 包管理器(package manager)是一种工具,它允许用户在操作系统上安装、删除、升级、配置和管理软件包。软件包管理器可以是像 软件中心 这样的图形化应用...

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的包管理服务。

  • 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#会经常用到。

文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。

原文链接:gwj1314.blog.csdn.net/article/details/122791478

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。