# Copyright (c) 2016, Maciej Sieczka. All rights reserved # # Minimal installation process is defined in mods/linux_build_arch.smod. A # couple extra actions are called from here using RunCmd and InstallPkgs # Singularity bootstrap keywords. Adjust them as needed. # https://wiki.archlinux.org/index.php/Installation_Guide may come in handy. DistType "arch" # "Setup" keyword doesn't do anything anymore, at least as of Singularity # 2.1.2. Undocumented "PreSetup" replaced it and is called at each # `singularity bootstrap' run. # Setup Bootstrap # Set time zone. Use whatever you prefer instead of UTC. RunCmd ln -s /usr/share/zoneinfo/UTC /etc/localtime # WARNING: Make sure you prefix the STDOUT redirection target (ie. that guy # after `>' or `>>`) with $SINGULARITY_BUILD_ROOT in RunCmd calls, as below. # Otherwise such command will write to host's filesystem, at least as of # Singularity 2.1.2! This is a known issue, going to be fixed. See # https://github.com/gmkurtzer/singularity/issues/200. # Set locale. Use whatever you prefer instead of en_US. RunCmd echo 'en_US.UTF-8 UTF-8' > "$SINGULARITY_BUILD_ROOT"/etc/locale.gen # Add more locales as needed, eg: # RunCmd echo 'pl_PL.UTF-8 UTF-8' >> "$SINGULARITY_BUILD_ROOT"/etc/locale.gen RunCmd locale-gen RunCmd echo 'LANG=en_US.UTF-8' > "$SINGULARITY_BUILD_ROOT"/etc/locale.conf # Mind that Singularity's shell will use host's locale no matter what anyway, # as of version 2.1.2. This may change in a future release. # Set the package mirror server(s). This is only for the output image's # mirrorlist. `pacstrap' can only use your hosts's package mirrors. RunCmd echo 'Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch' > "$SINGULARITY_BUILD_ROOT"/etc/pacman.d/mirrorlist # Add any number of fail-over servers, eg: RunCmd echo 'Server = https://archlinux.honkgong.info/$repo/os/$arch' >> "$SINGULARITY_BUILD_ROOT"/etc/pacman.d/mirrorlist # I need VIM and Bash completion. Specify your extra packages as needed. InstallPkgs vim bash-completion # Remove the packages downloaded to image's Pacman cache dir during # InstallPkgs. BTW, `pacstrap', used in Bootstrap step, uses host's package # cache rather than the image's. RunCmd paccache -r -k0 Cleanup