Abl*_*lia 10 apt software-installation package-management
我目前正在使用 Ubuntu 并尝试在 VM 上安装 Debian 系统,这意味着我必须处理软件包。因为我是新手,所以我在网上阅读了很多关于它的内容,尤其是 debian wiki(ubuntu wiki 也很有用)。特别是,我已经学习了如何制作本地存储库以及如何正确编辑 sources.list 文件。
但是,我仍然对它的工作原理有一些疑问,我在网上找不到详细信息。
首先,当您使用在线存储库时。我知道 apt-get 将按照您在 source.list 文件中编写的链接并搜索 Packages.gz 存档。我不明白的是这个简单的存档(似乎只是可安装包的列表)如何允许安装包?Packages.gz 是否提供了有关如何查找 .deb 文件然后继续安装的 apt 信息?或者是别的什么?
其次,关于 Sources.gz 存档。我读过它是 Packages.gz 中列出的包的源代码,但在大多数情况下不需要它。所以,如果我在我的 source.list 文件中添加指向这个 Sources.gz 的链接,它到底给了我什么?这有什么意义?
三、关于本地仓库;这与前面的问题有关。我知道如何使用 .deb 文件创建本地存储库,但假设我只有这个 Packages.gz 存档:这还不够,对吧?如果我有 Sources.gz 存档,它会起作用吗?
最后,我在 Debian 存储库中看到,除了 dist 存储库之外,还有一个包含大量 .deb 的池存储库。我知道安装它们的方法(下载 .deb 及其依赖项,使用 dpkg -i 安装它们),但是有更简单的方法吗?更自动的东西,它可以在线找到 .deb,找到它的依赖项,然后安装所有东西?(就像 apt-get 一样,但据我所知,apt-get 仅适用于 Packages.gz 和 Sources.gz 档案,而不直接适用于 .deb)
对不起,这不是一个真正的问题,而是一个问题列表 ^^ 但我在网上找到的所有内容主要是“apt-get 在在线存储库中搜索包及其依赖项并通过 dpkg 安装它”,我会喜欢关于它的更多细节。
小智 12
Packages.gz 包含一个Filename字段,其值可能类似于pool/main/n/name-of-package/name-of-package_version_amd64.deb. 这告诉包管理器查看该 URL。
例如,如果您的 sources.list(.d) 中有以下行:
deb https://some-domain.com/some-url some-distribution main
您将拥有以下文件:https : //some-domain.com/some-url/dists/some-distribution/main/binary- amd64/Packages.gz
该文件将引用pool/main/n/name-of-package/name-of-package_version_amd64.deb,因此您的包管理器将查看https://some-domain.com/some-url/pool/main/n/name-of-package/name-of-package_version_amd64.deb.
Sources.gz 的工作方式相同,但它是可选的。它适用于apt source,如果您希望自己编译它而不是使用预先构建的二进制文件,它将为您获取源代码。
这主要适用于想要修补发行版所使用的软件包的确切版本的系统管理员,而不是那些只会转到项目主页并按照那里的构建说明进行操作的贡献者/好奇的人。
如果一个包是在分配的池目录,但不是在Packages.gz,它是最有可能在另一个Package.gz。请注意你是如何在一个典型的几个字sources.list线:
deb http://archive.ubuntu.com/ubuntu precise main universe multiverse
main,universe和multiverse每个人都有自己Packages.gz的文件。您可能需要启用一些,例如 debiannon-free默认禁用。但是,某些软件包仍然不可用(即使在池中也不可用)。您可以选择添加不受信任的存储库(例如 Ubuntu 上的 PPA),自己打包丢失的程序(以便您和其他人可以使用他们的包管理器来管理该程序)或只是自己构建和安装它(您应该使用/usr/local前缀来避免与您的包管理器发生冲突)。
Release分发的文件被更新。这允许apt update知道它必须重新下载Packages.gz.| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |