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


15

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

在安装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: 

我想使它自动化,以便它不询问,而仅继续进行安装。

我怎样才能做到这一点?


Answers:


15

来自类似的 StackOverflow问题:

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

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

2

您可以使用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  

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

答案三:

我认为您需要做的就是将所需的号码放在文件中testfile,然后运行带有< testfile附加命令。


谢谢,这是一个有趣的主意,但是这可能会浪费很多时间,或者有时因安装时间长于预期而冻结,这取决于所使用的睡眠时间。
fadebee 2016年

阅读xdotool的手册页-这似乎是X Windows的事情。我正在Ubuntu服务器环境中尝试此操作。我会更新我的问题。
fadebee 2016年

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

1

“ debootstrap实际上只是一个shell脚本”-来自https://wiki.debian.org/Debootstrap

这意味着您可以阅读脚本,以查看是否存在通过环境变量传递信息,在调用deboostrap时提供参数或为特定应用程序创建自己的修改版本的方法。


apt-get install ....最初的debootstrap之后,此软件包将作为运行的一部分进行安装。
fadebee 2016年

因此,您是说在apt-get install deboostrap安装范例后不允许更改环境变量或运行自定义脚本?好的。
BenjaminBrink

也许这会有所帮助。此链接显示了如何在Ubuntu安装中设置“ preeseed”文件以预提示的示例
BenjaminBrink
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.