乐趣区

关于w:像Linux一样安装软件2包管理器一锅炖

什么是包管理器?

简略来说,包管理器 package manager 是一种工具,它容许用户在操作系统上装置、删除、降级、配置和治理软件包。

软件包管理器能够是像“软件核心”这样的图形化利用,也能够是像 apt-getwinget这样的命令行工具。

包管理器是一个通用的概念,它并不是 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 的软件包管理器之一。

应用程序级软件包管理器

  1. Cargo:Cargo 是 Rust 的软件包管理器。
  2. Conan:一个用于 C ++ 的软件包管理器和库。
  3. Conda:一个用于 Python 和 R 的凋谢数据迷信平台的软件包管理器。
  4. Go:一个多用途的工具,除其余外,用于 Go 软件包治理。
  5. LuaRocks:用于 Lua 的编程库和软件包管理器。
  6. Maven:Java 的软件包管理器和构建工具。
  7. npm:用于 Node.js 和 JavaScript 的编程库和包管理器。
  8. pip:Python 的软件包管理器和 PyPI 编程库。
  9. Pkg.jl:一个用于 Julia 的软件包管理器。
  10. RubyGems:Ruby 的软件包管理器和资源库。
  11. Yarn:Node.js 和 JavaScript 的软件包管理器。

简直都是各大开发语言的库治理相干。

关注 && 分割

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

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

公众号:CMCC-OneOS

退出移动版