@@ -22668,6 +22668,12 @@ function debugLog(message) {
2266822668 }
2266922669 core.debug(message);
2267022670}
22671+ function hasRootPrivileges() {
22672+ if (process.getuid && typeof process.getuid === "function") {
22673+ return process.getuid() === 0;
22674+ }
22675+ return false;
22676+ }
2267122677
2267222678// src/const.ts
2267322679var START_SUPPORTED_CUDA_VERSION = "10.0";
@@ -23077,9 +23083,13 @@ var fs2 = __toESM(require("fs"));
2307723083var path = __toESM(require("path"));
2307823084var tc = __toESM(require_tool_cache());
2307923085var io = __toESM(require_io());
23086+ function getSudoPrefix() {
23087+ return hasRootPrivileges() ? "" : "sudo";
23088+ }
2308023089async function installCudaLinuxLocal(installerPath) {
2308123090 core2.info("Installing CUDA on Linux...");
23082- const command = `sudo sh ${installerPath}`;
23091+ const sudoPrefix = getSudoPrefix();
23092+ const command = `${sudoPrefix} sh ${installerPath}`.trim();
2308323093 const installArgs = ["--silent", "--override", "--toolkit"];
2308423094 debugLog(`Executing: ${command} ${installArgs.join(" ")}`);
2308523095 await exec.exec(command, installArgs);
@@ -23144,6 +23154,7 @@ async function installCudaLinuxNetwork(version, arch2, osInfo) {
2314423154 }
2314523155 const repoUrl = cudaRepoAndPackage.repoUrl;
2314623156 const packageName = cudaRepoAndPackage.packageName;
23157+ const sudoPrefix = getSudoPrefix();
2314723158 let cudaPath = void 0;
2314823159 try {
2314923160 if (isDebianBased(osInfo)) {
@@ -23155,21 +23166,25 @@ async function installCudaLinuxNetwork(version, arch2, osInfo) {
2315523166 }
2315623167 repoFilePath = path.resolve(repoFilePath);
2315723168 if (repoUrl.endsWith(".deb")) {
23158- await exec.exec(`sudo dpkg -i ${repoFilePath}`);
23159- await exec.exec(`sudo apt-get update`);
23169+ await exec.exec(`${sudoPrefix} dpkg -i ${repoFilePath}`.trim() );
23170+ await exec.exec(`${sudoPrefix} apt-get update`.trim() );
2316023171 } else if (repoUrl.endsWith(".pin")) {
23161- await exec.exec(`sudo mv ${repoFilePath} /etc/apt/preferences.d/cuda-repository-pin-600`);
23172+ await exec.exec(
23173+ `${sudoPrefix} mv ${repoFilePath} /etc/apt/preferences.d/cuda-repository-pin-600`.trim()
23174+ );
2316223175 const repoRootUrl = repoUrl.replace(/\/[\w.-]+\.pin$/, "");
23163- await exec.exec(`sudo add-apt-repository "deb ${repoRootUrl} /"`);
23164- await exec.exec(`sudo apt-get update`);
23176+ await exec.exec(`${sudoPrefix} add-apt-repository "deb ${repoRootUrl} /"`.trim() );
23177+ await exec.exec(`${sudoPrefix} apt-get update`.trim() );
2316523178 }
23166- await exec.exec(`sudo apt-get install -y ${packageName}`);
23179+ await exec.exec(`${sudoPrefix} apt-get install -y ${packageName}`.trim() );
2316723180 cudaPath = "/usr/local/cuda";
2316823181 } else if (isFedoraBased(osInfo)) {
2316923182 const packageManagerCommand = await getPackageManagerCommand(osInfo);
23170- await exec.exec(`sudo ${packageManagerCommand} config-manager --add-repo ${repoUrl}`);
23171- await exec.exec(`sudo ${packageManagerCommand} clean all`);
23172- await exec.exec(`sudo ${packageManagerCommand} install -y ${packageName}`);
23183+ await exec.exec(
23184+ `${sudoPrefix} ${packageManagerCommand} config-manager --add-repo ${repoUrl}`.trim()
23185+ );
23186+ await exec.exec(`${sudoPrefix} ${packageManagerCommand} clean all`.trim());
23187+ await exec.exec(`${sudoPrefix} ${packageManagerCommand} install -y ${packageName}`.trim());
2317323188 cudaPath = "/usr/local/cuda";
2317423189 }
2317523190 } catch (error) {
0 commit comments