diff --git a/utils/lib.sh b/utils/lib.sh index e9bfc929..50f15a69 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -1090,6 +1090,28 @@ touch "/.lxcenv" ls -l "/.lxcenv" EOF } + +# apt packages +LXC_BASE_PACKAGES_debian="git build-essential" + +# pacman packages +LXC_BASE_PACKAGES_arch="git base-devel" + +# dnf packages +LXC_BASE_PACKAGES_fedora="git @development-tools" + +case $DIST_ID in + ubuntu|debian) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_debian}" ;; + arch) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_arch}" ;; + fedora) LXC_BASE_PACKAGES="${LXC_BASE_PACKAGES_fedora}" ;; + *) err_msg "$DIST_ID-$DIST_VERS: pkg_install LXC_BASE_PACKAGES not yet implemented" ;; +esac + +lxc_install_base_packages() { + info_msg "install LXC_BASE_PACKAGES in container $1" + pkg_install "${LXC_BASE_PACKAGES}" +} + lxc_exists(){ # usage: lxc_exists || echo "container does not exists" diff --git a/utils/lxc.sh b/utils/lxc.sh index 56450c4d..6070735e 100755 --- a/utils/lxc.sh +++ b/utils/lxc.sh @@ -82,10 +82,10 @@ usage:: $_cmd [start|stop] [containers|] $_cmd show [info|config|suite|images] $_cmd cmd [--|] '...' - $_cmd install [suite|buildhost] + $_cmd install [suite|base|buildhost] build - :containers: build & launch all LXC containers of the suite + :containers: build, launch and 'install basic' packages on 'containers' copy: :images: copy remote images of the suite into local storage remove @@ -105,7 +105,8 @@ cmd :: run command '...' in container install :suite: install LXC suite; ${lxc_suite_install_info} - :buildhost: prepare LXC; buildhost + :base: prepare LXC; install basic packages + :buildhost: prepare LXC; install buildhost packages EOF usage_images @@ -217,6 +218,7 @@ main() { esac ;; __show) + # wrapped show commands, called once in each container case $2 in suite) lxc_suite_info ;; esac @@ -238,14 +240,17 @@ main() { install) sudo_or_exit case $2 in - suite) lxc_exec "${LXC_REPO_ROOT}/utils/lxc.sh" __install suite;; - buildhost) lxc_exec "${LXC_REPO_ROOT}/utils/lxc.sh" __install buildhost;; + suite|base|buildhost) + lxc_exec "${LXC_REPO_ROOT}/utils/lxc.sh" __install $2 + ;; *) usage "$_usage"; exit 42 ;; esac ;; __install) + # wrapped install commands, called once in each container case $2 in suite) lxc_suite_install ;; + base) FORCE_TIMEOUT=0 lxc_install_base_packages ;; buildhost) lxc_suite_prepare_buildhost ;; esac ;; @@ -269,6 +274,8 @@ build_instances() { lxc_config_containers lxc_boilerplate_containers echo + lxc_exec "${LXC_REPO_ROOT}/utils/lxc.sh" __install base + echo lxc list "$LXC_HOST_PREFIX" }