其实这个问题还碰到很久了,而且搜了一下网上并没有相关的中文资料,所以还是记录一下,希望可以帮之后遇到相同问题的朋友节省时间。
之前在一些安装有精简版Ubuntu 14.04模板(例如ubuntu-14.04-x86_64-minimal)的OpenVZ VPS上使用apt-get安装软件时经常碰到以下提示:
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
或者在中文Locale下面:
debconf: 无法初始化前端界面:Dialog
debconf: (没有安装任何可用的对话框类程序,所以无法使用基于此种形式的界面。 at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: 返回前端界面:Readline
由于这个错误提示并不会影响安装,于是一开始也没有在意。
这次搜索了一下,发现错误提示中提到的Dialog其实是一个可视化工具的名称。Dialog工具提供了在Shell中使用对话框的方式展示各类问题、信息的方式,这些问题包括Yes/No选项、菜单、文本框、单选框、复选框等等。换句话说,安装MySQL时提示设定的管理员密码;安装Postfix时要求输入的Hostname;选定时区的时区选择框等等都是由Dialog工具实现的。
Dialog已经有相当悠久的历史了(1994年发布,都要比还要早了……),在英文维基百科中更详细的介绍。看样子果真是因为这个工具实在太早了,已经深入了Linux的生态系统,除了使用Shell语法的开发者外,一般的Linux使用者很少会接触了解到Dialog的作用(在此要向老一代开发者致敬)。
在了解了Dialog在此错误信息中的含义以及Dialog工具后,问题的原因就很简单了:精简版的OpenVZ模板删除了Dialog的包,那么解决方法就是利用apt-get重新安装相关组件:
apt-get install dialog
这样以来,就不会在遇到这类错误了。