我使用 docker 镜像作为我自己开发的基础,在其 Dockerfile 中添加 jessie backports 存储库并使用它来安装依赖项。此映像使用以下命令添加存储库:
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
问题是从 backports 存储库中获取包现在失败并出现以下错误(以前可以使用):
W: Failed to fetch
http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages
404 Not Found
W: Failed to fetch
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
404 Not Found
Run Code Online (Sandbox Code Playgroud)
我查看了那台服务器,那里确实不存在这些路径。
我试图在 Debian backports 站点上弄清楚这个特定的存储库是否仍然可用,但我没有发现任何迹象表明它已被弃用或类似的东西。
这是存储库的临时问题,还是 jessie-backports 存储库不再可用?如果这不是临时问题,在不升级到较新的 Debian 稳定版本的情况下,我有哪些选择可以使用这个或等效的存储库?
在 Ubuntu 中,可以通过以下命令添加存储库 -
sudo add-apt-repository ppa:yannubuntu/boot-repair
Run Code Online (Sandbox Code Playgroud)
由于 Ubuntu 是基于 Debian 代码库的,我原以为它也能在 Debian 中运行,但事实并非如此。
注意:我知道我可以编辑/etc/apt/sources.list,但我想从 shell 实现这一点。我还想知道为什么当代码库相同时相同的命令不起作用。
我正在设置一个 yum 存储库,并且需要调试 yum.conf 文件中的一些 URL。我需要知道为什么 Scientific Linux 试图抓取这个 URL,而我期望它抓取另一个 URL:
# yum install package
http://192.168.1.100/pub/scientific/6.1/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: sl. Please verify its path and try again
Run Code Online (Sandbox Code Playgroud)
该的yum.conf(5)手册页提供了有关这些变量的一些信息:
变量
您可以使用许多变量来简化 yum 配置文件的维护。它们在几个选项的值中可用,包括 name、baseurl 和 commands。
$releasever 这将替换为 distroverpkg 中列出的软件包版本的值。这默认为 'redhat-release' 包的版本。
$arch 这将被替换为您在 Python 中由 os.uname()[4] 列出的架构。
$basearch 这将替换为您在 yum 中的基础架构。例如,如果您的 $arch 是 i686,您的 $basearch 将是 i386。
$YUM0-$YUM9 …
我已阅读以下文章:如何绕过/忽略 apt 的 gpg 签名检查?
它概述了如何配置apt不检查包的签名在所有。
但是,我想将此设置的影响限制为单个(在本例中为本地托管)存储库。
也就是说:除了本地 repo之外,所有官方存储库都应该像往常一样使用 GPG 签名检查。
我该怎么做?
如果做不到这一点,在自动构建(一些元包和一些程序)期间签署包然后执行所有安全apt规定的优势(安全方面)是什么?毕竟,拥有 repo 的主机也将是秘密 GPG 密钥所在的主机。
我不明白我的sources.list中这两行之间的区别,请解释一下:
deb http://mirror.optus.net/debian/ testing main contrib non-free
相对
deb-src http://mirror.optus.net/debian/ testing main contrib non-free
系统:Debian 6 测试版,32 位。
好的,我了解如何apt-get {install|upgrade|remove} mypackages安装、升级或删除二进制文件以及它们的配置数据文件和依赖项(实际上,remove除非提供额外的标志,否则只会删除二进制文件)。
我不是在寻找它是如何用作 man描述这一点,而是它在做什么的高级别的。我的最终目标是为我创建一种在多台远程计算机上安装和管理一些自定义软件(由 make 文件创建)的方法,我需要了解有关该过程的更多信息。如果这个问题的答案是基于所使用的发行版,请根据 Debian 进行调整。
除了它的工作原理之外,我还有以下具体问题:
.deb文件指定的吗?当我执行 a yum updateor 时apt-get update,我的机器正在访问多个服务器并下载多个软件包。我想这些服务器每天都在处理数百万个类似的请求。
谁为这些服务器的维护、存在和带宽买单?如果答案取决于发行版,那么 CentOS、Arch 和 Ubuntu 将是很好的例子。我对此感到疑惑,因为我正在使用这些免费操作系统并且我正在消耗带宽,但我没有为此特权向任何人支付过费用。
有没有办法使用 yumdownloader 下载所有依赖项,即使它们已经安装?
我正在尝试创建一个本地存储库,并且只想包含我们需要的包。
我在工作时在我的机器上没有 root 访问权限,但我有 sudo 使用权限sudo yum(并且只有 yum)。
最近我不小心安装了一个错误的存储库(dropbox),现在我想删除它。由于我没有对该yum.repos.d目录的写访问权限,手动编辑或删除 repo 文件是不可能的。
我知道您可以使用 yum 安装存储库(我就是这样做的),但是您可以使用 yum 删除存储库吗?
使用科学 Linux 6。
顺便说一句,我知道我可以yum --disablerepo=忽略有问题的回购。但我想永久删除它,因为它也会导致图形包管理器出现问题(它不断弹出通知说无法检索更新)。
我正在尝试使用文件存储库在未连接的机器上更新 linux/ubuntu。这台机器的架构(uname -a):
x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
结果如下dpkg --printarchitecture:
amd64
Run Code Online (Sandbox Code Playgroud)
这是一台 Trusty Tahr amd64 机器,它特别说明了这一点,例如,在 aptitude sources.list 文件中。另外,ubuntu 中的“关于这台计算机”专门说这台机器是 64 位的。所以,我在机器上安装了 amd64 包。但是,当我尝试这样做时apt-get update,会出现以下错误:
W: Failed to fetch file:/var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu/dists/trusty/main/binary-i386/Packages File not found
Run Code Online (Sandbox Code Playgroud)
所以,换句话说,即使是 64 位机器,apt 也莫名其妙地试图读取 i386 包。为什么要这样做以及如何使它使用 64 位软件包?
请注意,sources.list 中没有任何指定 i386 的内容。
sources.list 文件中唯一未注释的行是:
deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
Run Code Online (Sandbox Code Playgroud)