ubuntu - dpkg的非交互式方法重新配置

  显示原文与译文双语对照的内容
0 0

当我第一次设置一个ubuntu服务器,我确保我 aptitude install tzdata, 然后 dpkg-reconfigure tzdata 所以我设置时区。

我想我的服务器设置自动化脚本,并注意到这段的破坏了它是自动的,因为它需要一个交互式会话,用户干预。

是否可以使用dpkg-reconfigure而不进行交互?

时间: 原作者:

0 0

我做了一个谷歌搜索,找到了这个。 我认为它应该解决你的问题。

http://serverfault.com/a/84528

编辑:( 从上面的链接复制和粘贴。)
你需要将前端指定为 `noninteractive,它将保存你当前的设置。

dpkg-reconfigure将把当前的系统设置作为福音,所以简单地改变你的时区,并使用non-interactive标志运行它

e.g 。让我更改为"欧洲/都柏林":


# echo"Europe/Dublin">/etc/timezone 
# dpkg-reconfigure -f noninteractive tzdata

显然,这允许你使用 puppet/cfengine来分发/etc/timezone 。

0 0

swill的答案不是如何正确地做。 如果你想要无人参与/脚本化的dpkg配置软件包,那么你需要使用 debconf preseeding机制。

在你的情况下,这意味着你必须执行以下操作:

  • 设置以下 环境变量 以避免debconf试图询问用户任何问题:

    
    export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
    
    
  • 然后,preseed with与以下 preseed.txt 文件( 或者其他你想要的设置):

    
    tzdata tzdata/Areas select Europe
    tzdata tzdata/Zones/Europe select Berlin
    
    
  • 通过运行以下命令设置上述preseed文件:

    
    debconf-set-selections/your/preseed.txt
    
    
  • 你现在可以安装 tzdata ( 如果还没有安装) 通过 apt 或者 run dpkg-reconfigure 。 最后,tzdata将根据你在 debconf preseed文件中指定的内容进行设置。

记住,你可以使用 debconf preseeding自动化更多的内容。 例如在我的preseeds中,我总是设置:


locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
locales locales/default_environment_locale select en_US.UTF-8

你可以通过运行 debconf-get-selections 来检查当前系统的debconf设置。 输出可以让你了解使用 debconf preseeding实现自动化的系统配置的多少。

原作者:
...