Как создать носитель Debian Install Media с пользовательскими пакетами?

Попробуйте следующее:

find folder1 -type f -iname '*.flv' -exec bash -c \
    'f=${1#folder1/}; [ -f "folder2/${f%.flv}.mp4" ] || 
     scripts/script.sh "${1%.flv}"' none {} \;

Это будет работать с файлами, имена которых содержат пробелы или другие сложные символы.

Как это работает

  • find folder1 -type f -iname '* .flv'

    Это находит файлы flv

  • -exec bash -c '...'

    Для каждого найденного файла flv это говорит find запустить bash, который запускает скрипт в кавычках (см. ниже).

  • f = $ {1 # folder1 /}

    Это создает переменную f , которая имеет имя файла flv без начального каталога.

  • [-f "folder2 / $ {f% .flv} .mp4"]

    Это проверяет, существует ли соответствующий файл mp4 .

  • ||

    Это указывает bash выполнить следующую команду, только если предыдущая команда вернула false (другими словами, если такой файл mp4 не был найден).

  • scripts / script.sh "$ {1% .flv}" '

    Это запускает ваш сценарий для тех flv-файлов, в которых отсутствуют файлы mp4. Файлы поставляются в script.sh с удаленной частью .flv .

  • none {}

    Это указывает bash назначить строку none на $ 0 (этот заполнитель никогда не используется) и назначить имя файла, найденного find , обозначенный {} , в переменную оболочки $ 1 .

  • \;

    Это сигнализирует о завершении команды find -exec .

1
18.07.2018, 17:08
2 ответа

На самом деле, кажется, что простого способа (не существует, учитывая, что простой -способ прост -cdd )для точной настройки пакетов, поставляемых с установочным носителем Debian. На самом деле можно настроить его репозиторий, учитывая, что он так или иначе разрешает все зависимости. (см.:Создание пользовательского набора компакт-дисков)

Тем не менее, для конкретного случая резервного копирования можно использовать в его простой -конфигурации cdd (profiles/[profile].conf )параметры:

backports=true
backports_packages="[package_list_with_dependencies]"
0
27.01.2020, 23:43

Если вы знаете, как создать список пакетов, просто поместите его в simple-cddфайл профиля .downloads. Эти пакеты вместе с зависимостями будут включены в каталог /pool/main/результирующего файла образа .iso.

https://wiki.debian.org/Simple-CDD/Howto

1
27.01.2020, 23:43

Теги

Похожие вопросы