我使用 Xubuntu 并发现我可以使用apt
和更新软件包apt-get
。但我听说程序员通常git
在他们的项目中使用来管理不同的版本。那么为什么Xubuntu不使用git
来处理不同版本的软件呢?
答案1
apt
和apt-get
与 相关且非常不同git
。
合适的是包管理用于 Debian 衍生的 Linux 发行版(包括 Ubuntu/Xubuntu)的工具。它用于管理(即下载、安装、删除、更新)组成您正在使用的 Linux 发行版的二进制软件包。这是关于更新本地系统软件以及添加和删除程序。
“apt”是用于与 Synaptic 图形工具交互的命令行工具。本质上,他们做同样的事情;然而,一个是图形化的,在 X-Window 系统中运行,另一个是从 Linux 命令行运行。
apt-get
是最常用于在计算机上安装或更新软件包的命令。apt
不太常用,并且apt-get
在输出格式方面与大多数不同。您可以使用man apt
或man apt-get
调出手册页,这将为您提供有关命令之间差异的更多详细信息。网上还有很多页面可以为您提供有关如何使用 Synaptic 和 apt 的更多信息。
git
另一方面,是软件开发源代码的版本控制系统。同样,您可以使用它man git
来获取更多信息(如果您的系统上安装了 git)。然而,如果您有 Xubuntu 并且不参与自己开发软件,我认为您不需要太担心 git。
答案2
因此,apt
和apt-get
都是大多数 Debian 和基于 Debian 的 Linux 发行版都可用的包管理工具。APT
代表 Advanced Package Tool,是一个包管理工具,旨在管理.deb
包的包管理工具。这是一篇文章你可以查看一下差异。我还建议您阅读Debian 维基关于包管理。
本质上apt-get
是“较旧”和apt
“较新”,但两者的功能基本相同,即下载、安装、更新、升级和管理 Debian 安装上的所有软件包。除了一些边缘情况之外,它们是可以互换的。
Git
另一方面是软件版本控制系统。这是一个好网站开始学习git
.开发人员和最终用户可以用来git
控制他们正在处理的项目的版本。您可以用来git
跟踪Word文档、视频、图片、源代码等的更改。
它只是能够管理和控制系统上软件的另一个工具。有些应用程序在您的操作系统的存储库中不可用,开发人员可能会选择在git
存储库中分发版本,而不是操作系统的包管理器引用的标准存储库。在这种情况下,您可以git
下载软件并按照开发人员提供的任何说明完成安装。
使用git
是一个更加手动的过程。通过使用apt
或 ,apt-get
您可以使用 1 或 2 个命令自动下载并安装所有软件包的任何更新(软件、固件、内核更新、安全补丁等)。您git
必须自己检查该软件是否有新版本,下载并完成所需的所有安装步骤。与使用APT
工具不同,您必须对通过 . 安装的每个单独的软件执行此操作git
。
答案3
apt
计算依赖关系。当您请求软件包 X 时,apt
将安装软件包 X 及其依赖的所有软件包。 (或者在其他情况下,删除其他包)。它解压包文件,并按顺序运行安装脚本。
git
允许拉或推一组(源代码)文件。它不跟踪依赖关系。以及源文件的当前版本,git
跟踪文件集的更改历史记录。
这两者都相当复杂。它们也专门针对各自的目的 - 具有各种权衡和限制。两者的工作方式或用途并没有太多重叠。
例如,他们甚至倾向于使用彼此不同的网络和安全协议。
很多(但不是全部)git
下载现在都是通过HTTPS(基于 TLS 的 HTTP)。通过依赖为保护在线购物等而创建的相同的全球 Web 证书颁发机构 (CA),可以防止连接劫持。
互联网上的连接劫持非常容易且普遍;我们必须始终防范它。连接劫持可以由您连接的恶意 Wi-Fi 路由器、互联网接入提供商、获得互联网骨干路由器之间线路访问权限的人等执行。
大多数(但不是全部)apt
下载都是通过纯 HTTP 执行的。 apt
使用不同的方法验证下载的文件。它为整个apt
存储库使用一个 GPG 签名文件,进而验证可用文件的校验和列表。看安全应用程序。
例如,SecureApt 历来比 TLS 便宜,因为它不需要服务器单独加密每个文件传输。另一个示例功能是能够从apt
存储库的最佳本地“镜像”服务器下载。镜像所要做的就是复制相同的文件。许多不同的组织已将镜像服务器作为公共服务提供。然而,如果镜像服务器被劫持,他们无法向您提供错误的更新。经过验证的文件只能由持有该文件的组织生成秘密GPG 密钥对的一半。
使用更现代的技术可能还有一些改进 SecureApt 的空间。例如,SecureApt 没有相当于“更新透明度”(类似于证书透明度)的功能来阻止国家权力秘密强制在分布式软件中设置后门。尽管如此,SecureApt 的功能已经非常适合他们的目的。
例如,Debianapt
存储库是由一个大型组织生成的,但许多人会希望使用 Git 来检查许多独立项目的源代码和历史记录。重新使用 HTTPS(即使用 Web 证书颁发机构进行身份验证)是为git
传输添加保护的一种非常方便的方法。