如何自动设置“键盘配置”包?

如何自动设置“键盘配置”包?

我正在编写一个脚本,使用 debootstrap(在 Ubuntu 16.04 服务器机器上)将 Ubuntu 16.04 服务器安装到 chroot jail 中。

在设置包期间keyboard-configuration它会询问键盘类型:

Setting up keyboard-configuration (1.108ubuntu15) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring keyboard-configuration
----------------------------------

The layout of keyboards varies per country, with some countries having multiple
common layouts. Please select the country of origin for the keyboard of this
computer.

  1. Afghani                                     48. Irish
  2. Albanian                                    49. Italian
...    
  28. English (UK)                               75. Slovak
  29. English (US)                               76. Slovenian
...
  45. Icelandic                                  92. Vietnamese
  46. Indian                                     93. Wolof
  47. Iraqi
Country of origin for the keyboard: 

我想使这个自动化,这样它就不会询问,只需继续安装。

我怎样才能做到这一点?

答案1

一个相似的StackOverflow 问题:

DEBIAN_FRONTEND=noninteractive如果在运行 时设置了ENV 变量apt-get install keyboard-configuration,则不会提示任何交互。因此您只需运行:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

答案2

这很容易自动化,您只需要为这个包设置适当的 debconf 配置。

首次安装debconf-utils

sudo apt install debconf-utils

如果你已经配置了该包,你可以使用以下命令读取 debconf 配置:

debconf-get-selections | grep keyboard-configuration

如果您尚未配置包或者想要更改您的选择,您可以这样做:

dpkg-reconfigure keyboard-configuration

将所选内容导出到文件

debconf-get-selections | grep keyboard-configuration > selections.conf

复制selections.conf到目标机器并设置选择:

debconf-set-selections < selections.conf

当您安装或重新配置该包时,您的选择将被自动选择。

dpkg-reconfigure keyboard-configuration -f noninteractive

答案3

这个会像魔法一样起作用;在命令前添加这几行代码:

  echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
  sudo apt-get install -y -q

答案4

您可以使用xdotool。启动脚本时输入& sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return

我没有测试过,但它应该可行。

答案2:

运行命令,但将输出重定向到文件(> testfile)。

打开另一个终端并运行

while true
do 
    if [ "$(tac testfile | grep -m 1 .)" = "Country of origin for the keyboard" ]
    then 
    xdotool type <number you want to put> && xdotool key Return && break
    fi
done  

然后,单击返回第一个终端。

答案3:

我认为您需要做的就是将您想要的数字放在一个文件中,testfile然后运行附加的命令< testfile

相关内容