Use o apt-get source em um repositório debian sem usar /etc/apt/source.list

2

Estou tentando usar apt-get source como usuário comum em um sistema debian squeeze .

Eu quero recuperar as fontes para cyrus-imapd-2.4 do repositório testing/wheezy .

apt-get source funciona sem privilégios de root; no entanto, parece que não há como obter o apt-get para buscar qualquer coisa de um repositório que não esteja em /etc/apt/sources.list .

Existe alguma opção de linha de comando, alternativa sources.list file, variável de ambiente que obterá apt para trabalhar com um repositório personalizado?

Eu tenho acesso root para poder alterar o /etc/apt/sources.list , mas não quero fazer isso por vários motivos.

    
por Erwan Queffélec 11.11.2012 / 00:25

3 respostas

4

Então, resolvi uma solução usando as informações mais úteis das respostas de Dennis e Olaf. Isso envolve usar um script de configuração personalizado para apt , com mais algumas opções.

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";

Todos os diretórios e arquivos aqui referenciados devem existir no sistema de arquivos, e há mais alguns comandos a serem emitidos para que o apt funcione como esperado:

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

Meu arquivo some-dir/etc/apt.sources.list é assim:

deb-src http://ftp.debian.org/debian wheezy main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

Em seguida, consegui fazer o download do pacote de código cyrus-imapd-2.4 com êxito do Wheezy repos como usuário comum no Squeeze, emitindo os seguintes comandos:

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 

Para os interessados na seguinte etapa - criar o pacote cyrus como não-raiz - a resposta é aqui .

    
por 11.11.2012 / 12:30
3

De man apt-get :

...
-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.
...

Parece que você pode criar seu próprio arquivo de configuração e usá-lo ou definir Dir::Etc::SourceList na linha de comando -o Dir::Etc::SourceList=/path/to/my/sources.list

    
por 11.11.2012 / 00:42
1

Você provavelmente pode se preocupar em configurar Dir :: Etc e Dir :: State (apt-get -o Dir :: Estado = / tmp / var ....). Veja /usr/share/doc/apt/examples/configure-index.gz para todas as variáveis disponíveis.

    
por 11.11.2012 / 00:35