Получение зависимостей пакета .deb для автономного компьютера с Ubuntu через Windows

По сути, я хочу «пакетно» загрузить файл .deb и все его зависимости сразу на компьютере с Windows 7 (к которому у меня нет доступа администратора, это общедоступный компьютер). Я видел множество Ubuntu на основе исправлений, которые требуют терминала и apt, я спрашиваю, как это сделать на Windows. (Я не уверен, подходит ли этот вопрос здесь, но я больше нигде не смог его найти.)

Я пробовал Keryx и Sushi-huh, чтобы попытаться получить пакеты и их зависимости, но оба они требует Python, Python не может быть нормально установлен без разрешения администратора. (Примечание: я думаю, что я видел, как программы связывают python, чтобы они могли работать без установки его в c :, это возможно в качестве обходного пути? Google не помогает)

Если кто-то хочет знать, что я ' я пытаюсь загрузить Krita и Blender для Ubuntu 12.10 / AMD64

Мне удалось вручную загрузить отдельные файлы .deb и их зависимости до 38 зависимых пакетов, но затем эти 38 пакетов зависят от других пакетов. У меня нет способа автоматически сделать это в Windows.

* Edit Извините, я забыл прояснить, что мой персональный домашний компьютер работает под управлением Ubuntu 12.10, а общедоступный компьютер, который я использую для загрузки, - это Windows 7

6
задан 20 November 2012 в 20:25

3 ответа

Вы можете сгенерировать файл с помощью скрипта загрузки с помощью synaptic, выбрать ваши пакеты и нажать «Файл -> Создать скрипт загрузки пакета», подробнее см. ubuntu / PackageDownloadScript , сгенерировать файл, например: [ 115]

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

удалите #!/bin/sh и wget -c для получения только URL-адресов, а с новым файлом вы можете скачать его в любой операционной системе, в Windows 7 вы можете использовать wget для Windows [ 116]

0
ответ дан 20 November 2012 в 20:25

Я должен был сделать это на днях; во-первых, запустите

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

Вам не нужны привилегии sudo для этого, поскольку ничего не установлено.

Используя ваш любимый текстовый редактор, вы можете затем удалить первые несколько строк файла dependencies, которые выглядят примерно так

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.

, а затем использовать sed, чтобы удалить ненужный контент, который просто оставьте вас с URL:

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

и, наконец, используйте wget, чтобы загрузить все эти зависимости

$ wget -i dependencies

0
ответ дан 20 November 2012 в 20:25

Я использовал apt-cache depends package для получения всех необходимых пакетов в любом случае , если уже установлены в системе или нет . Так что это будет работать всегда правильно.
Поскольку команда apt-cache работает по-разному, в зависимости от языка, вы должны попробовать эту команду в своей системе и адаптировать команду. apt-cache зависит от вашего пакета
В английской системе вы получаете:

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


В немецкой системе вы получаете: node

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


Английская версия с термином:
"Depends:"
Вы должны изменить термин "yourpackage" на ваше желание дважды в этой команде, принять заботиться об этом!

$ 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


И немецкая версия с термином:
"Hängt ab von:"
Этот текст дважды используется в этой команде, если вы хотите адаптировать его к своему языку, позаботьтесь об этом!
Вы должны изменить термин «yourpackage» на ваше желание дважды в этой команде, позаботьтесь этого!

$ 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


Вы получаете список ссылок в downloads.list
Проверьте список, перейдите в папку и запустите список:

$ cd yourpathToYourFolder

$ wget --input-file downloads.list


Все необходимые пакеты находятся в:

$ ls yourpathToYourFolder
0
ответ дан 20 November 2012 в 20:25

Другие вопросы по тегам:

Похожие вопросы: