diff --git a/component/dcron/buildout.cfg b/component/dcron/buildout.cfg
index 6fec9929b437b6d55bccb4059bd7cddcc903651b..ec0eee722b9996b0fec403cc4ddd5e675c06eab7 100644
--- a/component/dcron/buildout.cfg
+++ b/component/dcron/buildout.cfg
@@ -8,6 +8,7 @@ parts = dcron-output
 
 [dcron]
 recipe = slapos.recipe.cmmi
+shared = false
 url = http://www.jimpryor.net/linux/releases/dcron-4.4.tar.gz
 md5sum = 02d848ba043a9df5bf2102a9f4bc04bd
 configure-command = true
diff --git a/component/mosh/buildout.cfg b/component/mosh/buildout.cfg
index 579c84b1b97b38fd000dbba4dc7ef7af4f1d4f23..be334cbcd89b52e025d3c64e6ab7c66c7f6f6ba6 100644
--- a/component/mosh/buildout.cfg
+++ b/component/mosh/buildout.cfg
@@ -9,6 +9,7 @@ extends =
 
 [mosh]
 recipe = slapos.recipe.cmmi
+shared = true
 url = https://mosh.org/mosh-1.3.0.tar.gz
 md5sum = d961276995936953bf2d5a794068b076
 configure-options =
diff --git a/component/nano/buildout.cfg b/component/nano/buildout.cfg
index 19f31878fafffe92322c69d4c51786d4ff76b9f5..2ea8d8df2c537315273ba52507bf8311d7a11a0a 100644
--- a/component/nano/buildout.cfg
+++ b/component/nano/buildout.cfg
@@ -8,8 +8,10 @@ extends =
 
 [nano]
 recipe = slapos.recipe.cmmi
+shared = true
 url = http://www.nano-editor.org/dist/v2.8/nano-2.8.4.tar.xz
 md5sum = 02ff28870194178595b287fc16fa611b
+location = @@LOCATION@@
 # The dummy PKG_CONFIG is in the case that both pkg-config and ncursesw
 # are installed on the system.
 environment=
@@ -17,7 +19,6 @@ environment=
   NCURSESW_CONFIG=${ncurses:location}/bin/ncursesw6-config
   CPPFLAGS=-I${file:location}/include
   LDFLAGS=-L${file:location}/lib/ -Wl,-rpath=${file:location}/lib/
-location = ${buildout:parts-directory}/${:_buildout_section_name_}
 post-install =
   cd ${:location} && mkdir etc &&
   echo include "${:location}/share/nano/*.nanorc" > etc/nanorc
diff --git a/component/nginx/buildout.cfg b/component/nginx/buildout.cfg
index 9c890b4b42ccdbe88c08b01460cebe8bc33d6da4..f5d0d0355339d126e9535fc0074b253a9b7123a2 100644
--- a/component/nginx/buildout.cfg
+++ b/component/nginx/buildout.cfg
@@ -12,11 +12,13 @@ parts = nginx-output
 
 [nginx-common]
 recipe = slapos.recipe.cmmi
+shared = false
 url = https://nginx.org/download/nginx-1.17.1.tar.gz
 md5sum = 51021f3e8204a5fc809f5e695a4508db
 
 [nginx]
 <= nginx-common
+shared = true
 configure-options=
   --with-http_ssl_module
   --with-http_v2_module
diff --git a/component/openssh/buildout.cfg b/component/openssh/buildout.cfg
index 2a91983c8754a48944c5cbec36d95afe198aa23a..07798b0e6c1b6ce31012e21ed52efcf42a872663 100644
--- a/component/openssh/buildout.cfg
+++ b/component/openssh/buildout.cfg
@@ -15,7 +15,9 @@ parts =
 
 [openssh]
 recipe = slapos.recipe.cmmi
+shared = true
 md5sum = 68ba883aff6958297432e5877e9a0fe2
+location = @@LOCATION@@
 url = https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
 patch-binary = ${patch:location}/bin/patch
 patch-options = -p1
@@ -25,9 +27,9 @@ environment =
   CPPFLAGS=-I${zlib:location}/include -I${openssl-1.0:location}/include
   LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${openssl-1.0:location}/lib -Wl,-rpath=${openssl-1.0:location}/lib
 configure-options = 
-  --prefix=${buildout:parts-directory}/${:_buildout_section_name_}
-  --exec-prefix=${buildout:parts-directory}/${:_buildout_section_name_}
-  --with-privsep-path=${buildout:parts-directory}/${:_buildout_section_name_}/var/empty
+  --prefix=${:location}
+  --exec-prefix=${:location}
+  --with-privsep-path=${:location}/var/empty
 
 [openssh-output]
 # Shared binary location to ease migration
diff --git a/component/protobuf/buildout.cfg b/component/protobuf/buildout.cfg
index ca04d900799ede09e0342b4a3d3f9291ccde52c1..869cad6b13115496957d6f1b8f2088437b8f4aae 100644
--- a/component/protobuf/buildout.cfg
+++ b/component/protobuf/buildout.cfg
@@ -3,10 +3,12 @@ parts = protobuf
 
 [protobuf]
 recipe = slapos.recipe.cmmi
+shared = true
 url = https://github.com/google/protobuf/releases/download/v3.4.0/protobuf-python-3.4.0.tar.gz
 md5sum = 0820cc2e56d71aef8e99794fcbd184cd
 
 [protobuf-cpp]
 recipe = slapos.recipe.cmmi
+shared = true
 url = https://github.com/google/protobuf/releases/download/v3.4.0/protobuf-cpp-3.4.0.tar.gz
 md5sum = 6d59dad503bea5ad420fd09ddad84481
diff --git a/component/rsync/buildout.cfg b/component/rsync/buildout.cfg
index 9effb0f60ee33a64d9fcbe9ed8e1f821f58ae404..e1f57b203fec51b132761517d666c29c43e95942 100644
--- a/component/rsync/buildout.cfg
+++ b/component/rsync/buildout.cfg
@@ -7,9 +7,10 @@ parts =
 
 [rsync]
 recipe = slapos.recipe.cmmi
+shared = true
 url = https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz
 md5sum = 1581a588fde9d89f6bc6201e8129afaf
 make-options =
-  PREFIX=${buildout:parts-directory}/${:_buildout_section_name_}
+  PREFIX=@@LOCATION@@
 environment =
   PATH=${perl:location}/bin:%(PATH)s
diff --git a/component/screen/buildout.cfg b/component/screen/buildout.cfg
index c4cb7158e846579b7ccf99ef9cbf6a683820af5f..4a36be0252c0fb76fe67c61e17a46b214229c22d 100644
--- a/component/screen/buildout.cfg
+++ b/component/screen/buildout.cfg
@@ -7,6 +7,7 @@ extends =
 
 [screen]
 recipe = slapos.recipe.cmmi
+shared = true
 url = http://ftp.gnu.org/gnu/screen/screen-${:version}.tar.gz
 version = 4.5.1
 md5sum = a8c5da2f42f8a18fa4dada2419d1549b
diff --git a/component/texinfo/buildout.cfg b/component/texinfo/buildout.cfg
index 057a0ec7c850c702e22950a8385e6630d8ed3e0b..eb6e16bcc224990965c623105825fa79c6c73ece 100644
--- a/component/texinfo/buildout.cfg
+++ b/component/texinfo/buildout.cfg
@@ -9,6 +9,7 @@ extends =
 
 [texinfo4]
 recipe = slapos.recipe.cmmi
+shared = true
 url = http://ftp.gnu.org/gnu/texinfo/texinfo-4.13.tar.gz
 md5sum = 71ba711519209b5fb583fed2b3d86fcb
 configure-options =
diff --git a/component/tig/buildout.cfg b/component/tig/buildout.cfg
index f124fb4791dfe69c0857adb80fb34f13ec33f7d6..f237135ccd39c729fa2f9e26427c6bd9197138d8 100644
--- a/component/tig/buildout.cfg
+++ b/component/tig/buildout.cfg
@@ -7,6 +7,7 @@ extends =
 
 [tig]
 recipe = slapos.recipe.cmmi
+shared = true
 url = http://jonas.nitro.dk/tig/releases/tig-2.1.tar.gz
 md5sum = d6c237aba2c03d85897da79789fd6104
 environment =
diff --git a/component/vim/buildout.cfg b/component/vim/buildout.cfg
index a97e3299c49ad61b5b689bc8f791a1be6dbf8958..4f84cb8d33b9a79983794cda42565230b9aa6216 100644
--- a/component/vim/buildout.cfg
+++ b/component/vim/buildout.cfg
@@ -8,6 +8,7 @@ extends =
 
 [vim]
 recipe = slapos.recipe.cmmi
+shared = true
 url = ftp://ftp.vim.org/pub/vim/unix/vim-8.0.586.tar.bz2
 md5sum = b35e794140c196ff59b492b56c1e73db
 environment=
diff --git a/component/zip/buildout.cfg b/component/zip/buildout.cfg
index a92076beacda80c8383fc8e7dc4e690581670d84..91afb6a28922e7880c0eec1f4f52aad3588539f3 100644
--- a/component/zip/buildout.cfg
+++ b/component/zip/buildout.cfg
@@ -3,8 +3,8 @@ parts = zip
 
 [zip]
 recipe = slapos.recipe.cmmi
+shared = true
 url = http://downloads.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz
 md5sum = 7b74551e63f8ee6aab6fbc86676c0d37
-location = ${buildout:parts-directory}/${:_buildout_section_name_}
 configure-command = true
-make-options = prefix=${:location} NO_BZIP2_SUPPORT=1 -f unix/Makefile generic
+make-options = prefix=@@LOCATION@@ NO_BZIP2_SUPPORT=1 -f unix/Makefile generic