2017-05-15 172 views
1

msodbcsql的要安装自带的木偶安装此时需要使用,需要下面的命令用于Linux的PHP的Microsoft SQL驱动程序自动安装与木偶

sudo ACCEPT_EULA=Y apt-get install mssql-tools 

然而MSSQL工具msodbcsql,这失败,木偶代码目前使用

package { 'mssql-tools'  : ensure => latest, } 

但这返回一个错误:

ERROR: The EULA was not accepted. Installation aborted. 

Puppet需要什么才能成功安装该软件包。 我已经尝试在调用包命令之前设置一个环境变量。

Exec { environment => [ "ACCEPT_EULA=Y" ] } 

微软的安装说明在这里:

https://blogs.msdn.microsoft.com/sqlnativeclient/2017/02/04/odbc-driver-13-1-for-linux-released/

这是driverpage:

https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu/

+0

做当命令和apt-get安装MSSQL-工具ncurses的窗口有两个盒子弹出,是和否,默认选择的是没有。所以我不知道如何使用responsefile从包装到正确的选择是字段,然后按回车键,退格键和箭头键可以将所选字段置于“是”。 – Qworty

回答

0

看来,这是一个功能,是要求;使用环境值运行包实体。

但因为还有一个特点,这冻结不会傀儡4.x的实现(https://projects.puppetlabs.com/issues/6400

的解决方法是不使用套餐实体,但EXEC实体:

exec { "/usr/bin/apt-get -yq install msodbcsql": 
    environment => "ACCEPT_EULA=Y", 
    unless => "/usr/bin/dpkg -l msodbcsql | tail -1 | grep ^ii", 
} 

在哪里除非用于使其在安装软件包时无法运行。

这种方法的缺点是,只有在使用apt-get的情况下,如果您希望此功能在其他系统上运行,您应该提供带有if语句的$osfamily以使用正确的程序包管理器。