@@ -1783,6 +1783,43 @@ function Get-RedHatPackageManager {
1783
1783
}
1784
1784
}
1785
1785
1786
+ function Install-GlobalGem {
1787
+ param (
1788
+ [Parameter ()]
1789
+ [string ]
1790
+ $Sudo = " " ,
1791
+
1792
+ [Parameter (Mandatory )]
1793
+ [string ]
1794
+ $GemName ,
1795
+
1796
+ [Parameter (Mandatory )]
1797
+ [string ]
1798
+ $GemVersion
1799
+ )
1800
+ try {
1801
+ # We cannot guess if the user wants to run gem install as root on linux and windows,
1802
+ # but macOs usually requires sudo
1803
+ $gemsudo = ' '
1804
+ if ($environment.IsMacOS -or $env: TF_BUILD ) {
1805
+ $gemsudo = $sudo
1806
+ }
1807
+
1808
+ Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install $GemName -v $GemVersion --no-document" ))
1809
+
1810
+ } catch {
1811
+ Write-Warning " Installation of gem $GemName $GemVersion failed! Must resolve manually."
1812
+ $logs = Get-ChildItem " /var/lib/gems/*/extensions/x86_64-linux/*/$GemName -*/gem_make.out" | Select-Object - ExpandProperty FullName
1813
+ foreach ($log in $logs ) {
1814
+ Write-Verbose " Contents of: $log " - Verbose
1815
+ Get-Content - Raw - Path $log - ErrorAction Ignore | ForEach-Object { Write-Verbose $_ - Verbose }
1816
+ Write-Verbose " END Contents of: $log " - Verbose
1817
+ }
1818
+
1819
+ throw
1820
+ }
1821
+ }
1822
+
1786
1823
function Start-PSBootstrap {
1787
1824
[CmdletBinding (
1788
1825
SupportsShouldProcess = $true ,
@@ -1830,7 +1867,7 @@ function Start-PSBootstrap {
1830
1867
elseif ($environment.IsUbuntu18 ) { $Deps += " libicu60" }
1831
1868
1832
1869
# Packaging tools
1833
- if ($Package ) { $Deps += " ruby-dev" , " groff" , " libffi-dev" , " rpm" }
1870
+ if ($Package ) { $Deps += " ruby-dev" , " groff" , " libffi-dev" , " rpm" , " g++ " , " make " }
1834
1871
1835
1872
# Install dependencies
1836
1873
# change the fontend from apt-get to noninteractive
@@ -1854,7 +1891,7 @@ function Start-PSBootstrap {
1854
1891
$Deps += " libicu" , " libunwind"
1855
1892
1856
1893
# Packaging tools
1857
- if ($Package ) { $Deps += " ruby-devel" , " rpm-build" , " groff" , ' libffi-devel' }
1894
+ if ($Package ) { $Deps += " ruby-devel" , " rpm-build" , " groff" , ' libffi-devel' , " gcc-c++ " }
1858
1895
1859
1896
$PackageManager = Get-RedHatPackageManager
1860
1897
@@ -1875,7 +1912,7 @@ function Start-PSBootstrap {
1875
1912
$Deps += " wget"
1876
1913
1877
1914
# Packaging tools
1878
- if ($Package ) { $Deps += " ruby-devel" , " rpmbuild" , " groff" , ' libffi-devel' }
1915
+ if ($Package ) { $Deps += " ruby-devel" , " rpmbuild" , " groff" , ' libffi-devel' , " gcc " }
1879
1916
1880
1917
$PackageManager = " zypper --non-interactive install"
1881
1918
$baseCommand = " $sudo $PackageManager "
@@ -1916,19 +1953,9 @@ function Start-PSBootstrap {
1916
1953
1917
1954
# Install [fpm](https://github.com/jordansissel/fpm) and [ronn](https://github.com/rtomayko/ronn)
1918
1955
if ($Package ) {
1919
- try {
1920
- # We cannot guess if the user wants to run gem install as root on linux and windows,
1921
- # but macOs usually requires sudo
1922
- $gemsudo = ' '
1923
- if ($environment.IsMacOS -or $env: TF_BUILD ) {
1924
- $gemsudo = $sudo
1925
- }
1926
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install ffi -v 1.12.0 --no-document" ))
1927
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install fpm -v 1.11.0 --no-document" ))
1928
- Start-NativeExecution ([ScriptBlock ]::Create(" $gemsudo gem install ronn -v 0.7.3 --no-document" ))
1929
- } catch {
1930
- Write-Warning " Installation of fpm and ronn gems failed! Must resolve manually."
1931
- }
1956
+ Install-GlobalGem - Sudo $sudo - GemName " ffi" - GemVersion " 1.12.0"
1957
+ Install-GlobalGem - Sudo $sudo - GemName " fpm" - GemVersion " 1.11.0"
1958
+ Install-GlobalGem - Sudo $sudo - GemName " ronn" - GemVersion " 0.7.3"
1932
1959
}
1933
1960
}
1934
1961
0 commit comments