22
33set -ex
44
5+ sudo_wrapper () {
6+ if command -v sudo > /dev/null 2>&1 ; then
7+ SUDO=" sudo"
8+ else
9+ if [[ $EUID -ne 0 ]]; then
10+ echo " This script requires 'sudo' to install packages. Please install 'sudo' or run as root."
11+ exit 1
12+ fi
13+ SUDO=" "
14+ fi
15+ $SUDO " $@ "
16+ }
17+
518require_fetch ()
619{
720 if command -v curl > /dev/null 2>&1 ; then
@@ -18,7 +31,7 @@ require_fetch()
1831# https://github.com/cea-hpc/modules
1932install_environment_modules_apt () {
2033 echo " Installing environment-modules package..."
21- sudo apt-get install -y environment-modules
34+ sudo_wrapper apt-get install -y environment-modules
2235 echo " Environment-modules installed."
2336 echo " Sourcing modules.sh script to set up environment modules..."
2437 source /etc/profile.d/modules.sh
@@ -53,8 +66,8 @@ install_gcc_brew()
5366install_gcc_apt ()
5467{
5568 if [ " $version " == " latest" ]; then
56- sudo apt-get update
57- sudo apt-get install -y gcc gfortran g++
69+ sudo_wrapper apt-get update
70+ sudo_wrapper apt-get install -y gcc gfortran g++
5871 else
5972 # Check whether the system gcc version is the version we are after.
6073 cur=$( apt show gcc | grep " Version" | cut -d' :' -f3 | cut -d' -' -f1)
@@ -68,15 +81,15 @@ install_gcc_apt()
6881 fi
6982 else
7083 # Install the PPA for installing other versions of gcc.
71- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
72- sudo apt-get update
84+ sudo_wrapper add-apt-repository --yes ppa:ubuntu-toolchain-r/test
85+ sudo_wrapper apt-get update
7386 fi
7487
7588 if [ " ${needs_install} " == " 1" ]; then
76- sudo apt-get install -y gcc-${version} gfortran-${version} g++-${version}
89+ sudo_wrapper apt-get install -y gcc-${version} gfortran-${version} g++-${version}
7790 fi
7891
79- sudo update-alternatives \
92+ sudo_wrapper update-alternatives \
8093 --install /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 \
8194 --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${version} \
8295 --slave /usr/bin/gcov gcov /usr/bin/gcov-${version} \
@@ -367,25 +380,25 @@ install_intel_apt()
367380 require_fetch
368381 local _KEY=" GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB"
369382 $fetch https://apt.repos.intel.com/intel-gpg-keys/$_KEY > $_KEY
370- sudo apt-key add $_KEY
383+ sudo_wrapper apt-key add $_KEY
371384 rm $_KEY
372385 echo " deb https://apt.repos.intel.com/oneapi all main" \
373- | sudo tee /etc/apt/sources.list.d/oneAPI.list
374- sudo apt-get update
386+ | sudo_wrapper tee /etc/apt/sources.list.d/oneAPI.list
387+ sudo_wrapper apt-get update
375388
376389 if [ " $version " == " latest" ]; then
377- sudo apt-get install -y \
390+ sudo_wrapper apt-get install -y \
378391 intel-oneapi-compiler-fortran \
379392 intel-oneapi-compiler-dpcpp-cpp
380393 else
381394 # c/cpp compiler package names changed with 2024+
382395 case $version in
383396 2024* | 2025* )
384- sudo apt-get install -y \
397+ sudo_wrapper apt-get install -y \
385398 intel-oneapi-compiler-{fortran,dpcpp-cpp}-$version
386399 ;;
387400 * )
388- sudo apt-get install -y \
401+ sudo_wrapper apt-get install -y \
389402 intel-oneapi-compiler-{fortran,dpcpp-cpp-and-cpp-classic}-$version
390403 ;;
391404 esac
@@ -453,7 +466,7 @@ install_intel_dmg()
453466 require_fetch
454467 $fetch $MACOS_HPCKIT_URL > m_HPCKit.dmg
455468 hdiutil attach m_HPCKit.dmg
456- sudo /Volumes/" $( basename " $MACOS_HPCKIT_URL " .dmg) " /bootstrapper.app/Contents/MacOS/bootstrapper -s \
469+ sudo_wrapper /Volumes/" $( basename " $MACOS_HPCKIT_URL " .dmg) " /bootstrapper.app/Contents/MacOS/bootstrapper -s \
457470 --action install \
458471 --eula=accept \
459472 --continue-with-optional-error=yes \
@@ -589,10 +602,10 @@ install_nvidiahpc_apt()
589602
590603 # install NVIDIA HPC SDK
591604 echo " Installing NVIDIA HPC SDK $version ..."
592- curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg
593- echo ' deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
594- sudo apt-get update -y
595- sudo apt-get install -y nvhpc-$cversion
605+ curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo_wrapper gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg
606+ echo ' deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo_wrapper tee /etc/apt/sources.list.d/nvhpc.list
607+ sudo_wrapper apt-get update -y
608+ sudo_wrapper apt-get install -y nvhpc-$cversion
596609 echo " NVIDIA HPC SDK $version installed."
597610
598611 # load NVIDIA HPC SDK module
0 commit comments