$ {D} no comando de instalação

6

Eu vi o seguinte comando de instalação usado em várias receitas yocto

install -d ${D}${libdir}

Estou ciente do comando de instalação e sua finalidade, no entanto, não consigo entender o propósito da variável $ {D}, já que ela geralmente não é definida na receita. Alguém pode explicar o propósito dessa variável de shell?

    
por shery6405 23.01.2017 / 09:14

2 respostas

6

A variável ${D} permite que o software que está sendo construído seja instalado em um diretório diferente do seu destino real. Por exemplo, você pode configurar o software para que libdir seja /usr/lib , mas isso é para o dispositivo de destino; Quando você executa a instalação em seu sistema de compilação, não deseja que os arquivos recém-criados sejam realmente instalados em /usr/lib , você deseja que os arquivos sejam colocados em algum lugar isolados para que possam ser prontamente identificados e copiados para o sistema de destino. Então você cria um diretório temporário e instala lá:

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

Dessa forma, os arquivos acabam em /tmp/yocto-target/usr/lib e assim por diante. Você pode arquivar todos os /tmp/yocto-target usando qualquer ferramenta que preferir, descartando o prefixo /tmp/yocto-target , copiando o arquivo para o dispositivo de destino e instalando seu conteúdo lá.

Em outros sistemas de compilação, a variável DESTDIR é usada pelo mesmo motivo.

    
por 23.01.2017 / 09:19
-1

$D é definido em poky / meta / conf /bitbake.conf como:

##################################################################
# General work and output directories for the build system.
##################################################################
[...]
BASE_WORKDIR ?= "${TMPDIR}/work"
WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
T = "${WORKDIR}/temp"
D = "${WORKDIR}/image"
S = "${WORKDIR}/${BP}"
B = "${S}"
    
por 11.12.2018 / 15:54