Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как можно разом выкачать пакет со всеми зависимостями?  (Прочитано 7183 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн chain

  • Старожил
  • *
  • Сообщений: 1263
    • Просмотр профиля
помоему автоматом - практически нереально в твоем случае сделать.. один более менее вариант, если программу ставил почти сразу после установки системы, посмотри в синаптике  history, сделай поиск там по названию пакета, увидишь, что качалось вместе с ним
но если что-нибудь нужное к тому моменту уже стояло, естественно, в списке его не увидишь
-вечный чайник-

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Менеджеры пакетов как раз и занимаются тем, что вычисляют, чего же нужно скачать, чтобы всё ставилось пучком. Чтобы не зависеть от состояния системы на другой (принимающей) стороне или установленных пакетов на донорской системе, в обсуждении в IRC как-то возникла мысль: а не воспользоваться ли chroot (fakeroot) или чем-нибудь типа этого и формировать списки пакетов/списки для скачивания в чистом окружении chroot? Может разовьёшь и напишешь HowTo? А то довольно часто возникают подобные вопросы...

Оффлайн Bakti9rov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Мухтар
Цитировать
На самом деле я думаю можно как-то из дистрибутива сформировать список файлов .deb потом залить эти файлы на DVD а в другой системе прописать ссылку на репозиторий с CD/DVD
знаешь, было бы просто замечательно если бы именно так и получилось! :-D

chain
Цитировать
но если что-нибудь нужное к тому моменту уже стояло, естественно, в списке его не увидишь
да,  в списках ничего нет!

Kwah
скачал 12М файл Packages.gz из gutsy/universe - там вся информация по пакетам (~17000 пакетов)

в принципе можно написать некоторую вещь - на Питоне/руби/перле, которая распарсит файл и составит рекурсивный список всех зависимостей по минимому, а дальше это список можно просто "скормить" aptitude. //раз уж нет стандартных средств, придется ручками... эххх
« Последнее редактирование: 17 Марта 2008, 13:23:22 от Bakti9rov »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Вот полистай:
http://ubuntu.wordpress.com/2005/09/22/upgrade-install-ubuntu-on-slow-internet/
ну и https://help.ubuntu.com/community/InstallingSoftware#head-14060f8896fc0efa378412ca379a89c8c332da14

Все инструменты уже есть в системе, не нужно ничего писать (ну, может несколько скриптов, чтобы автомтизировать процесс).

Оффлайн chain

  • Старожил
  • *
  • Сообщений: 1263
    • Просмотр профиля
точно, все есть в системе)
Цитировать
apt-rdepends
программа для рекурсивного вывода списка зависимостей пакета

Цитировать
программа для рекурсивного вывода списка зависимостей пакета
Программа рекурсивно выводит список зависимостей выбранного пакета, список пакетов, которые зависят от выбранного, список пакетов, необходимых для сборки выбранного. Формат вывода программы аналогичен формату вывода команды apt-cache depends. Кроме того, возможно создание файлов .dot для построения графов утилитой dot (соответствует режиму dotty программы apt-cache).
-вечный чайник-

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Может быть попытаться поступить следующим образом:

1. Используя apt-rdepends записать в текстовый файл зависимости для требуемого пакета.
Например: sudo apt-rdepends eclipse > zavisimosti

2. Отредактировать полученный файл (в данном случае zavisimosti), оставив в нем только названия пакетов.

3. Загрузить данные пакеты используя aptitude download.

Оффлайн Bakti9rov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
chain
> apt-depends
Спасибо! То что нужно!

andrew_bye
так и сделаю.

Оффлайн Bakti9rov

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
В аттаче - скрипт, который парсит результат apt-rdepends

Принимает аргументом название файла содержащего результат выполнения apt-rdepends

Выводит список пакетов в колонку.

Требования: Ruby версии 1.8.*
« Последнее редактирование: 18 Марта 2008, 09:27:22 от Bakti9rov »

Оффлайн chain

  • Старожил
  • *
  • Сообщений: 1263
    • Просмотр профиля
ну и чтобы завершить тему, на примере vim, там пакетов поменьше

вытянули зависимости
apt-rdepends vim > zavisimostiсделали список пакетов
./depends.rb zavisimosti > zav.lstи если надо сделать список закачек, и вытянуть на другой машинеfor i in $(cat zav.lst); do sudo apt-get --print-uris --reinstall -y install $i | grep "^'" | gawk '{ print $1 }' | sed "s/'//g" >> pack.lst; doneна другой машине, c помощью скопированного pack.lst, соответственно
wget -nc -i pack.lst -P ./Debs
cd ./Debs
sudo dpkg -i *.deb
-вечный чайник-

Оффлайн serwiz

  • Участник
  • *
  • Сообщений: 172
    • Просмотр профиля
    • DvinaWeb
А можно ли сделать тоже самое, но с машины на i386 выкачивать пакеты для amd64?   :idiot2: Или лучше не заморачиваться и воспользоваться
apt-get install пакет --print-uris > файли затем выкачать wget'ом?
Пессимист видит трудности при каждой возможности; оптимист в каждой трудности видит возможности. У. Черчилль

Оффлайн Vagrant

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
наткнулся в википедии на странице Perl
Цитировать
Еще один также впечатляющий своей краткостью пример, имеющий к тому же практическую пользу. Печатаются только уникальные строки файла file.
perl -ne '$s{$_}++ || print' file
попытался применить к файлу zav.lst из примера chain.
ничего не вышло. пример применял к компизовским зависимостям и в результате получилось порядка 460 зависимостей из которых почти половина дублирована.
Как-то руками чистить не резон. с перлом работаю почти полгода, а понять не могу...
кто-нибудь может подсказать хотя бы причину?
Многое становится яснее, остальное еще больше запутывается. (с) О.Дивов.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Как можно разом выкачать пакет со всеми за
« Ответ #26 : 20 Марта 2009, 21:11:00 »
Скрипт выкачивает пакет pkg со всеми зависимостяти (рекурсивно) в директорию dir:
dir="/home/arcfi/tmp" pkg="apt"; cd "$dir" && apt-rdepends $pkg 2>/dev/null | sed -e 's/.*\: //g' -e 's/ (.*//g' | sort | uniq | xargs aptitude download
« Последнее редактирование: 20 Марта 2009, 21:13:46 от ArcFi »

 

Страница сгенерирована за 0.016 секунд. Запросов: 19.