🐧 Как скачать рекурсивные зависимости пакета в Ubuntu

by itisgood

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

📦 Как скачать пакеты с зависимостями локально в Ubuntu

Сегодня мы увидим, как загрузить рекурсивные зависимости пакета в Ubuntu.

Другими словами, мы собираемся скачать зависимости зависимостей.

Допустим, вы пытаетесь установить пакет с именем a.deb.

Пакет a.deb зависит от пакета b.deb, и снова пакет b.deb зависит от пакета c.deb.

В этом методе мы загружаем не только зависимости a.deb, но также и зависимости b.deb и c.deb.

Это может быть полезно, когда вы не можете установить пакет даже после того, как вы загрузили все необходимые зависимости с помощью команды apt-rdepends.

Загрузка пакетов с зависимостями локально служит трем основным целям.
  1. Избегать повторной загрузки одного и того же набора пакетов снова и снова. Например, если вы хотите установить редактор Vim в нескольких системах, вы можете загрузить Vim со всеми необходимыми зависимостями, сохранить их на USB-накопителе (или перенести их через локальную сеть) и установить Vim в другой системе.
  2. Экономить пропускную способность интернета и время.
  3. Установить пакеты на не подключенные к Интернету системы. Это основная причина для локальной загрузки пакетов с зависимостями. Вы можете загрузить пакеты в систему, подключенную к Интернету, а затем перенести их в автономную систему через USB-накопитель или локальную сеть и установить их в нем без Интернета.
Причины могут быть разными.
Если вы когда-нибудь хотели установить пакеты в автономной системе, этот метод определенно поможет.

Скачать рекурсивные зависимости пакета в Ubuntu

В целях данного руководства мы возьмем в качестве примера программу Vim.

Сначала давайте перечислим рекурсивные зависимости пакета Vim с помощью следующей команды:

$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u
Замените vim вашей собственной посылкой.
Если вы хотите отобразить вывод в формате столбца для удобства чтения, запустите:
$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u | column
Пример вывода:
cdebconf		libacl1			libdb5.3		liblzma5:i386		libpython3.6-stdlib	libtinfo5		vim
debconf			libacl1:i386		libdebian-installer4	libmpdec2		libreadline7		libzstd1		vim-common
dpkg			libattr1		libexpat1		libncursesw5		libselinux1		libzstd1:i386		vim-runtime
dpkg:i386		libattr1:i386		libffi6			libnewt0.52		libselinux1:i386	mime-support		xxd
gcc-8-base		libbz2-1.0		libgcc1			libpcre3		libslang2		perl-base		xxd:i386
gcc-8-base:i386		libbz2-1.0:i386		libgcc1:i386		libpcre3:i386		libsqlite3-0		readline-common		zlib1g
install-info		libc6			libgpm2			libpython3.6		libssl1.1		tar			zlib1g:i386
install-info:i386	libc6:i386		liblzma5		libpython3.6-minimal	libtextwrap1		tar:i386

Это зависимости зависимостей программы Vim. Обратите внимание, что все это может не потребоваться для установки Vim.

Давайте продолжим и загрузим рекурсивные зависимости пакета Vim с помощью команды:

$ apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u)
Эта команда загрузит vim вместе с зависимыми программами в текущем каталоге.
Она также загрузит зависимости Vim.
Убедитесь, что все зависимости были загружены с помощью команды «ls»:
$ ls
Теперь переместите все загруженные файлы через USB-накопитель или локальную сеть в автономную систему.
Затем перейдите в папку, в которой вы сохранили все загруженные пакеты в автономной системе, и установите их с помощью команды:
$ sudo dpkg -i *

Кроме того, вы можете построить индекс всех загруженных пакетов и установить их с помощью диспетчера пакетов APT.

Чтобы создать индекс загруженных пакетов, перейдите в расположение, в котором хранятся пакеты, и выполните следующую команду:

$ dpkg-scanpackages . | gzip -c9 > Packages.gz

Добавьте эту папку в список источников APT, используя следующую команду:

$ echo "deb[trusted=yes] file:///home/itisgood/vim ./" | sudo tee -a /etc/apt/sources.list

Здесь я сохранил все файлы в папке /home/itisgood/vim моей автономной системы.

Вам нужно заменить этот путь своим собственным.

Обновите индекс пакета, используя команду:

$ sudo apt-get update

Наконец, установите пакет vim с помощью менеджера пакетов APT:

$ sudo apt-get install vim
Точно так же вы можете скачать и установить другие пакеты.

Loading

You may also like

2 комментария

София 16.04.2020 - 14:44

NPM умеет следить за зависимостями? При установке по командам, указанным в статье, в каждом пакете содержатся все его зависимости, даже если они уже установлены в других пакетах. Одни и те же зависимости даже встречаются по несколько раз в одном пакете. В результате пакеты, выполняющие простые задачи, весят десятки мегабайт.

Reply
itisgood 16.04.2020 - 21:36

Причем тут NPM?

Reply

Leave a Comment