Список и определение пакетов в debootstrap

В системах Unix, является ли файл исполняемым файлом или не зависит только от его полномочий, не от его имени или его содержания. (Если формат файла не будет допустимым исполняемым файлом, то система попытается выполнить и рассматривать его как одну из возможных ошибок при выполнении программы, вместе с недостаточными ресурсами, недостающими библиотеками, и т.д.),

Большинство файлов, которые Вы загружаете с сети, не предназначено, чтобы быть исполняемым файлом, таким образом, завихрение не пытается сделать исполняемый файл файла. Даже если бы файл был предназначен, чтобы быть выполненным, то Вы не могли бы хотеть выполнять его теперь; например, Вы могли бы хотеть рассмотреть его и только сделать исполняемый файл файла, если это передает Ваш обзор.

С другой стороны, gcc или любой другой компилятор намеревается произвести исполняемую программу, таким образом, не удивительно, что это сделало бы необходимые шаги. С gcc это - одна из последних стадий процесса компиляции. Можно наблюдать его с strace:

$ strace -f gcc a.c
…
23429 execve("/usr/bin/ld", ["/usr/bin/ld", "--eh-frame-hdr", "-m", "elf_i386", "--hash-style=both", "-dynamic-linker", "/lib/ld-linux.so.2", "-z", "relro", "/usr/lib/gcc/i486-linux-gnu/4.3."..., "/usr/lib/gcc/i486-linux-gnu/4.3."..., "/usr/lib/gcc/i486-linux-gnu/4.3."..., "-L/usr/lib/gcc/i486-linux-gnu/4."..., "-L/usr/lib/gcc/i486-linux-gnu/4."..., "-L/usr/lib/gcc/i486-linux-gnu/4."..., "-L/lib/../lib", ...], [/* 82 vars */]) = 0
…
23429 chmod("a.out", 0755)              = 0
23429 exit_group(0)                     = ?
…

Другими словами, компоновщик, который является последней стадией в компиляции и производит исполняемый файл, изменяет полномочия на выходном файле, чтобы быть исполняемым файлом как его самым последним шагом.

5
06.07.2014, 15:15
1 ответ

Для первого вы используете --print-debs, который показывает список пакетов, которые будут загружены для конкретной цели. Во-вторых, вы можете использовать --include/--exclude переключатели для этой задачи:

   --include=alpha,beta
          Comma separated list of packages which will be added to download
          and extract lists.

   --exclude=alpha,beta
          Comma separated list of packages  which  will  be  removed  from
          download  and extract lists.  WARNING: you can and probably will
          exclude essential packages, be careful using this option.

Обратите внимание, что это похоже на "установить базу плюс пакеты" или "установить базовые минус пакеты". Базовые пакеты устанавливаются всегда.

6
27.01.2020, 20:38

Теги

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