Я пытаюсь использовать 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
, однако я действительно не хочу этого делать по ряду причин.
Итак, я разработал решение, используя самую полезную информацию из ответов Денниса и Олафа. Это предполагает использование специального сценария конфигурации для 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";
Все каталоги и файлы, указанные здесь, должны существовать в файловой системе, и есть еще несколько команд, которые нужно выполнить, чтобы получить 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
Мой 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
Затем я смог успешно загрузить cyrus-imapd-2.4
исходный код из репозиториев Wheezy в качестве обычного пользователя Squeeze, выполнив следующие команды:
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
Для тех, кто заинтересован в следующем шаге - создании этого пакета cyrus без полномочий root - ответ лежит Вот.
...
-c, --config-file
Configuration File. Specify a configuration file to use. The program will
read the default configuration file and then this configuration file.
See apt.conf(5) for syntax information.
-o, --option
Set a Configuration Option. This will set an arbitrary configuration option.
The syntax is -o Foo::Bar=bar.
Files
/etc/apt/sources.list
Locations to fetch packages from.
Configuration Item: Dir::Etc::SourceList.
...
Итак, похоже, вы можете создать свой собственный файл конфигурации и использовать его или установить Dir::Etc::SourceList
в командной строке -o Dir::Etc::SourceList=/path/to/my/sources.list
Вы, вероятно, можете повозиться с установкой Dir :: Etc и Dir :: State (apt-get -o Dir :: State = / tmp / var ....). См. /Usr/share/doc/apt/examples/configure-index.gz для всех доступных переменных.