Переменная $ {D} в команде установки

Утилита командной строки openssl может сделать это, используя пароль из файла:

openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc

openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain

Вы можете использовать - K , чтобы установить фактический используемый ключ, вместо того, чтобы извлекать его из пароля, но тогда это также требует ручной установки IV, так что это не очень удобно.

Страница руководства - enc (1) .

10
25.01.2017, 01:07
2 ответа

Переменная $ {D} позволяет устанавливать создаваемое программное обеспечение в каталог, отличный от его реальной цели. Например, вы можете настроить программное обеспечение так, чтобы libdir было / usr / lib , но это для целевого устройства; когда вы запускаете установку в своей системе сборки, вы не хотите, чтобы вновь созданные файлы фактически устанавливались в / usr / lib , вы хотите разместить их где-то изолированно, чтобы их можно было легко идентифицировать и скопировано в целевую систему. Итак, вы создаете временный каталог и устанавливаете туда:

mkdir /tmp/yocto-target
make install D=/tmp/yocto-target

Таким образом, файлы попадают в / tmp / yocto-target / usr / lib и так далее. Затем вы можете заархивировать все / tmp / yocto-target с помощью любого инструмента, который вам больше нравится, отбросив префикс / tmp / yocto-target , скопировать архив на целевое устройство и установить его содержимое там.

В других системах сборки переменная DESTDIR используется по той же причине.

12
27.01.2020, 20:01

${D}— обычное начало пути, используемого рецептом Yocto, где рецепт устанавливает файлы, принадлежащие пакетам, созданным этим рецептом. Эти каталоги в ${D}сканируются системой сборки на наличие файлов для включения в пакеты (, таких как RPM-файлы ), и для включения в так называемое -дерево sysroot, где файлы (, например. идут библиотеки и заголовки ), используемые другими пакетами. Для этого сканирования существуют некоторые правила по умолчанию, и эти правила можно расширить. Рекомендуется максимально использовать эти пути Yocto по умолчанию в ${D}, чтобы воспользоваться встроенными -механизмами Yocto.

${libdir}определяется в bitbake.conf по умолчанию как :${exec_prefix}/lib, который по умолчанию равен /usr/lib, определенный в том же файле.

install -d ${D}${libdir} 

В конце концов, эта команда оболочки «установить» просто создает каталог, в котором должны быть сохранены файлы (, например. с помощью do _install ), который в конечном итоге должен быть установлен под /usr/libна целевом устройстве.

${D}/a/b/cдля файла c— это просто промежуточный путь, используемый для упаковки Yocto, а ${D}«отрезается», когда тот же файл cнаходится в целевой файловой системе. Так, например, ${D}/a/b/cбудет на /a/b/cцели.

${D}по умолчанию определяется в poky/meta/conf/bitbake.conf как:

TMPDIR = "${TOPDIR}/tmp"
BASE_WORKDIR ?= "${TMPDIR}/work"
WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
D = "${WORKDIR}/image"
6
27.01.2020, 20:01

Теги

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