Автор Тема: Как скачать файлы rpm всех уже установленных пакетов?  (Прочитано 507 раз)

Оффлайн geher

  • Участник
  • *
  • Сообщений: 44
Собственно вопрос в теме. Как наиболее простым способом скачать файлы rpm всех уже установленных пакетов? Считаем, что система полностью обновлена до актуального состояния.

В дебиановском apt-get есть команда download, позволяющая скачать файл пакета по имени в текущий подкаталог. В альтовском apt-get такого нет.

Дополнительный вопрос.
Каков общий объем репозитариев ветки P11?

Оффлайн буратино-42

  • Участник
  • *
  • Сообщений: 318
здесь три вопроса:
1. как создать список имён всех установленных пакетов
2. как определить размер пакета из списка (т.к. нужно заготовить место под запись всех пакетов заранее)
3. как скачать пакеты из списка
« Последнее редактирование: 21.03.2026 17:31:34 от буратино-42 »

Оффлайн буратино-42

  • Участник
  • *
  • Сообщений: 318
ну и встречный вопрос - зачем и кому кроме Вас это надо?

Оффлайн Александр Ерещенко

  • Участник
  • *
  • Сообщений: 1 347
Дополнительный вопрос.
Каков общий объем репозитариев ветки P11?
Начнём сразу с этого вопроса.
Смотрим на странице https://packages.altlinux.org/ru/p11/about/  , выставляя нужные галочки (для обычного варианта достаточно x86_64, noarch и x86_64-i586, точнее смотрите вывод команды apt-repo)

В дебиановском apt-get есть команда download, позволяющая скачать файл пакета по имени в текущий подкаталог. В альтовском apt-get такого нет.
Для apt-get install есть ключ -d (Получить пакеты и выйти БЕЗ их установки или распаковки)
Если последняя версия пакета уже установлена, то повторно переустановить можно с ключом --reinstall
Итого, чтобы скачать уже установленный пакет нужны ключи apt-get -d --reinstall install список пакетов
Это не тайные знания, достаточно посмотреть в man apt-get
:)

Собственно вопрос в теме. Как наиболее простым способом скачать файлы rpm всех уже установленных пакетов? Считаем, что система полностью обновлена до актуального состояния.

Итого, действия простые.
1) Очищаем каталог с выкачанными пакетами /var/cache/apt/archives/ , чтобы там не было лишнего
apt-get clean

2) Убеждается, что на разделе, где находится / (если точнее, то где находится /var/cache/apt/archives/) достаточно свободного места, чтобы всё выкачанное поместилось

3) Формируем список установленных пакетов (только имена пакетов без версий)
rpm -qa --qf '%{name}\n' > inst-pkgs.txt

4) Выкачиваем пакеты по списку
apt-get -d --reinstall install $(< inst-pkgs.txt)
Если что не так - пакета уже нет, или, например, для пакетов ядра надо уточнить версию пакета (допистать к имени после #) - то можно подредактировать список пакетов ручками.

ЗЫ. А ещё здесь на форуме есть замечательная подборка "Приёмы профессиональной работы в shell" https://forum.altlinux.org/index.php?topic=32361.0
И вышеприведённое частично взято оттуда: https://forum.altlinux.org/index.php?topic=32361.msg234696#msg234696

Оффлайн буратино-42

  • Участник
  • *
  • Сообщений: 318
есть ещё скрытый вопрос - версия пакета.
Если в репозитории, на момент скачивания есть разные версии пакетов, то дело усложняется.
Ведь версии могут быть не согласованы: версия одного пакета не будет работать с любой версией другого.
Поэтому возникает потребность в создании списка согласованных версий пакетов.

Здесь надо определится - какой список версиий Вам нужен?
1. Любой рабочий.
2. Текущий рабочий.
3. Будущий (самый свежий) рабочий.

Да и сам момент скачивания в этом случае становится важен.
Ведь в определённое время пакеты в репозитории обновляются/удаляются.
Это ещё один вопрос.

Плюс версии некоторых пакетов привязаны к версии ядра.
Это уже седьмой вопрос.
« Последнее редактирование: 21.03.2026 18:05:13 от буратино-42 »

Оффлайн буратино-42

  • Участник
  • *
  • Сообщений: 318
альт не удаляет установленные rpm пакеты
они хранятся в каталоге
/var/cache/apt/archives

поэтому возможно следующее решение:
1. удалить все файлы в этом каталоге (кроме look), так как там могут быть старые версии.
2. зайти в Synaptic.
3. последовательно полностью удалять и устанавливать/скачивать нужные пакеты.
4. все rpm пакеты будут в этом каталоге.

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

Оффлайн SerW

  • Участник
  • *
  • Сообщений: 399
    • Вперед, в Интернет!
Код: (bash) [Выделить]
# ls /var/cache/apt/archives
А как теперь их этого можно сделать локальное зеркало, причем так, чтобы оно имело приоритет ниже Интернета?
dragonserw.ru/wiki:basealt

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 428
    • Домашняя страница
Собственно вопрос в теме. Как наиболее простым способом скачать файлы rpm всех уже установленных пакетов? Считаем, что система полностью обновлена до актуального состояния.

В дебиановском apt-get есть команда download, позволяющая скачать файл пакета по имени в текущий подкаталог. В альтовском apt-get такого нет.
apt-get -d install
Цитировать
Дополнительный вопрос.
Каков общий объем репозитариев ветки P11?
https://packages.altlinux.org/ru/p11/about/
164,2 ГБ. Без debuginfo будет меньше.
Андрей Черепанов (cas@)

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 793
  • Дмитрий/Dmitry/德米特里/दिमित्री
« Последнее редактирование: 22.03.2026 22:41:48 от gosts 87 »

Оффлайн Linuxfan

  • Участник
  • *
  • Сообщений: 269
есть ещё скрытый вопрос - версия пакета.
Поиск пакета по версии в архиве по датам
# apt-repo rm all; apt-repo add p11 YYYYMMDD; apt-get update; apt-cache show package_name | grep Version:
YYYYMMDD и package_name нужно заменить на актуальные для вас значения
При желании эти команды можно включить в цикл для перебора по элементам массива дат
« Последнее редактирование: 24.03.2026 14:49:13 от Linuxfan »

Оффлайн geher

  • Участник
  • *
  • Сообщений: 44
ну и встречный вопрос - зачем и кому кроме Вас это надо?
Нужно мне для создания локального репозитария без создания копии всего альтовского репозитария, только установленные пакеты. Собственно потому и дополнительный вопрос про размер репозитариев, в смысле вдруг клонировать весь репозитарий (точнее, насколько я понимаю, три их) проще (с учетом необходимости найти под него место).
Цель копии - возможность быстрой новой установки или переустановки системы в условиях проблем с интернетом.

Смотрим на странице https://packages.altlinux.org/ru/p11/about/
А вот за это большое спасибо. Не знал о таком сервисе.

Для apt-get install есть ключ -d
Таки немного отличается от дебиановского, ибо скачивает не в текущий подкаталог, а в подкаталог кэша. Ну да ладно, одно лишнее приседание, не страшно.

Если что не так - пакета уже нет, или, например, для пакетов ядра надо уточнить версию пакета (допистать к имени после #) - то можно подредактировать список пакетов ручками.
Вот-вот. Тут и начинаются разные приседания. А ключевой момент был - наиболее простым способом, чтобы поменьше работы руками.

альт не удаляет установленные rpm пакеты
А вот не всегда. Только если кэш не был принудительно очищен. Увы, система стоит давно, и кэш уже не раз очищался по причине того, что занимал драгоценное место на диске. Последние установленные пакеты можно взять из кэша, а вот те, которые не обновлялись после последней очистки, увы, недоступны.
« Последнее редактирование: 28.03.2026 14:15:04 от geher »

Оффлайн буратино-42

  • Участник
  • *
  • Сообщений: 318
если цель состоит в уменьшении действий руками,
 то Вы забыли про настройку установленных пакетов.

Процесс настройки пакета, по количеству ручных действий,
 часто превосходит
  процессы его скачивания и установки.
 
Поэтому возможен более экономичный, с этой точки зрения, путь:
 - Скопировать систему целиком с пакетами и их настройками.

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 1 305
Нужно мне для создания локального репозитария без создания копии всего альтовского репозитария, только установленные пакеты.
Нет смысла создавать частичную копию репозитария, вы ведь когда нибудь обновите систему. А после обновления могут появиться новые зависимости от других пакетов.
Проще настроить зеркалирование репозитария целиком, хотя бы тех архитектур которые используете.
200 ГБ дискового пространства не особо много стоят, учитывая что 1ТБ HDD диск можно купить на авито за тысяу-две рублей.

Оффлайн Liake

  • Участник
  • *
  • Сообщений: 1
    • baldi's basics
Я скачал этот файл, но, похоже, в нём отсутствует пакет с полным доступом.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 646
есть ещё скрытый вопрос - версия пакета.
Если в репозитории, на момент скачивания есть разные версии пакетов, то дело усложняется.
Ведь версии могут быть не согласованы: версия одного пакета не будет работать с любой версией другого.
Поэтому возникает потребность в создании списка согласованных версий пакетов.
Отнюдь. В репозитории, в выбранный момент времени, не может быть разных версий одного и того же пакета. И все пакеты, естественно, согласованы. И выкачиваются именно эти пакеты, то есть, установленные, как раз, могут быть несоответствующих версий.

Если какое-то приложение или библиотека нужны в репозитории в разных версиях, то версия добавляется в название пакета, что делает пакеты разными.