Ubuntu配置第三方软件本地源
缓存pnetlab软件到本地制作成离线安装包 安装包我已经从联网的主机缓存下来了
缓存包放置在/home/123/pnet/cache中,通过dpkg-scanpackages生成的依赖Packages.gz文件也放在cache这个文件夹下
配置/etc/apt/source.list 文件deb [trusted=yes] file:/home/123/pnet/cache ./ 时遇到问题
如果是/home/123/pnet cache/ 报错 E: Failed to fetch file:/home/123/pnet/pnet/ttf-dejavu-core_2.37-1_all.deb File not found - /home/123/pnet/pnet/ttf-dejavu-core_2.37-1_all.deb (2: No such file or directory)
如果是/home/123/pnet/cache ./ 报错 E: Failed to fetch file:/home/123/pnet/cache/pnet/ttf-dejavu-core_2.37-1_all.deb File not found - /home/123/pnet/cache/pnet/ttf-dejavu-core_2.37-1_all.deb (2: No such file or directory) 报错中寻找安装包都重复了pnet这个目录,显然是找不到的
source.list配置文件的两个目录是什么关系啊,应该怎么配置?跟我生成Packages.gz的位置有关吗?还请赐教
问题出在source.list配置文件的路径设置上。让我们逐步来看:
1,缓存的软件包目录:
你提到你已经缓存了pnetlab软件,并将其放置在目录/home/123/pnet/cache下。假设此目录包含了ttf-dejavu-core_2.37-1_all.deb软件包,就像错误信息中提到的那样。
2,Packages.gz 文件位置:
你使用dpkg-scanpackages命令生成了Packages.gz文件,并将其放置在缓存目录/home/123/pnet/cache中。这个文件包含了缓存目录中可用软件包的信息。
3,source.list 配置:
现在,让我们看看source.list配置。你提到尝试了两种不同的配置:
a. deb [trusted=yes] file:/home/123/pnet/cache ./
b. deb [trusted=yes] file:/home/123/pnet/cache/
正确的配置是第一种 (a):
deb [trusted=yes] file:/home/123/pnet/cache ./
两种配置之间的差异在于file:后面指定的路径:
在第一种配置中,路径设置为/home/123/pnet/cache ./。末尾的点号(.)表示当前目录,这表示系统应该直接在/home/123/pnet/cache目录中寻找软件包和Packages.gz文件。
在第二种配置中,路径设置为/home/123/pnet/cache/。这里,cache后面的斜杠表示系统应该在cache目录下查找一个名为pnet的子目录中的软件包和Packages.gz文件。这就是为什么你在错误信息中看到了重复的pnet目录。
所以,为了解决问题,请使用第一种配置:
deb [trusted=yes] file:/home/123/pnet/cache ./
这样告诉APT直接在/home/123/pnet/cache目录中查找软件包和Packages.gz文件,而不进入任何子目录。在进行此更改后,尝试运行sudo apt update命令来刷新软件包索引并解决问题。
Ubuntu出现Failed to Fetch的解决办法:
镜像源问题,没有配置好国内的镜像源
可以参考下:
https://blog.csdn.net/Jason_Todd/article/details/125479130
镜像源参考:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
每一次解答都是一次用心理解的过程,期望对你有所帮助。
参考结合AI智能库,如有帮助,恭请采纳。
根据你的描述,问题出在你配置 /etc/apt/source.list 文件时的一些细节上。
首先,需要确定一下你缓存的软件包和依赖关系文件的位置。
根据题意描述,它们都被放置在 /home/123/pnet/cache 目录下,其中包含一个名为 Packages.gz 的文件。
现在,为了配置 /etc/apt/source.list 文件以使用本地软件包缓存,建议你按照以下步骤进行操作:
1、打开 /etc/apt/source.list 文件。可以使用任何文本编辑器打开它,例如,在终端中运行以下命令:
sudo nano /etc/apt/source.list
2、在 source.list 文件的末尾添加以下行:
deb [trusted=yes] file:/home/123/pnet/cache ./
#这行配置,告诉 APT 使用 /home/123/pnet/cache 目录作为本地软件源。
3. 保存并关闭文件。
其次,现在,可以尝试更新软件包列表并安装软件包。运行以下命令:
sudo apt update
sudo apt install <package-name>
其中 <package-name> 是要安装的软件包的名称。
最后,关于你提到的的问题,报错信息指出在查找软件包时找不到文件。这可能是因为 APT 无法找到需要的软件包,或者在生成 Packages.gz 文件时出现了问题。请确保在生成 Packages.gz 文件时没有出现任何错误,并且所有需要的软件包都已正确缓存到 /home/123/pnet/cache 目录下。
添加好国内镜像