🐧 Как ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ рСкурсивныС зависимости ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² 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