当我们运行apt-get update
ubuntu 时从中读取 URL /etc/apt/sources.list
,并将包信息保存在 中/var/lib/apt/lists
。
我可以自定义这些目录吗?没有危害/var/apt/lists
和/etc/apt/sources.list
。当我想使用 apt-get 安装软件包时,它将从特定目录(/custom/apt/lists
)而不是读取软件包信息,并从而不是/var/lib/apt/lists
更新。/custom/apt/sources.list
/etc/apt/sources.list
答案1
是的,你可以,你要寻找的两件事是:
- 相当于。
/etc/apt/sources.list.d/*
Dir::Etc::SourceParts
- 相当于
/etc/apt/sources.list
Dir::Etc::SourceList
- 相当于
/var/lib/apt/lists/
Dir::State::Lists
手册页中有很多apt-get
。下面是一个使用它们全部的示例:
apt-get update -o Dir::Etc::SourceParts "/some/path/with/lists/" -o Dir::Etc::SourceList "some.list" -o Dir::State::Lists "/custom/apt/lists"
答案2
我所做的是向其中添加一个文件,该/etc/apt/sources.list.d/
文件仅包含 deb 文件所在文件夹的路径(但该文件夹必须包含一个名为Packages
generated by 的文件dpkg-scanpackages
),然后apt update
从该文件夹安装我需要的任何包,然后再次从中删除文件/etc/apt/sources.list.d/
,然后再次调用apt update
。
这是可以复制到的文件的示例/etc/apt/sources.list.d/
:
deb file:///path/to/where/your/deb/files/are/ ./
这种方法的问题在于您必须apt update
使用标志进行调用--allow-insecure-repositories --allow-unauthenticated
并apt install
使用标志进行调用--allow-unauthenticated
。
我必须这样做才能创建一个脚本,该脚本可以递归下载 apt 包(及其依赖项)的 .deb 文件。如果您想查看,这是实现上述操作的相关提交:https://github.com/nblockchain/geewallet/commit/dea77d07c40dd63a82094c65635fdd73c7bfbcc4