Obtendo dependências de pacotes .deb para um computador Ubuntu off-line através do Windows

4
Basicamente eu quero "batch" baixar um arquivo .deb e todas as suas dependências de uma só vez em uma máquina com Windows 7 (da qual eu não tenho acesso de administrador, é um computador público). Eu vi muitas correções baseadas no Ubuntu que exigem terminal e apt, estou perguntando como fazer isso no Windows. (Não tenho certeza se essa pergunta é válida aqui, mas não encontrei nenhum outro lugar que possa ser usado.)

Eu tentei Keryx e Sushi-huh para tentar obter pacotes e suas dependências, mas ambos exigem Python, o Python não pode ser instalado normalmente sem permissão de administrador. (Nota lateral, eu acho que vi programas empacotar python para que eles possam trabalhar sem instalá-lo em c :, isso é possível como uma solução alternativa? O Google não está ajudando)

Se alguém quiser saber que estou tentando baixar o Krita e o Blender para o Ubuntu 12.10 / AMD64

Eu pude baixar manualmente arquivos .deb individuais e dependências para mais de 38 pacotes dependentes, mas esses 38 pacotes dependem de outros pacotes. É enlouquecedor não ter uma maneira de fazer isso automaticamente no Windows.

* Editar Desculpe eu esqueci de deixar claro que meu computador pessoal está rodando o Ubuntu 12.10 e o computador público que estou usando para baixar é o Windows 7

    
por Riskii 20.11.2012 / 17:25

3 respostas

6

Você pode gerar um arquivo com script de download com synaptic, selecione seus pacotes e clique em "Arquivo -> Gerar Script de Download de Pacotes", veja mais em ubuntu / PackageDownloadScript , gere um arquivo como:

#!/bin/sh
wget -c http://ftp.usf.edu/pub/ubuntu/pool/universe/i/ibm-3270/3270-common_3.3.10ga4-2build2_amd64.deb

remova #!/bin/sh e wget -c para obter apenas urls, e com um novo arquivo você pode baixar em qualquer sistema operacional, no windows 7 você pode usar wget para windows

    
por white-shy-guy 20.11.2012 / 17:46
5

Eu tive que fazer isso no outro dia; primeiro, corra

$ apt-get install -y (yourpackage) --print-uris > dependencies

Você não precisa de sudo priviledges para fazer isso, pois nada está instalado.

Usando seu editor de texto favorito, você pode excluir as primeiras linhas do arquivo dependencies que se parecem com isso

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  ncurses-term ssh-import-id
Suggested packages:
  rssh molly-guard openssh-blacklist openssh-blacklist-extra monkeysphere
The following NEW packages will be installed
  ncurses-term openssh-server ssh-import-id
0 upgraded, 3 newly installed, 0 to remove and 26 not upgraded.
Need to get 771 kB of archives.
After this operation, 3,056 kB of additional disk space will be used.

use sed para excluir o conteúdo desnecessário, que deixará você com os URLs:

$ sed -i 's/ .*//' "dependencies"

e finalmente use wget para baixar todas essas dependências

$ wget -i dependencies

    
por jackweirdy 20.11.2012 / 18:02
3

Eu usei apt-cache depends package para obter todos os pacotes necessários em qualquer caso se já estiverem instalados no sistema ou não . Por isso vai funcionar sempre correto.
Como o comando apt-cache funciona de forma diferente, dependendo do idioma, você deve tentar este comando em seu sistema e adaptar o comando. apt-cache depende do yourpackage
Em um sistema inglês você tem:

$ apt-cache depends yourpackage
node
  Depends: libax25
  Depends: libc6


Em um sistema alemão você recebe: nó

  Hängt ab von: libax25
  Hängt ab von: libc6


A versão em inglês com o termo:
" Depends: "
Você tem que mudar o termo " yourpackage " para seu desejo duas vezes neste comando, cuide disso!

$ sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "  Depends:" |  sed 's/  Depends://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


E a versão alemã com o termo:
" Hängt ab von: "
Este texto é usado duas vezes neste comando, se você quiser adaptá-lo ao seu idioma, cuide disso!
Você tem que mudar o termo " yourpackage " para seu desejo duas vezes neste comando, cuide disso!

$ sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "Hängt ab von:" |  sed 's/  Hängt ab von://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


Você obtém a lista de links em downloads.list
Confira a lista, vá para sua pasta e execute a lista:

$ cd yourpathToYourFolder

$ wget --input-file downloads.list


Todos os seus pacotes obrigatórios estão em:

$ ls yourpathToYourFolder
    
por michbau 06.06.2015 / 18:33