2017-05-15 144 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以使用正確的程序包管理器。