如何自訂 debconf 問題的選擇和描述?

如何自訂 debconf 問題的選擇和描述?

我目前正在編寫一個包腳本,我需要在其中提供自訂選擇,並且還希望根據這些選擇提供擴充描述。

我之前已經成功修改了 Linux 安裝程序,並使用 Debconf 提出問題,使用預置和自訂腳本,因此我熟悉它的工作原理。

我陷入困境的是更改模板中的描述。根據我在網上查找的所有 Debconf 手冊,儘管資訊很簡短,但選擇和描述都可以自訂。有很多自訂選項的範例,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"

這需要我進行一些實驗。 Debiandebconf 開發手冊說

請注意: - 就像在 debian 包描述中一樣,單獨一行上的點會引發一個新段落。 - 大多數文字都是自動換行的,但雙縮排文字則是單獨保留,因此您可以將其用於項目列表,例如此列表。

對於替代來說,這顯然是不正確的。例如,如果您直接在模板中放置一個空格點,它將列印一個空行,但將其放入 subst 鍵中,它將列印該點。 (-‸ლ)

相關內容