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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: скачать все пакеты, которые установлены  (Прочитано 1159 раз)

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

Оффлайн fpga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Здравствуйте!
Есть такая проблема. У меня 64 бит Ubuntu 9.04 (AMD64). Куча пакетов установлено. И надо временно уехать туда, где есть только 32 бит процессор и только Ubuntu 9.04 i386 годится.

И вот я так получил список пакетов которые установлены:
dpkg --get-selections | grep -v "deinstall" | awk '{print $1}' > packages_listЧто ж, это и в самом деле все те пакеты, которые у меня установлены.

Проблемы такие:

1) как убрать все те пакеты из списка, которые присутствуют и на Ubuntu 9.04 i386 DVD? - чтобы не качать лишнее. Это не критично, у меня безлимитка, просто было бы красивее если не надо качать вообще все, тем более то что есть на диске

2) как заставить пакетный менеджер только скачать все эти пакеты из списка?
Допустим я на Си/Си++ накатаю программку, которая сделает их не на каждой строке а через пробел.
Как теперь указать пакетному менеджеру - скачай все эти пакеты и положи вот в эту папку?

3) если ли в природе архив какой-нибудь где все апдейты, предположим для Ubuntu 9.04 на сегодняшний день? т.е. архив с обновленными пакетами?..

Очень надеюсь на Вашу помощь, т.к. срочно...

Самый главный это вопрос второй - как заставить скачать все пакеты по списку прямо в папку...

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1690
  • А чего вы так смотрите?..
    • Просмотр профиля
На 64-машине:
(Нажмите, чтобы показать/скрыть)

Потом несешь папку с локальным репозиторием на 32-машину и:
(Нажмите, чтобы показать/скрыть)
Но это поможет, если только кеш apt не очищался :)
« Последнее редактирование: 31 Июля 2009, 19:55:29 от Protopopulus »
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Fallen_Vrag

  • Новичок
  • *
  • Сообщений: 35
  • Vrag Анатольевич
    • Просмотр профиля
$ sudo apt-get install aptoncd
зрите в корень, мужики!...

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
man aptitude на предмер опции download, кроме того, проще и наверно правильней получать список установленных пакетов так:
dpkg-query -W --showformat='${Package}'Дальше дело техники - надо сделать diff двум файлам - полученным в чистой Ubuntu с CD и твоим, дальше простой башевый (или перловый, или питоновый) скриптик - и всё готово.

Пользователь решил продолжить мысль 31 Июля 2009, 00:59:03:
Да, я бы рекомендовал сделать репозиторий локальный когда всё скачаешь, и устанавливать из него, а не через dpkg -i, как - уже писали.

Пользователь решил продолжить мысль 31 Июля 2009, 05:02:04:
Хотя вот ещё что: надо бы скачивать все пакеты, а не только различия, потому что версии могут не совпадать и это приведёт к конфликтам, это дело тоже решается, но чуть более сложным способом, сейчас мне лень думать каким.
« Последнее редактирование: 31 Июля 2009, 05:02:04 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн fpga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
man aptitude на предмер опции download, кроме того, проще и наверно правильней получать список установленных пакетов так:
dpkg-query -W --showformat='${Package}'
Спасибо, это просто "мега то что надо"!!! Супер!
Только один вопрос остается - как пропустить те пакеты, которые уже были скачаны? Если несколько раз вызвать aptitude download с теми же пакетами - то он их заново перекачивает...

ЗЫ
Про способ организации "локального репозитория с Packages.gz" - знаю давно, но наверное стоит и про AptOnCD вспомнить :)

Оффлайн sciko

  • Активист
  • *
  • Сообщений: 854
    • Просмотр профиля

Оффлайн fpga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
По теме
Все, понял, apt-zip, http://keryxproject.org и т.д., так? :)

Пользователь решил продолжить мысль 31 Июля 2009, 17:29:12:
dpkg-query -W --showformat='${Package}'Все таки этот способ имеет ОГРОМНЫЙ недостаток... Он выводит еще и несуществующие пакеты. Которые будучи переданы на aptitude download выдадут ошибку...dpkg --get-selections | grep -v "deinstall" | awk '{print $1}' > packages_listТак оно лучше получается потому что только реально установленные пакеты, но надо писать программу, которая сделает переводы строки - пробелами.

Я думаю тут надо делать целую программу. Специально для этой задачи. Я думаю что сделаю это маленьким открытым проектиком, т.к. keryx все же далеко не то что мне надо. Хуже от еще одной удобной программы никому хуже не будет ИМХО. А вообще мне все равно если она никому будет не нужна ;)
« Последнее редактирование: 31 Июля 2009, 17:29:12 от fpga »

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Какие такие несуществующие пакеты? о_О Он выводит всё, что установлено и только. А программку для смены
 на ' ' писать не надо, можно хоть так:
perl -e 'print split("\n",join(" ", <>))' your_file > result_file
Пользователь решил продолжить мысль 31 Июля 2009, 18:03:21:
Да и вообще, просто так и будет всё через пробел:
dpkg-query -W --showformat='${Package} '
« Последнее редактирование: 31 Июля 2009, 20:13:35 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн fpga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Какие такие несуществующие пакеты? о_О Он выводит всё, что установлено и только.
Сори, вот не вру, выводит например libavcodecXX и заодно libavcodecYY, где XX старая версия. А другой способ выводит только то что есть. Не подумайте что я вру или троллю, просто я тоже ожидал что будет только одна версия. Но по непонятной причине выводятся более старые версии.

В способе, описанном в первом посте есть "grep -v "deinstall"" - убирает пакеты отмеченные для удаления. Возможно они попадают как раз в список при другом способе.

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: скачать все пакеты, которые установлены
« Ответ #9 : 01 Августа 2009, 03:17:38 »
Да, точно, я думал dpkg-query не выводит удалённые, а он не выводит только пакеты со статусом purge. Ну значит можно и как Вы написали. Я тут призадумался над проблемой и решил набросать скриптик для её решения, думаю - за выходные справлюсь. Потом отпишусь)
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн fpga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: скачать все пакеты, которые установлены
« Ответ #10 : 01 Августа 2009, 03:36:02 »
Да, точно, я думал dpkg-query не выводит удалённые, а он не выводит только пакеты со статусом purge. Ну значит можно и как Вы написали. Я тут призадумался над проблемой и решил набросать скриптик для её решения, думаю - за выходные справлюсь. Потом отпишусь)
Спасибо, и скрипт Ваш перловский тоже помог :)
И вот, сейчас у меня уже 1.2 Гб скачанных архивов уже для i386 :)))
Скачивал я их под виртуалкой с i386 в общую папку хоста. Все успешно. А что в итоге получилось - напишу потом :) Единственное надо было убрать 5 пакетов, относящихся к adm64, а остальное с успехом скаталось :) Рад, очень рад :)

Но уверен, что это очень востребованная операция. И для нее надо написать программу. И сделаю я её в Qt Creator :) Хочу внести свой вклад и упростить работу с этой замечательной ОС.

 

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