自从人类开始编程以来,他们开始将它们分发给各种公司、个人等。人们必须使用自述文件自行安装软件,这是一项繁琐且耗时的工作。需要使用包管理器。包管理器可以加快开发过程并使开发人员的工作更轻松。您无需在应用程序中从头开始编写所有内容。
要了解有关如何早期安装包的更多信息,请访问 – 包管理器的演变
需要包管理器
如前所述,软件或软件包安装是一项复杂的工作,需要花费大量时间。
Need is the Mother of Invention
为了节省安装不同软件及其依赖项的宝贵时间,引入了包管理器。
1993 年,包经理开始统治科技行业。许多 Linux 发行版开始利用包管理器的优势,例如 Debian 开始使用今天仍在使用的 dkpg,RedHat 开始使用 rpm,还有更多示例。
包管理器有助于安装不同的软件,而无需担心依赖项和版本。它们经常更新,并且软件包会通过一些测试来检查安全性和其他事情。
什么是包?
一个包包含多个文件,并被压缩成一个文件。它包含一个 MakeFile — 用于编译文件和其他所需的语言文件。软件包托管在可从命令行下载的软件存储库中。每当我们下载一个包时,它会自动运行 MakeFile,然后运行编译后的二进制文件。
什么是软件存储库?
Software Repository 是一个服务器,所有软件包都在其中存储和下载。 Fedora 有 RPM,Ubuntu 使用 APT 等等。每个软件存储库都有自己的包管理器。
越来越多的包管理器
现在不仅 Linux 发行版使用包管理器,编程语言也使用它们来跟踪不同的包、模块等。Windows 和 Mac 也有一些很酷的包管理器。
随着 Linux 发行版、编程语言、Windows 用户数量的增加,包管理器和用户数量也在增加。
例如:
- Python使用自己的 PyPi 包管理器
- Node JS 使用 NPM
- Windows 使用 Chocolatey
- MacOS 使用 HomeBrew
- Fedora 有 DNF
这个世界上的每个操作系统或 Linux 发行版都有自己的包管理器。包存储在云服务器上,每个包管理器都有自己的服务器。
包管理器如何工作?
包管理器大多带有命令行界面。各种包管理器都有自己的一组命令来下载所需的包。
例如:
基于 Debian 的软件包管理器
sudo apt-add-repository "deb http://APT.spideroak.com/ubuntu-spideroak-hardy/ release restricted"
sudo apt-add-repository ppa:gnome-desktop
巧克力包装经理
choco install python
PyPi 包管理器
pip install numpy
节点包管理器 (NPM)
npm install -g npm
每当我们键入这些命令时,包管理器都会向软件存储库发送请求,下载所需的包并进行安装。