diff --git a/config/software/alertmanager.rb b/config/software/alertmanager.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2FsZXJ0bWFuYWdlci5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2FsZXJ0bWFuYWdlci5yYg== 100644
--- a/config/software/alertmanager.rb
+++ b/config/software/alertmanager.rb
@@ -45,6 +45,8 @@
   prom_version = Prometheus::VersionFlags.new(version)
 
   command "go build -ldflags '#{prom_version.print_ldflags}' ./cmd/alertmanager", env: env, cwd: cwd
+
+  mkdir "#{install_dir}/embedded/bin/"
   copy 'alertmanager', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/docker-distribution-pruner.rb b/config/software/docker-distribution-pruner.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2RvY2tlci1kaXN0cmlidXRpb24tcHJ1bmVyLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2RvY2tlci1kaXN0cmlidXRpb24tcHJ1bmVyLnJi 100644
--- a/config/software/docker-distribution-pruner.rb
+++ b/config/software/docker-distribution-pruner.rb
@@ -32,6 +32,8 @@
   env = { 'GOPATH' => "#{Omnibus::Config.source_dir}/docker-distribution-pruner" }
 
   command "go build -ldflags '-s -w' ./cmds/docker-distribution-pruner", env: env
+
+  mkdir "#{install_dir}/embedded/bin/"
   copy 'docker-distribution-pruner', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/exiftool.rb b/config/software/exiftool.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2V4aWZ0b29sLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2V4aWZ0b29sLnJi 100644
--- a/config/software/exiftool.rb
+++ b/config/software/exiftool.rb
@@ -38,7 +38,7 @@
   patch source: 'allowlist-types.patch'
 
   # Ensuring a bin directory exists
-  command "mkdir -p #{install_dir}/embedded/bin"
+  mkdir "#{install_dir}/embedded/bin"
 
   # Copying necessary files from source
   sync "lib", "#{install_dir}/embedded/lib/exiftool-perl"
diff --git a/config/software/gitaly.rb b/config/software/gitaly.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGFseS5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGFseS5yYg== 100644
--- a/config/software/gitaly.rb
+++ b/config/software/gitaly.rb
@@ -71,7 +71,7 @@
   end
 
   ruby_install_dir = "#{install_dir}/embedded/service/gitaly-ruby"
-  command "mkdir -p #{ruby_install_dir}"
+  mkdir ruby_install_dir.to_s
   sync './ruby/', "#{ruby_install_dir}/", exclude: ['.git', '.gitignore', 'spec', 'features']
   %w(
     LICENSE
diff --git a/config/software/gitlab-config-template.rb b/config/software/gitlab-config-template.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jb25maWctdGVtcGxhdGUucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jb25maWctdGVtcGxhdGUucmI= 100644
--- a/config/software/gitlab-config-template.rb
+++ b/config/software/gitlab-config-template.rb
@@ -25,6 +25,6 @@
 source path: File.expand_path('files/gitlab-config-template', Omnibus::Config.project_root)
 
 build do
-  command "mkdir -p #{install_dir}/etc"
+  mkdir "#{install_dir}/etc"
   sync './', "#{install_dir}/etc/"
 end
diff --git a/config/software/gitlab-cookbooks.rb b/config/software/gitlab-cookbooks.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jb29rYm9va3MucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jb29rYm9va3MucmI= 100644
--- a/config/software/gitlab-cookbooks.rb
+++ b/config/software/gitlab-cookbooks.rb
@@ -30,7 +30,7 @@
 build do
   cookbook_name = 'gitlab'
 
-  command "mkdir -p #{install_dir}/embedded/cookbooks"
+  mkdir "#{install_dir}/embedded/cookbooks"
   sync './', "#{install_dir}/embedded/cookbooks/"
 
   solo_recipes = %w(dna postgresql-bin postgresql-config pg-upgrade-config)
diff --git a/config/software/gitlab-ctl.rb b/config/software/gitlab-ctl.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jdGwucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1jdGwucmI= 100644
--- a/config/software/gitlab-ctl.rb
+++ b/config/software/gitlab-ctl.rb
@@ -28,7 +28,7 @@
 source path: File.expand_path('files/gitlab-ctl-commands', Omnibus::Config.project_root)
 
 build do
-  command "mkdir -p #{install_dir}/bin/"
+  mkdir "#{install_dir}/bin/"
 
   block do
     File.open("#{install_dir}/bin/gitlab-ctl", 'w') do |file|
diff --git a/config/software/gitlab-exporter.rb b/config/software/gitlab-exporter.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1leHBvcnRlci5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1leHBvcnRlci5yYg== 100644
--- a/config/software/gitlab-exporter.rb
+++ b/config/software/gitlab-exporter.rb
@@ -22,7 +22,7 @@
 skip_transitive_dependency_licensing true
 
 dependency 'ruby'
-dependency 'postgresql'
+dependency 'postgresql_new'
 
 build do
   patch source: 'add-license-file.patch'
diff --git a/config/software/gitlab-geo-psql.rb b/config/software/gitlab-geo-psql.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1nZW8tcHNxbC5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1nZW8tcHNxbC5yYg== 100644
--- a/config/software/gitlab-geo-psql.rb
+++ b/config/software/gitlab-geo-psql.rb
@@ -29,6 +29,8 @@
 default_version Digest::MD5.file(__FILE__).hexdigest
 
 build do
+  mkdir "#{install_dir}/bin/"
+
   block do
     File.open("#{install_dir}/bin/gitlab-geo-psql", 'w') do |file|
       file.print <<-EOH
diff --git a/config/software/gitlab-healthcheck.rb b/config/software/gitlab-healthcheck.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1oZWFsdGhjaGVjay5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1oZWFsdGhjaGVjay5yYg== 100644
--- a/config/software/gitlab-healthcheck.rb
+++ b/config/software/gitlab-healthcheck.rb
@@ -27,6 +27,8 @@
 default_version Digest::MD5.file(__FILE__).hexdigest
 
 build do
+  mkdir "#{install_dir}/bin/"
+
   block do
     File.open("#{install_dir}/bin/gitlab-healthcheck", 'w') do |file|
       file.print <<-EOH
diff --git a/config/software/gitlab-kas.rb b/config/software/gitlab-kas.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1rYXMucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1rYXMucmI= 100644
--- a/config/software/gitlab-kas.rb
+++ b/config/software/gitlab-kas.rb
@@ -31,6 +31,8 @@
   env = { 'TARGET_DIRECTORY' => "#{Omnibus::Config.source_dir}/gitlab-kas/build" }
 
   make 'kas', env: env
+
+  mkdir "#{install_dir}/embedded/bin/"
   move 'build/kas', "#{install_dir}/embedded/bin/gitlab-kas"
 
   command "license_finder report --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/gitlab-pages.rb b/config/software/gitlab-pages.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wYWdlcy5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wYWdlcy5yYg== 100644
--- a/config/software/gitlab-pages.rb
+++ b/config/software/gitlab-pages.rb
@@ -38,6 +38,8 @@
   env['FIPS_MODE'] = '1' if Build::Check.use_system_ssl?
 
   make 'gitlab-pages', env: env
+
+  mkdir "#{install_dir}/embedded/bin/"
   move 'gitlab-pages', "#{install_dir}/embedded/bin/gitlab-pages"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/gitlab-pg-ctl.rb b/config/software/gitlab-pg-ctl.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wZy1jdGwucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wZy1jdGwucmI= 100644
--- a/config/software/gitlab-pg-ctl.rb
+++ b/config/software/gitlab-pg-ctl.rb
@@ -29,6 +29,8 @@
 default_version Digest::MD5.file(__FILE__).hexdigest
 
 build do
+  mkdir "#{install_dir}/embedded/bin/"
+
   block do
     File.open("#{install_dir}/embedded/bin/gitlab-pg-ctl", 'w') do |file|
       file.print <<-EOH
diff --git a/config/software/gitlab-psql.rb b/config/software/gitlab-psql.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wc3FsLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1wc3FsLnJi 100644
--- a/config/software/gitlab-psql.rb
+++ b/config/software/gitlab-psql.rb
@@ -29,6 +29,8 @@
 default_version Digest::MD5.file(__FILE__).hexdigest
 
 build do
+  mkdir "#{install_dir}/bin/"
+
   block do
     File.open("#{install_dir}/bin/gitlab-psql", 'w') do |file|
       file.print <<-EOH
diff --git a/config/software/gitlab-rails.rb b/config/software/gitlab-rails.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1yYWlscy5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1yYWlscy5yYg== 100644
--- a/config/software/gitlab-rails.rb
+++ b/config/software/gitlab-rails.rb
@@ -215,7 +215,7 @@
   copy 'db/structure.sql', 'db/structure.sql.bundled'
   copy 'ee/db/geo/structure.sql', 'ee/db/geo/structure.sql.bundled' if EE
 
-  command "mkdir -p #{install_dir}/embedded/service/gitlab-rails"
+  mkdir "#{install_dir}/embedded/service/gitlab-rails"
   sync './', "#{install_dir}/embedded/service/gitlab-rails/", exclude: %w(
     .git
     .gitignore
@@ -230,6 +230,8 @@
     workhorse
   )
 
+  mkdir "#{install_dir}/bin/"
+  mkdir "#{install_dir}/embedded/bin/"
   # Create a wrapper for the rake tasks of the Rails app
   erb dest: "#{install_dir}/bin/gitlab-rake",
       source: 'bundle_exec_wrapper.erb',
diff --git a/config/software/gitlab-redis-cli.rb b/config/software/gitlab-redis-cli.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1yZWRpcy1jbGkucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1yZWRpcy1jbGkucmI= 100644
--- a/config/software/gitlab-redis-cli.rb
+++ b/config/software/gitlab-redis-cli.rb
@@ -29,6 +29,8 @@
 default_version Digest::MD5.file(__FILE__).hexdigest
 
 build do
+  mkdir "#{install_dir}/bin/"
+
   block do
     File.open("#{install_dir}/bin/gitlab-redis-cli", 'w') do |file|
       file.print <<-EOH
diff --git a/config/software/gitlab-scripts.rb b/config/software/gitlab-scripts.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zY3JpcHRzLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zY3JpcHRzLnJi 100644
--- a/config/software/gitlab-scripts.rb
+++ b/config/software/gitlab-scripts.rb
@@ -25,5 +25,6 @@
 source path: File.expand_path('files/gitlab-scripts', Omnibus::Config.project_root)
 
 build do
+  mkdir "#{install_dir}/embedded/bin/"
   copy '*', "#{install_dir}/embedded/bin/"
 end
diff --git a/config/software/gitlab-selinux.rb b/config/software/gitlab-selinux.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zZWxpbnV4LnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zZWxpbnV4LnJi 100644
--- a/config/software/gitlab-selinux.rb
+++ b/config/software/gitlab-selinux.rb
@@ -25,6 +25,6 @@
 source path: File.expand_path('files/gitlab-selinux', Omnibus::Config.project_root)
 
 build do
-  command "mkdir -p #{install_dir}/embedded/selinux"
+  mkdir "#{install_dir}/embedded/selinux"
   sync './', "#{install_dir}/embedded/selinux/"
 end
diff --git a/config/software/gitlab-shell.rb b/config/software/gitlab-shell.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zaGVsbC5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dpdGxhYi1zaGVsbC5yYg== 100644
--- a/config/software/gitlab-shell.rb
+++ b/config/software/gitlab-shell.rb
@@ -32,7 +32,7 @@
 
 build do
   env = with_standard_compiler_flags(with_embedded_path)
-  command "mkdir -p #{install_dir}/embedded/service/gitlab-shell"
+  mkdir "#{install_dir}/embedded/service/gitlab-shell"
   command 'make build', env: env
   sync './', "#{install_dir}/embedded/service/gitlab-shell/", exclude: ['.git', '.gitignore', 'go', 'go_build']
 end
diff --git a/config/software/go-crond.rb b/config/software/go-crond.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dvLWNyb25kLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dvLWNyb25kLnJi 100644
--- a/config/software/go-crond.rb
+++ b/config/software/go-crond.rb
@@ -31,5 +31,7 @@
   }
 
   make 'build', env: env
+
+  mkdir "#{install_dir}/embedded/bin/"
   copy 'go-crond', "#{install_dir}/embedded/bin/"
 end
diff --git a/config/software/grafana-dashboards.rb b/config/software/grafana-dashboards.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dyYWZhbmEtZGFzaGJvYXJkcy5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dyYWZhbmEtZGFzaGJvYXJkcy5yYg== 100644
--- a/config/software/grafana-dashboards.rb
+++ b/config/software/grafana-dashboards.rb
@@ -31,6 +31,6 @@
 
 build do
   # Copy dashboards.
-  command "mkdir -p '#{install_dir}/embedded/service/grafana-dashboards'"
+  mkdir "#{install_dir}/embedded/service/grafana-dashboards"
   sync 'omnibus/', "#{install_dir}/embedded/service/grafana-dashboards/"
 end
diff --git a/config/software/grafana.rb b/config/software/grafana.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2dyYWZhbmEucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2dyYWZhbmEucmI= 100644
--- a/config/software/grafana.rb
+++ b/config/software/grafana.rb
@@ -83,8 +83,8 @@
   end
 
   # Copy binaries
-  command "mkdir -p #{install_dir}/embedded/bin"
+  mkdir "#{install_dir}/embedded/bin"
   copy 'bin/linux-*/grafana-server', "#{install_dir}/embedded/bin/grafana-server"
   copy 'bin/linux-*/grafana-cli', "#{install_dir}/embedded/bin/grafana-cli"
 
   # Copy static assets
@@ -87,8 +87,8 @@
   copy 'bin/linux-*/grafana-server', "#{install_dir}/embedded/bin/grafana-server"
   copy 'bin/linux-*/grafana-cli', "#{install_dir}/embedded/bin/grafana-cli"
 
   # Copy static assets
-  command "mkdir -p #{install_dir}/embedded/service/grafana/public"
+  mkdir "#{install_dir}/embedded/service/grafana/public"
   sync 'public/', "#{install_dir}/embedded/service/grafana/public/"
 
   # Copy default configuration
@@ -92,6 +92,6 @@
   sync 'public/', "#{install_dir}/embedded/service/grafana/public/"
 
   # Copy default configuration
-  command "mkdir -p #{install_dir}/embedded/service/grafana/conf"
+  mkdir "#{install_dir}/embedded/service/grafana/conf"
   copy 'conf/defaults.ini', "#{install_dir}/embedded/service/grafana/conf/defaults.ini"
 end
diff --git a/config/software/krb5.rb b/config/software/krb5.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2tyYjUucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2tyYjUucmI= 100644
--- a/config/software/krb5.rb
+++ b/config/software/krb5.rb
@@ -40,5 +40,5 @@
   #
   # TEMPORARY: 1.17 uses configure.in, but because autoconf is moving to
   # having this file named configure.ac, the upstream patches that now
-  command "mv configure.in configure.ac", env: env, cwd: cwd
+  move "#{cwd}/configure.in", "#{cwd}/configure.ac"
   patch source: 'Add-option-to-build-without-libkeyutils.patch'
@@ -44,5 +44,5 @@
   patch source: 'Add-option-to-build-without-libkeyutils.patch'
-  command "mv configure.ac configure.in", env: env, cwd: cwd
+  move "#{cwd}/configure.ac", "#{cwd}/configure.in"
 
   command "autoreconf", env: env, cwd: cwd
   command './configure' \
diff --git a/config/software/libtensorflow_lite.rb b/config/software/libtensorflow_lite.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL2xpYnRlbnNvcmZsb3dfbGl0ZS5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL2xpYnRlbnNvcmZsb3dfbGl0ZS5yYg== 100644
--- a/config/software/libtensorflow_lite.rb
+++ b/config/software/libtensorflow_lite.rb
@@ -30,7 +30,8 @@
   env = {}
   build_dir = "#{Omnibus::Config.source_dir}/libtensorflow_lite/tflite_build"
 
-  command "mkdir -p #{install_dir}/embedded/lib #{build_dir}"
+  mkdir "#{install_dir}/embedded/lib"
+  mkdir build_dir.to_s
 
   block 'use a custom compiler for OSs with older gcc' do
     if ohai['platform'] == 'centos' && ohai['platform_version'].start_with?('7.')
diff --git a/config/software/mattermost.rb b/config/software/mattermost.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL21hdHRlcm1vc3QucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL21hdHRlcm1vc3QucmI= 100644
--- a/config/software/mattermost.rb
+++ b/config/software/mattermost.rb
@@ -33,6 +33,7 @@
 skip_transitive_dependency_licensing true
 
 build do
+  mkdir "#{install_dir}/embedded/bin"
   move 'bin/mattermost', "#{install_dir}/embedded/bin/mattermost"
   move 'bin/mmctl', "#{install_dir}/embedded/bin/mmctl"
 
@@ -36,7 +37,7 @@
   move 'bin/mattermost', "#{install_dir}/embedded/bin/mattermost"
   move 'bin/mmctl', "#{install_dir}/embedded/bin/mmctl"
 
-  command "mkdir -p #{install_dir}/embedded/service/mattermost"
+  mkdir "#{install_dir}/embedded/service/mattermost"
   copy 'templates', "#{install_dir}/embedded/service/mattermost/templates"
   copy 'i18n', "#{install_dir}/embedded/service/mattermost/i18n"
   copy 'fonts', "#{install_dir}/embedded/service/mattermost/fonts"
diff --git a/config/software/node-exporter.rb b/config/software/node-exporter.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL25vZGUtZXhwb3J0ZXIucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL25vZGUtZXhwb3J0ZXIucmI= 100644
--- a/config/software/node-exporter.rb
+++ b/config/software/node-exporter.rb
@@ -42,6 +42,8 @@
   prom_version = Prometheus::VersionFlags.new(version)
 
   command "go build -ldflags '#{prom_version.print_ldflags}'", env: env
+
+  mkdir "#{install_dir}/embedded/bin"
   copy 'node_exporter', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/package-scripts.rb b/config/software/package-scripts.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3BhY2thZ2Utc2NyaXB0cy5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3BhY2thZ2Utc2NyaXB0cy5yYg== 100644
--- a/config/software/package-scripts.rb
+++ b/config/software/package-scripts.rb
@@ -28,7 +28,7 @@
 
 build do
   # Create the package-script folder. The gitlab.rb project excludes this folder from the package.
-  command "mkdir -p #{install_dir}/.package_util/package-scripts"
+  mkdir "#{install_dir}/.package_util/package-scripts"
   external_url_script = File.read(File.join(Omnibus::Config.project_root, 'config/templates/package-scripts/external_url.sh'))
 
   # Render the package script erb files
diff --git a/config/software/pgbouncer-exporter.rb b/config/software/pgbouncer-exporter.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3BnYm91bmNlci1leHBvcnRlci5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3BnYm91bmNlci1leHBvcnRlci5yYg== 100644
--- a/config/software/pgbouncer-exporter.rb
+++ b/config/software/pgbouncer-exporter.rb
@@ -41,6 +41,8 @@
   prom_version = Prometheus::VersionFlags.new(version)
 
   command "go build -ldflags '#{prom_version.print_ldflags}'", env: env
+
+  mkdir "#{install_dir}/embedded/bin"
   copy 'pgbouncer_exporter', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/postgres-exporter.rb b/config/software/postgres-exporter.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3Bvc3RncmVzLWV4cG9ydGVyLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3Bvc3RncmVzLWV4cG9ydGVyLnJi 100644
--- a/config/software/postgres-exporter.rb
+++ b/config/software/postgres-exporter.rb
@@ -39,6 +39,8 @@
   prom_version = Prometheus::VersionFlags.new(version)
 
   command "go build -ldflags '#{prom_version.print_ldflags}' ./cmd/postgres_exporter", env: env
+
+  mkdir "#{install_dir}/embedded/bin"
   copy 'postgres_exporter', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/postgresql_new.rb b/config/software/postgresql_new.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3Bvc3RncmVzcWxfbmV3LnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3Bvc3RncmVzcWxfbmV3LnJi 100644
--- a/config/software/postgresql_new.rb
+++ b/config/software/postgresql_new.rb
@@ -62,6 +62,10 @@
 
   link "#{prefix}/lib/#{libpq}", "#{install_dir}/embedded/lib/#{libpq}"
 
+  # NOTE: There are several dependencies which require these files in these
+  # locations and have dependency on `postgresql_new`. So when this block is
+  # changed to be in the `postgresql` software definition for default PG
+  # version changes, change those dependencies to `postgresql`.
   block 'link bin files' do
     Dir.glob("#{prefix}/bin/*").each do |bin_file|
       link bin_file, "#{install_dir}/embedded/bin/#{File.basename(bin_file)}"
diff --git a/config/software/prometheus.rb b/config/software/prometheus.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3Byb21ldGhldXMucmI=..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3Byb21ldGhldXMucmI= 100644
--- a/config/software/prometheus.rb
+++ b/config/software/prometheus.rb
@@ -50,6 +50,8 @@
 
   make 'build', env: env, cwd: cwd
   command "go build -tags netgo,builtinassets -ldflags '#{prom_version.print_ldflags}' ./cmd/prometheus", env: env, cwd: cwd
+
+  mkdir "#{install_dir}/embedded/bin"
   copy 'prometheus', "#{install_dir}/embedded/bin/prometheus"
 
   command "license_finder report --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/redis-exporter.rb b/config/software/redis-exporter.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3JlZGlzLWV4cG9ydGVyLnJi..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3JlZGlzLWV4cG9ydGVyLnJi 100644
--- a/config/software/redis-exporter.rb
+++ b/config/software/redis-exporter.rb
@@ -45,6 +45,8 @@
   ].join(' ')
 
   command "go build -ldflags '#{ldflags}'", env: env
+
+  mkdir "#{install_dir}/embedded/bin"
   copy 'redis_exporter', "#{install_dir}/embedded/bin/"
 
   command "license_finder report --enabled-package-managers godep gomodules --decisions-file=#{Omnibus::Config.project_root}/support/dependency_decisions.yml --format=json --columns name version licenses texts notice --save=license.json"
diff --git a/config/software/ruby-grpc.rb b/config/software/ruby-grpc.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3J1YnktZ3JwYy5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3J1YnktZ3JwYy5yYg== 100644
--- a/config/software/ruby-grpc.rb
+++ b/config/software/ruby-grpc.rb
@@ -22,6 +22,8 @@
 
 skip_transitive_dependency_licensing true
 
+dependency 'ruby'
+
 build do
   block 're-install grpc gem with system OpenSSL' do
     gem_bin = embedded_bin('gem')
diff --git a/config/software/spam-classifier.rb b/config/software/spam-classifier.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3NwYW0tY2xhc3NpZmllci5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3NwYW0tY2xhc3NpZmllci5yYg== 100644
--- a/config/software/spam-classifier.rb
+++ b/config/software/spam-classifier.rb
@@ -26,7 +26,7 @@
 license_file 'LICENSE.md'
 
 build do
-  command "mkdir -p #{install_dir}/embedded/service/spam-classifier"
+  mkdir "#{install_dir}/embedded/service/spam-classifier"
   sync './', "#{install_dir}/embedded/service/spam-classifier/", exclude: %w(dist tokenizer.pickle)
   copy "dist", "#{install_dir}/embedded/service/spam-classifier/preprocessor"
   copy "tokenizer.pickle", "#{install_dir}/embedded/service/spam-classifier/preprocessor/"
diff --git a/config/software/spamcheck.rb b/config/software/spamcheck.rb
index d8455488113da7d0740204fb36dfdcd062a91b81_Y29uZmlnL3NvZnR3YXJlL3NwYW1jaGVjay5yYg==..93d49b57343e0542f14d7771c8126f58ab31ee1f_Y29uZmlnL3NvZnR3YXJlL3NwYW1jaGVjay5yYg== 100644
--- a/config/software/spamcheck.rb
+++ b/config/software/spamcheck.rb
@@ -35,7 +35,8 @@
   env['GOPATH'] = "#{Omnibus::Config.source_dir}/spamcheck"
   env['PATH'] = "#{env['PATH']}:#{env['GOPATH']}/bin"
 
-  command "mkdir -p #{install_dir}/embedded/service #{install_dir}/embedded/bin"
+  mkdir "#{install_dir}/embedded/service"
+  mkdir "#{install_dir}/embedded/bin"
   sync './', "#{install_dir}/embedded/service/spamcheck/", exclude: %w(
     _support
     build