Dai*_*thí 88 ubuntu dpkg apt vagrant
我正在为 a ubuntu vagrant vm, on a构建配置脚本ubuntu host,12.10 64bit当安装以下软件包时:
sudo apt-get -y install php5-xsl graphviz php-pear unison
Run Code Online (Sandbox Code Playgroud)
我收到警告:
dpkg-reconfigure: unable to re-open stdin: No file or directory
Run Code Online (Sandbox Code Playgroud)
已经尝试过搜索,但结果是使用 apt-get 可能抛出所有其他错误,无法找到如何抑制上述警告。安装工作,但上面的警告导致 vagrant up 标准输出中的错误行。
任何人都知道可能是什么原因或如何抑制警告
小智 106
在任何apt-get调用之前,通过将以下内容放入我的配置脚本中,我得到了错误消息:
export DEBIAN_FRONTEND=noninteractive
Run Code Online (Sandbox Code Playgroud)
这使得debconf使用一个根本不需要交互式输入的前端,甚至阻止它尝试访问stdin.
Dai*_*thí 25
答案是按此设置perl:locale's :
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题,但确实增加了不需要的配置时间vagrant up。
ken*_*orb 10
运行此命令:
cat /etc/apt/apt.conf.d/70debconf
Run Code Online (Sandbox Code Playgroud)
看看你有没有这个文件。如果是这样,解决方案是注释掉DPkg防止debconf在安装之前预先配置所有软件包的行。
因此,将这些命令添加到您的配置文件中:
sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical
Run Code Online (Sandbox Code Playgroud)
否则,如果您不关心此文件,只需将其删除:
sudo rm -v /etc/apt/apt.conf.d/70debconf
Run Code Online (Sandbox Code Playgroud)
这里有一些其他命令需要考虑,但我认为它们没有任何用处:
sudo dpkg-preconfigure -f noninteractive -p critical
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
Bash 重定向适用于 stdout 和 stderr。
要重定向错误流,请使用以下命令:
sudo apt-get -y install php5-xsl graphviz php-pear unison 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
要重定向标准输出(不是错误/警告的消息)和标准错误,请使用:
sudo apt-get -y install php5-xsl graphviz php-pear unison &> /dev/null
Run Code Online (Sandbox Code Playgroud)
这是 bash 中可用的快捷方式:
sudo apt-get -y install php5-xsl graphviz php-pear unison > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
或者:
sudo apt-get -y install php5-xsl graphviz php-pear unison 1> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
下面,我们可以清楚地看到文件描述符1是stdout,2stderr,3stdin。
$ ls -l /dev/std*
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdout -> /proc/self/fd/1
Run Code Online (Sandbox Code Playgroud)
所以对于你所说的你想要做的,你应该只需要我给的第一个命令。
| 归档时间: |
|
| 查看次数: |
47435 次 |
| 最近记录: |