Preciso usar apt-get download
para buscar uma versão específica de um .deb
arquivo, mas não necessariamente a versão exata. .deb
é permitido que dependências usem expressões como >=0.3.0
e eu gostaria apt-get download
de buscar a mesma versão da que seria baixada usando essa dependência.
Resumindo, o que eu quero trabalhar é o seguinte:
$ apt-get download package='>=0.3.0'
Alguma idéia de como eu poderia obter essa funcionalidade?
Respostas:
Você pode fazer isso descobrindo primeiro qual versão é a versão mais recente que também é maior ou igual à versão mínima desejada. Então, você baixa exatamente essa versão usando
apt-get download
. Aqui está um script que faz isso (é um pouco feio, mas você entendeu a idéia):Você precisaria adicionar a verificação de erros, caso o pacote não exista, etc., mas isso contém a solução principal. Além disso, assumi aqui que você deseja o pacote mais recente disponível, que seja pelo menos uma determinada versão. Se você preferir o pacote mais antigo disponível que seja pelo menos uma determinada versão, será necessário ajustar o script para interromper a pesquisa quando encontrar algo que seja pelo menos a versão desejada.
fonte
Como você deseja exatamente o que
apt-get install
lhe daria, pode valer a pena executarapt-get install
no 'modo somente download' usando um diretório de arquivos personalizados:Como alterar o diretório de arquivos? Esta é uma opção de configuração:
Esses podem ser alterados temporariamente com o
--option
parâmetro:Para resumir:
Este comando irá baixar (e só baixar, não instalar) as relevantes
.deb
arquivos para<package>
a/some/cache/dir
. O diretório conterá os.deb
arquivos do pacote, suas dependências, um arquivo de bloqueio e o diretório 'parcial' (que deve estar vazio). Filtrar o.deb
arquivo exato que você precisa deve ser trivial.fonte
apt-get install
requer acesso de superusuário.apt-get download
também permite definir a liberação do destino. Não ajudaria?Comente para # 1 (não é possível usar comentários) - adicionar parâmetro
--print-uris
aapt-get install
não requer direitos de root (mas você deve fazer o download dele próprio - melhor com wget -i FILE_LIST).fonte
Sem privs SU, você ainda pode executar o apt-cache e combinar com a filtragem para obter essas informações. Use algo como:
No Debian 5:
No dia 6 você pode usar:
O apt-cache parece ter mudado o comportamento na ordem da lista entre 5 e 6, de modo que em 6 o último seja o último.
Uma palavra de cautela é que, se você estiver usando esta saída como diz "para buscar a mesma versão que seria baixada usando essa dependência", a versão do pacote disponível poderá mudar se você executar o apt-get update (com su privs, é claro), ou se isso foi definido para ser executado automaticamente e acontece entre o momento em que você coletou a versão e quando você executa o script que instala coisas esperando que essa seja a versão.
fonte