--- /dev/null
+. lib/apt_get_edited
+. lib/ensure_packages_of_tags
+
+minimize_installation() {
+ _INSTALL_TAGS="$@"
+
+ echo '### minimize_installation: narrow system to what's required explicitly by us and Debian'
+ _PATH_LIST_PREFIX=/tmp/list_
+ _TOK_REQ=' required'
+
+ echo "# Collect packages deemed '${_TOK_REQ}' by Debian: "
+ _PATH_LIST_UNSORTED="${_PATH_LIST_PREFIX}unsorted"
+ dpkg-query -Wf '${Package} ${Priority}\n' | grep "${_TOK_REQ}" | cut -d' ' -f1 > "${_PATH_LIST_UNSORTED}"
+ _PATH_LIST_WHITE="${_PATH_LIST_PREFIX}white"
+ sort "${_PATH_LIST_UNSORTED}" > "${_PATH_LIST_WHITE}"
+ echo $(cat "${_PATH_LIST_WHITE})
+
+ echo -n '# Collect installed packages outside this selection: '
+ dpkg-query -Wf '${Package}\n' > "${_PATH_LIST_UNSORTED}"
+ _PATH_LIST_ALL_PACKAGES="${_PATH_LIST_PREFIX}all_packages"
+ sort "${_PATH_LIST_UNSORTED}" > "${_PATH_LIST_ALL_PACKAGES}"
+ _PATH_LIST_BLACK="${_PATH_LIST_PREFIX}black"
+ comm -3 "${_PATH_LIST_ALL_PACKAGES}" "${_PATH_LIST_WHITE}" > "${_PATH_LIST_BLACK}"
+ echo $(cat "${_PATH_LIST_BLACK})
+
+ echo '# apt-mark auto packages from diff …'
+ apt-mark auto `cat "${_PATH_LIST_BLACK}"` > /dev/null
+ rm "${_PATH_LIST_UNSORTED}" "${_PATH_LIST_ALL_PACKAGES}" "${_PATH_LIST_WHITE}" "${_PATH_LIST_BLACK}"
+
+ echo '# install or mark as manually installed packages from our own selections …'
+ ensure_packages_of_tags ${_INSTALL_TAGS}
+
+ echo '# run autopurge to get rid of all unwanted packages …'
+ apt_get_edited '-q -q autopurge'
+}