2
2
3
3
set -ex
4
4
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
+
5
18
require_fetch ()
6
19
{
7
20
if command -v curl > /dev/null 2>&1 ; then
@@ -18,7 +31,7 @@ require_fetch()
18
31
# https://github.com/cea-hpc/modules
19
32
install_environment_modules_apt () {
20
33
echo " Installing environment-modules package..."
21
- sudo apt-get install -y environment-modules
34
+ sudo_wrapper apt-get install -y environment-modules
22
35
echo " Environment-modules installed."
23
36
echo " Sourcing modules.sh script to set up environment modules..."
24
37
source /etc/profile.d/modules.sh
@@ -53,8 +66,8 @@ install_gcc_brew()
53
66
install_gcc_apt ()
54
67
{
55
68
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++
58
71
else
59
72
# Check whether the system gcc version is the version we are after.
60
73
cur=$( apt show gcc | grep " Version" | cut -d' :' -f3 | cut -d' -' -f1)
@@ -68,15 +81,15 @@ install_gcc_apt()
68
81
fi
69
82
else
70
83
# 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
73
86
fi
74
87
75
88
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}
77
90
fi
78
91
79
- sudo update-alternatives \
92
+ sudo_wrapper update-alternatives \
80
93
--install /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 \
81
94
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${version} \
82
95
--slave /usr/bin/gcov gcov /usr/bin/gcov-${version} \
@@ -367,25 +380,25 @@ install_intel_apt()
367
380
require_fetch
368
381
local _KEY=" GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB"
369
382
$fetch https://apt.repos.intel.com/intel-gpg-keys/$_KEY > $_KEY
370
- sudo apt-key add $_KEY
383
+ sudo_wrapper apt-key add $_KEY
371
384
rm $_KEY
372
385
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
375
388
376
389
if [ " $version " == " latest" ]; then
377
- sudo apt-get install -y \
390
+ sudo_wrapper apt-get install -y \
378
391
intel-oneapi-compiler-fortran \
379
392
intel-oneapi-compiler-dpcpp-cpp
380
393
else
381
394
# c/cpp compiler package names changed with 2024+
382
395
case $version in
383
396
2024* | 2025* )
384
- sudo apt-get install -y \
397
+ sudo_wrapper apt-get install -y \
385
398
intel-oneapi-compiler-{fortran,dpcpp-cpp}-$version
386
399
;;
387
400
* )
388
- sudo apt-get install -y \
401
+ sudo_wrapper apt-get install -y \
389
402
intel-oneapi-compiler-{fortran,dpcpp-cpp-and-cpp-classic}-$version
390
403
;;
391
404
esac
@@ -453,7 +466,7 @@ install_intel_dmg()
453
466
require_fetch
454
467
$fetch $MACOS_HPCKIT_URL > m_HPCKit.dmg
455
468
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 \
457
470
--action install \
458
471
--eula=accept \
459
472
--continue-with-optional-error=yes \
@@ -589,10 +602,10 @@ install_nvidiahpc_apt()
589
602
590
603
# install NVIDIA HPC SDK
591
604
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
596
609
echo " NVIDIA HPC SDK $version installed."
597
610
598
611
# load NVIDIA HPC SDK module
0 commit comments