diff --git a/stack/erp5/buildout.cfg b/stack/erp5/buildout.cfg
index 81fe56d0969daf7a660f3528b015561ce0d08673..ce6c7dd35fe368645c54094b05df5c1ee8add172 100644
--- a/stack/erp5/buildout.cfg
+++ b/stack/erp5/buildout.cfg
@@ -203,8 +203,9 @@ md5sum = 564006953b7d7a12d40a14b6648b32f0
 # XXX: "template.cfg" is hardcoded in instanciation recipe
 filename = template.cfg
 template = ${:_profile_base_location_}/instance.cfg.in
-md5sum = c2cef018336278242624162ab2885b61
+md5sum = d686512d2dbb2ec5e3b2526e86d250e5
 extra-context =
+    key zope_binary_links template-zope:binary-links
     key apache_location apache:location
     key aspell_location aspell:location
     key buildout_bin_directory buildout:bin-directory
@@ -212,7 +213,6 @@ extra-context =
     key curl_location curl:location
     key dash_location dash:location
     key dcron_location dcron:location
-    key dmtx_utils_location dmtx-utils:location
     key erp5_location erp5:location
     key file_location file:location
     key findutils_location findutils:location
@@ -220,12 +220,9 @@ extra-context =
     key fonts_location fonts:location
     key freetype_location freetype:location
     key gettext_location gettext:location
-    key git_location git:location
-    key graphviz_location graphviz:location
     key grep_location grep:location
     key gzip_location gzip:location
     key haproxy_location haproxy:location
-    key imagemagick_location imagemagick:location
     key jsl_location jsl:location
     key kumo_location kumo:location
     key libICE_location libICE:location
@@ -245,7 +242,6 @@ extra-context =
     key openssl_location openssl:location
     key perl_location perl:location
     key perl_siteprefix perl:siteprefix
-    key poppler_location poppler:location
     key sed_location sed:location
     key sixtunnel_location 6tunnel:location
     key stunnel_location stunnel:location
@@ -261,8 +257,6 @@ extra-context =
     key template_zeo template-zeo:target
     key template_zope template-zope:target
     key template_zope_conf template-zope-conf:target
-    key tesseract_location tesseract:location
-    key w3m_location w3m:location
     key wget_location wget:location
     key zlib_location zlib:location
 
@@ -284,7 +278,27 @@ md5sum = 8453652206eac7b165c86cf236b87cbf
 [template-zope]
 < = download-base
 filename = instance-zope.cfg.in
-md5sum = bc57fc59618efd07006d2aed0a0faddb
+md5sum = a2a2d830124c839aefc6739353cb3f66
+binary-links =
+  ${coreutils:location}/bin/basename
+  ${coreutils:location}/bin/cat
+  ${coreutils:location}/bin/cp
+  ${coreutils:location}/bin/ls
+  ${coreutils:location}/bin/tr
+  ${coreutils:location}/bin/uname
+  ${dmtx-utils:location}/bin/dmtxwrite
+  ${git:location}/bin/git
+  ${graphviz:location}/bin/dot
+  ${grep:location}/bin/grep
+  ${imagemagick:location}/bin/convert
+  ${imagemagick:location}/bin/identify
+  ${openssl:location}/bin/openssl
+  ${poppler:location}/bin/pdfinfo
+  ${poppler:location}/bin/pdftohtml
+  ${poppler:location}/bin/pdftotext
+  ${sed:location}/bin/sed
+  ${tesseract:location}/bin/tesseract
+  ${w3m:location}/bin/w3m
 
 [template-balancer]
 < = download-base
diff --git a/stack/erp5/instance-zope.cfg.in b/stack/erp5/instance-zope.cfg.in
index fa4635506f8d82a55be94d6c6a857a089ed06d26..2c51b2da6ba67b1467502c81a1dcc71578813159 100644
--- a/stack/erp5/instance-zope.cfg.in
+++ b/stack/erp5/instance-zope.cfg.in
@@ -32,7 +32,7 @@ run-test-suite-binary = {{ parameter_dict['bin-directory'] }}/runTestSuite
 
 [test-certificate-authority]
 recipe = slapos.cookbook:certificate_authority
-openssl-binary = ${binary-link:target-directory}/bin/openssl
+openssl-binary = ${binary-link:target-directory}/openssl
 ca-dir = ${directory:test-ca-dir}
 requests-directory = ${directory:ca-requests}
 wrapper = ${directory:services}/test-ca
@@ -75,25 +75,9 @@ ca-crl = ${:test-ca-dir}/crl
 recipe = slapos.cookbook:symbolic.link
 target-directory = ${directory:bin}
 link-binary =
-  {{ parameter_dict['coreutils'] }}/bin/basename
-  {{ parameter_dict['coreutils'] }}/bin/cat
-  {{ parameter_dict['coreutils'] }}/bin/cp
-  {{ parameter_dict['coreutils'] }}/bin/ls
-  {{ parameter_dict['coreutils'] }}/bin/tr
-  {{ parameter_dict['coreutils'] }}/bin/uname
-  {{ parameter_dict['git'] }}/bin/git
-  {{ parameter_dict['graphviz'] }}/bin/dot
-  {{ parameter_dict['grep'] }}/bin/grep
-  {{ parameter_dict['imagemagick'] }}/bin/convert
-  {{ parameter_dict['imagemagick'] }}/bin/identify
-  {{ parameter_dict['sed'] }}/bin/sed
-  {{ parameter_dict['tesseract'] }}/bin/tesseract
-  {{ parameter_dict['w3m'] }}/bin/w3m
-  {{ parameter_dict['openssl'] }}/bin/openssl
-  {{ parameter_dict['poppler'] }}/bin/pdfinfo
-  {{ parameter_dict['poppler'] }}/bin/pdftotext
-  {{ parameter_dict['poppler'] }}/bin/pdftohtml
-  {{ parameter_dict['dmtx-utils'] }}/bin/dmtxwrite
+{%- for bin in parameter_dict['binary-links'].splitlines() %}
+  {{ bin }}
+{%- endfor %}
 
 [certificate-authority-common]
 requests-directory = ${directory:requests}
@@ -106,7 +90,7 @@ ca-crl = ${directory:crl}
 [certificate-authority]
 < = certificate-authority-common
 recipe = slapos.cookbook:certificate_authority
-openssl-binary = {{ parameter_dict['openssl'] }}/bin/openssl
+openssl-binary = ${binary-link:target-directory}/openssl
 wrapper = ${directory:services}/ca
 
 {% if use_ipv6 -%}
diff --git a/stack/erp5/instance.cfg.in b/stack/erp5/instance.cfg.in
index cae056af426d8d684855ead8fa5496a15ccffe93..7474e9bceec10493a3e87efe802dc990c61a5ceb 100644
--- a/stack/erp5/instance.cfg.in
+++ b/stack/erp5/instance.cfg.in
@@ -128,21 +128,13 @@ extra-context =
 bin-directory = {{ bin_directory }}
 zope-conf-template = {{ template_zope_conf }}
 instance-logrotate-cfg = {{ template_logrotate_base }}
-git = {{ git_location }}
-graphviz = {{ graphviz_location }}
 buildout-bin-directory = {{ buildout_bin_directory }}
-coreutils = {{ coreutils_location }}
-grep = {{ grep_location }}
-imagemagick = {{ imagemagick_location }}
-sed = {{ sed_location }}
-tesseract = {{ tesseract_location }}
-w3m = {{ w3m_location }}
-poppler = {{ poppler_location }}
-dmtx-utils = {{ dmtx_utils_location }}
-openssl = {{ openssl_location }}
 6tunnel = {{ sixtunnel_location }}
 dash = {{ dash_location }}
 jsl = {{ jsl_location }}
+binary-links =
+{%- for path in zope_binary_links.splitlines() %}  {{ path }}
+{% endfor %}
 
 [dynamic-template-zope]
 < = jinja2-template-base