在 debian 存储库上使用 apt-get 源代码,而不使用 /etc/apt/source.list

Erw*_*lec 4 debian apt debian-squeeze

apt-get source我正在尝试作为 debian 系统上的普通用户使用squeeze

cyrus-imapd-2.4我想从存储库中检索源testing/wheezy

apt-get source无需 root 权限即可工作;然而,似乎没有办法让 apt-get 从/etc/apt/sources.list.

是否有任何命令行选项、备用sources.list文件、环境变量可以apt与自定义存储库一起使用?

我确实有 root 访问权限,所以我可以更改/etc/apt/sources.list,但是出于多种原因我真的不想这样做。

Erw*_*lec 6

因此,我使用丹尼斯和奥拉夫答案中最有用的信息制定了一个解决方案。这涉及到使用自定义配置脚本apt以及更多选项。

Dir::State "some-dir/tmp/var/lib/apt";
Dir::State::status "some-dir/tmp/var/lib/dpkg/status";
Dir::Etc::SourceList "some-dir/tmp/etc/apt.sources.list";
Dir::Cache "some-dir/tmp/var/cache/apt";
pkgCacheGen::Essential "none";
Run Code Online (Sandbox Code Playgroud)

此处引用的所有目录和文件都必须存在于文件系统上,并且还需要发出一些命令才能按apt预期工作:

builduser@host$ mkdir some-dir/tmp/var/lib/apt/partial
builduser@host$ mkdir some-dir/tmp/var/cache/apt/archives/partial
builduser@host$ touch some-dir/tmp/var
Run Code Online (Sandbox Code Playgroud)

我的some-dir/etc/apt.sources.list文件如下所示:

deb-src http://ftp.debian.org/debian wheezy main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)

然后,我能够cyrus-imapd-2.4以 Squeeze 上的普通用户身份通过​​发出以下命令从 Wheezy 存储库成功下载源包:

builduser@host$ apt-get update -c some-dir/etc/apt.conf
builduser@host$ apt-get source cyrus-imapd-2.4 -c some-dir/etc/apt.conf 
Run Code Online (Sandbox Code Playgroud)

对于那些对以下步骤(以非 root 身份构建 cyrus 软件包)感兴趣的人,答案就在这里