我一直在阅读有关如何设置本地网络存储库的教程。但这并不是我所拥有的 - 在我的例子中,已经有一个网络存储库 - 假设它位于此处:
http://netpc/repos/
文件夹结构内部如下所示(我只稍微扩展了一点,但是有很多文件夹/子文件夹看起来都非常具有 Ubuntu 风格):
/1604/
/1604/mirror
/1604/mirror/archive.ubuntu.com
/1604/mirror/archive.ubuntu.com/mwg-internal
/1604/mirror/archive.ubuntu.com/ubuntu
/1604/skel
/1604/var
...etc...
因此,根据我所读的内容,我认为我只需要更新我的/etc/apt/sources.list
文件。我进行了备份,然后将以下内容添加到文件中:
# Adding local network repo
deb http://netpc/repos ./
然后我执行了以下命令:
sudo apt-get update
我得到了以下输出(由于是在另一台离线 PC 上,所以是手写输入的):
Ign:1 http://netpc/repos/1604/ ./ InRelease
Ign:2 http://netpc/repos/1604/ ./ Release
Ign:3 http://netpc/repos/1604/ ./ Packges
Ign:4 http://netpc/repos/1604/ ./ Translation-en_GB
Ign:5 http://netpc/repos/1604/ ./ Translation-en
Ign:3 http://netpc/repos/1604/ ./ Packages
:
:
Ign:5 http://netpc/repos/1604/ ./ Translation-en
Err:3 http://netpc/repos/1604/ ./ Packages
404 Not Found
Ign:4 http://netpc/repos/1604/ ./ Translation-en_GB
Ign:5 http://netpc/repos/1604/ ./ Translation-en
:
:
W: the repository 'http://netpc/repos/1604 ./ Release' does not have a release file.
:
:
E: Failed to fetch http://netpc/repos/1604/./Packages 404 Not Found
它尝试连接到网络上的其他存储库(但我们未连接到网络),因此它找不到像 gb.archive.ubuntu.com 这样的地方...
所以我希望我的系统忽略在线位置而只使用我们 LAN 上的一个“镜像”位置。
- 为何我的设置不起作用(我错过了什么)?
- 我需要采取什么步骤来解决这个问题并忽略其他基于互联网的位置?
更新
我已经根据两个答案更新了 sources.list - 我尝试了以下方法并获得了更好的结果:
# Main and restricted
deb http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial main restricted
deb http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial-updates main restricted
deb http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial main restricted
deb-src http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial-updates main restricted
deb-src http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu xenial-security main restricted
# Universe
:
# Multiverse
:
然后重新运行sudo apt-get update
因此我无法输入所有的输出,但我已将主要错误放在了流程的最后:
E: Failed to fetch http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu/dists/xenial/main/binary-i386/Packages 404 Not Found
E: Failed to fetch http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu/dists/xenial-updates/main/binary-i386/Packages 404 Not Found
E: Failed to fetch http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu/dists/xenial-security/main/binary-i386/Packages 404 Not Found
所以看起来它找不到 i386 的东西(32 位),我不确定我是否关心,因为我使用的是 64 位......我想......
答案1
我不是专家,但我已经建立了自己的本地镜像并使其正常运行。
我对你添加到 sources.list 的行感到怀疑./
。我的代码如下:
# updated for local mirror on 2/11/18
# local main & restricted sources
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic main restricted
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-security main restricted
# local universe sources
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic universe
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-security universe
# local multiverse sources
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic multiverse
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb ssh://my-server/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu/ bionic-security multiverse
我使用 ssh 而不是 http,但这不是我想要指出的区别。
我认为您需要编辑您的 sources.list 并在 URL 后添加适当的文本。
答案2
仅添加 LAN 存储库的基本 URL 是不够的。您需要指向apt
存储库结构的相关部分,包括您正在使用的 Ubuntu 版本(按发布名称)。
替换源文件每一行中的基准 URL,但保留该行中的其余信息。
如果您使用的是 14.04 Trusty Tahr,您的/etc/apt/sources.list
文件看起来如下所示:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://gb.archive.ubuntu.com/ubuntu trusty main restricted
deb-src http://gb.archive.ubuntu.com/ubuntu trusty main restricted
...
更新后的文件看起来应该更像这样:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu trusty main restricted
deb-src http://netpc/repos/1604/mirror/archive.ubuntu.com/ubuntu trusty main restricted
...