Автор Тема: apt-get в указанную директорию  (Прочитано 1078 раз)

Оффлайн logobobah

  • Участник
  • *
  • Сообщений: 16
Необходимо установить из репозитория пакет в указанную мной директорию.  Возможно ли сделать такое?

Онлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
Re: apt-get в указанную директорию
« Ответ #1 : 18.07.2023 19:08:34 »
Нет. Это не apt-get задаёт. Все каталоги заданы внутри самого пакета. Хотя можно использовать chroot, но там надо разворачивать минимальную копию части ОС: https://www.altlinux.org/Chroot

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Re: apt-get в указанную директорию
« Ответ #2 : 18.07.2023 19:15:19 »
Необходимо установить из репозитория пакет в указанную мной директорию.  Возможно ли сделать такое?

скачайте и распакуйте пакет куда хотите.
вопрос в другом - будет оно работать или нет...
но это уже зависит от того что за пакет...

Оффлайн logobobah

  • Участник
  • *
  • Сообщений: 16
Re: apt-get в указанную директорию
« Ответ #3 : 18.07.2023 19:49:12 »
Необходимо установить из репозитория пакет в указанную мной директорию.  Возможно ли сделать такое?

скачайте и распакуйте пакет куда хотите.
вопрос в другом - будет оно работать или нет...
но это уже зависит от того что за пакет...

Есть команда для скачивания пакетов в заданную папку?
PS. По идее распаковки пакета должно хватить. Речь о Qt5.

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 974
Re: apt-get в указанную директорию
« Ответ #4 : 18.07.2023 20:46:02 »
Есть команда для скачивания пакетов в заданную папку?
apt-get -d install имя_пакетаположит пакет куда-то в /var/cache/apt без его установки.

Онлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
Re: apt-get в указанную директорию
« Ответ #5 : 19.07.2023 00:18:32 »
Есть команда для скачивания пакетов в заданную папку?
Пакеты лежат на ftp/http сервере. Заходите либо web-браузером, либо ftp-клиентом, и качаете. Собственно в /etc/apt/sources.list URL и указан. Или где-то в /etc/apt/sources.list.d/
« Последнее редактирование: 19.07.2023 00:20:16 от asy »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: apt-get в указанную директорию
« Ответ #6 : 19.07.2023 05:32:08 »
Есть команда для скачивания пакетов в заданную папку?

wget и rsync скачают в указанный каталог.
Эта команда покажет какие зависимости хочет указанный пакет:
# apt-get install <package> -s | grep ^Inst

Оффлайн N0rbert

  • alt linux team
  • ***
  • Сообщений: 235
  • snk@
Re: apt-get в указанную директорию
« Ответ #7 : 19.07.2023 13:06:49 »
Вообще задача, сформулированная в этой ветке, выглядит сильно надуманной и в случае больших пакетов создаст кучу проблем,
включая избегаемый с помощью пакетных менеджеров "ад зависимостей" (англ. dependency hell),
но довести ее решение до логической точки все-таки можно.

apt-get install <package> -s | grep ^Inst

Команда полезная, но она не дает URL для скачивания индивидуальных пакетов.
Недостающие URL можно получить с помощью другой команды, например, для пакета qt5-qtbase:

# apt-get install -y --reinstall --download-only qt5-qtbase --print-uris | grep ^\'http:// | awk '{print $1}' | sed "s|'||g"

но все равно останется много ручной работы - нужно передать список URL wget или curl и дальше эти пакеты ставить с помощью rpm (или распаковывать им куда-то) или apt-get.

У меня уже есть автоматизированный вариант.
Я написал скрипт и сам часто его использую https://github.com/N0rbert/rpm-download на основе Docker, который скачивает rpm и src.rpm для RPM-подобного дистрибутива из его официального репозитория или сторонних. Обычно я этим скриптом получаю rpm.src, а не rpm.

Скриптом в ALT для загрузки пакета qt5-qtbase с зависимостями можно пользоваться так:

# apt-get update
# apt-get install git docker-cli docker-engine
# systemctl enable --now docker
$ su -l -c "usermod -a -G docker $USER"
# reboot

$ cd ~/Downloads || cd ~/Загрузки
$ git clone https://github.com/N0rbert/rpm-download.git
$ cd rpm-download
$ ./rpm-download.sh -d alt -r p10 -p qt5-qtbase

После выполнения скрипта скачанные rpm-пакеты будут находиться в папке storage.
Для этого конкретного случая с пакетом qt5-qtbase их будет 34 штуки.
Автор темы может распоряжаться этими rpm-пакетами как угодно, учитывая первое предложение этого поста.
Вероятно, придется сменить или уточнить постановку задачи.
« Последнее редактирование: 19.07.2023 13:10:35 от N0rbert »