@@ -1894,6 +1894,43 @@ function Get-RedHatPackageManager {
1894
1894
}
1895
1895
}
1896
1896
1897
+ function Install-GlobalGem {
1898
+ param (
1899
+ [Parameter ()]
1900
+ [string ]
1901
+ $Sudo = " " ,
1902
+
1903
+ [Parameter (Mandatory )]
1904
+ [string ]
1905
+ $GemName ,
1906
+
1907
+ [Parameter (Mandatory )]
1908
+ [string ]
1909
+ $GemVersion
1910
+ )
1911
+ try {
1912
+ # We cannot guess if the user wants to run gem install as root on linux and windows,
1913
+ # but macOs usually requires sudo
1914
+ $gemsudo = ' '
1915
+ if ($environment.IsMacOS -or $env: TF_BUILD ) {
1916
+ $gemsudo = $sudo
1917
+ }
1918
+
1919
+ Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install $GemName -v $GemVersion --no-document" ))
1920
+
1921
+ } catch {
1922
+ Write-Warning " Installation of gem $GemName $GemVersion failed! Must resolve manually."
1923
+ $logs = Get-ChildItem " /var/lib/gems/*/extensions/x86_64-linux/*/$GemName -*/gem_make.out" | Select-Object - ExpandProperty FullName
1924
+ foreach ($log in $logs ) {
1925
+ Write-Verbose " Contents of: $log " - Verbose
1926
+ Get-Content - Raw - Path $log - ErrorAction Ignore | ForEach-Object { Write-Verbose $_ - Verbose }
1927
+ Write-Verbose " END Contents of: $log " - Verbose
1928
+ }
1929
+
1930
+ throw
1931
+ }
1932
+ }
1933
+
1897
1934
function Start-PSBootstrap {
1898
1935
[CmdletBinding ()]
1899
1936
param (
@@ -1938,7 +1975,7 @@ function Start-PSBootstrap {
1938
1975
elseif ($environment.IsUbuntu18 ) { $Deps += " libicu60" }
1939
1976
1940
1977
# Packaging tools
1941
- if ($Package ) { $Deps += " ruby-dev" , " groff" , " libffi-dev" , " rpm" }
1978
+ if ($Package ) { $Deps += " ruby-dev" , " groff" , " libffi-dev" , " rpm" , " g++ " , " make " }
1942
1979
1943
1980
# Install dependencies
1944
1981
# change the fontend from apt-get to noninteractive
@@ -1962,7 +1999,7 @@ function Start-PSBootstrap {
1962
1999
$Deps += " libicu" , " libunwind"
1963
2000
1964
2001
# Packaging tools
1965
- if ($Package ) { $Deps += " ruby-devel" , " rpm-build" , " groff" , ' libffi-devel' }
2002
+ if ($Package ) { $Deps += " ruby-devel" , " rpm-build" , " groff" , ' libffi-devel' , " gcc-c++ " }
1966
2003
1967
2004
$PackageManager = Get-RedHatPackageManager
1968
2005
@@ -1983,7 +2020,7 @@ function Start-PSBootstrap {
1983
2020
$Deps += " wget"
1984
2021
1985
2022
# Packaging tools
1986
- if ($Package ) { $Deps += " ruby-devel" , " rpmbuild" , " groff" , ' libffi-devel' }
2023
+ if ($Package ) { $Deps += " ruby-devel" , " rpmbuild" , " groff" , ' libffi-devel' , " gcc " }
1987
2024
1988
2025
$PackageManager = " zypper --non-interactive install"
1989
2026
$baseCommand = " $sudo $PackageManager "
@@ -2024,19 +2061,9 @@ function Start-PSBootstrap {
2024
2061
2025
2062
# Install [fpm](https://github.com/jordansissel/fpm) and [ronn](https://github.com/rtomayko/ronn)
2026
2063
if ($Package ) {
2027
- try {
2028
- # We cannot guess if the user wants to run gem install as root on linux and windows,
2029
- # but macOs usually requires sudo
2030
- $gemsudo = ' '
2031
- if ($environment.IsMacOS -or $env: TF_BUILD ) {
2032
- $gemsudo = $sudo
2033
- }
2034
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install ffi -v 1.12.0 --no-document" ))
2035
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install fpm -v 1.11.0 --no-document" ))
2036
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install ronn -v 0.7.3 --no-document" ))
2037
- } catch {
2038
- Write-Warning " Installation of fpm and ronn gems failed! Must resolve manually."
2039
- }
2064
+ Install-GlobalGem - Sudo $sudo - GemName " ffi" - GemVersion " 1.12.0"
2065
+ Install-GlobalGem - Sudo $sudo - GemName " fpm" - GemVersion " 1.11.0"
2066
+ Install-GlobalGem - Sudo $sudo - GemName " ronn" - GemVersion " 0.7.3"
2040
2067
}
2041
2068
}
2042
2069
0 commit comments