На этот вопрос уже есть ответ здесь:
Как использовать интерфейс командной строки (не графический интерфейс) ), чтобы преобразовать список пакетов зависимостей в выводе из apt-cache depends
в список, разделенный пробелами, для использования с apt-get download
? Предпочтительно, чтобы два действия выполнялись с помощью одной команды.
(Под «списком пакетов зависимостей» я имею в виду все пакеты с префиксом « Depends:
».)
Пример использования - загрузка всех зависимых пакетов пакета на машину с доступом в Интернет для использования на машине без доступа в Интернет, а также чтобы научиться переформатировать текст через командную строку.
Один из примеров с длинным списком зависимостей включает команду apt-cache plays gimp
, вывод которой показан ниже. (Этот пример включает несколько зависимостей, перечисленных несколько раз, но apt-get download
явно игнорирует повторяющиеся записи, поэтому нет необходимости их отфильтровывать.)
gimp
Depends: libgimp2.0
Depends: libgimp2.0
Depends: gimp-data
Depends: gimp-data
Depends: libgdk-pixbuf2.0-0
Depends: xdg-utils
Depends: libaa1
Depends: libbabl-0.1-0
Depends: libbz2-1.0
Depends: libc6
Depends: libcairo2
Depends: libfontconfig1
Depends: libfreetype6
Depends: libgcc1
Depends: libgegl-0.4-0
Depends: libgexiv2-2
Depends: libglib2.0-0
Depends: libgs9
Depends: libgtk2.0-0
Depends: libgudev-1.0-0
Depends: libharfbuzz0b
Depends: libheif1
Depends: libilmbase23
Depends: libjpeg8
Depends: liblcms2-2
Depends: liblzma5
Depends: libmng2
Depends: libmypaint-1.3-0
Depends: libopenexr23
Depends: libopenjp2-7
Depends: libpango-1.0-0
Depends: libpangocairo-1.0-0
Depends: libpangoft2-1.0-0
Depends: libpng16-16
Depends: libpoppler-glib8
Depends: librsvg2-2
Depends: libstdc++6
Depends: libtiff5
Depends: libwebp6
Depends: libwebpdemux2
Depends: libwebpmux3
Depends: libwmf0.2-7
Depends: libx11-6
Depends: libxcursor1
Depends: libxext6
Depends: libxfixes3
Depends: libxmu6
Depends: libxpm4
Depends: zlib1g
Breaks: gimp-plugin-registry
Recommends: ghostscript
ghostscript:i386
|Suggests: gimp-help-en
Suggests: <gimp-help>
gimp-help-ca
gimp-help-de
gimp-help-el
gimp-help-en
gimp-help-es
gimp-help-fr
gimp-help-it
gimp-help-ja
gimp-help-ko
gimp-help-nl
gimp-help-nn
gimp-help-pt
gimp-help-ru
gimp-help-sl
gimp-help-sv
Suggests: gimp-data-extras
Suggests: gimp-python
Suggests: gvfs-backends
gvfs-backends:i386
Suggests: libasound2
liboss4-salsa-asound2
Replaces: gimp-plugin-registry
Ответ, в который я прибыл, apt-get download $(apt-cache depends gimp | while read line; do grep --only-matching --perl-regexp "(?<= Depends: ).+"; done | tr "\n" " ")
использование пакета gimp
как пример.
Объяснение:
apt-cache depends
как аргумент подоболочки apt-get download
. while
цикл, что это разделяет вывод на строки, присвоенные переменной line
—, который можно назвать чем-либо и является иначе не required— использование эти read
команда. grep
команда с регулярным выражением Perl. включенный с флагом --perl-regexp
, который использует положительный lookbehind вовлечение строки “ Depends:
” и только отображает подобранный текст с помощью флага --only-matching
. tr
команда.