deb-substvars(5) | dpkg suite | deb-substvars(5) |
deb-substvars - variáveis de substituição de fonte Debian
Variáveis debian/substvars, debian/binary-package.substvars
Antes de dpkg-source, dpkg-gencontrol e dpkg-genchanges escreverem a sua informação de controle (no ficheiro de de controle de fonte .dsc para dpkg-source e para a saída standard para dpkg-gencontrol e dpkg-genchanges) eles executam algumas substituições de variáveis no ficheiro resultante.
A substituição de variável tem o formato ${variable-name}. Nomes de varáveis consistem de alfanuméricos (a-zA-Z0-9), hífens (-) dois pontos (:) e começam com um alfanumérico, e são sensíveis a maiúsculas/minúsculas, apesar de poderem referir a outras entidades, que são preservadoras de maiúsculas/minúsculas. Substituições de variáveis são executadas repetidamente até que não sobre nenhuma, o texto completo do campo após a substituição é re-sondado para se procurar por mais substituições.
As variáveis de substituição podem ser especificadas num ficheiro. Estes ficheiros consistem de linhas no formato name=value ou name?=value. O operado = designa uma substituição normal de variável, enquanto o operador ?= (desde dpkg 1.21.8) designa uma variável de substituição opcional a qual não irá emitir avisos mesmo se não for usada. Espaços no final de cada linha, as linhas em branco, e as linhas que comecem com o símbolo # (comentários) serão ignoradas.
As variáveis podem ser definidas usando a opção comum -V. Elas podem também ser especificadas no ficheiro debian/substvars (ou em qualquer outro ficheiro especificado usando a opção comum -T).
Após todas as substituições terem sido feitas, cada ocorrência da string ${} (a qual não é uma variável de substituição real) é substituída por um sinal $. Isto pode ser usado como sequência de escape tal como ${}{VARIABLE} o que irá acabar como ${VARIABLE} na saída.
Se uma variável for referida mas não definida, irá gerar um aviso e é assumido um valor vazio.
Enquanto uma substituição de variável é feita em todos os campos de controle, alguns desse campos são usados e necessários durante a compilação quando a substituição ainda não aconteceu. É por isso que não pode usar vaiáveis nos campos Package, Source e Architecture.
A substituição de variável acontece no conteúdo dos campos após terem sido analisados, mas se você quer que uma variável expanda por várias linhas você não precisa de incluir um espaço após a mudança de linha. Isto é feito implicitamente quando o campo é emitido. Por exemplo, se a variável ${Description} for definida para "foo is bar.${Nova-linha}foo is great." e se você tiver o seguinte campo:
Description: foo application ${Description} . More text.
Irá resultar em:
Description: foo application foo is bar. foo is great. . More text.
Adicionalmente, estão sempre disponíveis as seguintes variáveis standard:
Nota: Tenha em conta que isto só pode ser uma aproximação, pois o tamanho real usado no sistema instalado irá depender grandemente do sistema de ficheiros usado e dos seu parâmetros, o que pode acabar a usar mais ou menos espaço que aquele especificado neste campo.
dpkg(1), dpkg-vendor(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1).
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
2023-05-11 | 1.21.22 |