
저는 현재 사용자 정의된 선택 사항을 제공하고 해당 선택 사항을 기반으로 확장된 설명을 제공하려는 패키지 스크립트를 작성 중입니다.
저는 이전에 Debconf를 사용하여 사전 시드 및 사용자 정의 스크립트를 사용하여 Linux 설치 프로그램을 성공적으로 수정하여 작동 방식에 익숙해졌습니다.
제가 막힌 부분은 템플릿의 설명을 변경하는 것입니다. 온라인에서 찾아본 모든 Debconf 매뉴얼에 따르면 정보는 간단하지만 선택 사항과 설명을 모두 사용자 정의할 수 있습니다. Choices를 사용자 정의하는 예제가 많이 있으며 db_subst
이는 잘 작동합니다.
내가 막힌 부분은 설명 텍스트와 이 경우 확장된 설명을 사용자 정의하는 것입니다. 사용해 보았지만 db_subst
만족스러운 결과는 없었습니다. 문제는 더 많은 텍스트 줄로 설명을 확장해야 한다는 것입니다. 하지만 Debconf는 한 줄만 사용한다는 것을 알았습니다. 텍스트에 "\n"과 같은 개행 표시를 넣으면 문자 그대로 해석되어 엉망이 됩니다.
몇 줄의 추가 텍스트로 설명을 사용자 정의하도록 Debconf를 프로그래밍할 수 있습니까? 아니면 이 질문 하나에 대해 포기하고 직접 사용자 정의 템플릿 파일을 만들어야 합니까? 나는 Debconf가 제공하는 기능을 넘어섰을 수도 있지만 나에게는 그렇게 복잡해 보이지 않았습니다.
다음은 제가 테스트하기 위해 수행한 방법과 작업을 확인할 수 있는 예제 스크립트와 템플릿입니다.
#!/bin/sh
# testing.sh
# Debconf testing script.
# Testing dynamic changing of choices and description in question.
export DEBCONF_DEBUG=developer
#export DEBIAN_FRONTEND=gnome
. /usr/share/debconf/confmodule
db_x_loadtemplatefile ./testing.template testing
db_settitle testing/title
list="1, 2, 3, 4"
extended="One\n Two\n Three\n Four\n"
# Use real newlines in text
#extended=`echo "${extended}"`
db_subst testing/list list "${list}"
db_subst testing/list extended "${extended}"
db_reset testing/list
db_input critical testing/list
db_go
db_get testing/list
db_stop
exit 0
# testing.template
Template: testing/title
Type: title
Description: Testing title
Template: testing/list
Type: select
Choices: ${list}
Description: Please select option below.
Extended description.
.
${extended}
답변1
다음과 같이 변수에 실제 개행 문자를 추가하면 됩니다.
extended="One
Two
Three
Four"
이것은 내 부분에서 약간의 실험을 필요로 했습니다. 데비안debconf-개발설명서에 따르면
주의 사항: - 데비안 패키지 설명과 마찬가지로 한 줄에 있는 점은 새 문단을 나타냅니다. - 대부분의 텍스트는 줄바꿈되어 있지만 이중 들여쓰기된 텍스트는 그대로 남겨두므로 이 목록과 같이 항목 목록에 사용할 수 있습니다.
대체에 대해서는 분명히 사실이 아닙니다. 예를 들어 템플릿에 공백 점을 직접 넣으면 빈 줄이 인쇄되지만 subst 키에 동일한 내용을 넣으면 점이 인쇄됩니다. (-‸ლ)