Что такое ConanException: ошибка 32512 при выполнении команды conan install?
Я пытаюсь выполнить исходную команду из информации о пакете, который он собирает, но при попытке установить ее я получаю следующую ошибку.
sh: 1: source: not found
ERROR: package_name/7.0@repo/stable: Error in package_info() method, line 23
self.run("source "+self.package_folder+"/pkgsdp-env.sh")
ConanException: Error 32512 while executing source /home/tusharecmc/.conan/data/pkg/7.0/repo/stable/package/4db1be536558d833e52e862fd84d64d75c2b3656/pkgsdp-env.sh
Мой conanfile.py следующий
from conans import ConanFile, tools
class pkgConan(ConanFile):
name = "qnx"
version = "7.0"
settings = {"os":["Linux"],
"arch":["x86_64"]
}
description = "Package for qnx os 7.0"
url = "None"
license = "None"
author = "None"
topics = ["pkg","os"]
def package(self):
self.copy("*")
self.copy("pkgsdp-env.sh", src="./pkg700/")
def package_info(self):
self.cpp_info.libs = tools.collect_libs(self)
self.env_info.path.append(self.package_folder+"/pkg700")
self.run("source "+self.package_folder+"/pkgsdp-env.sh")
1 ответ
Я давно создал пакет Conan, и впервые вижу, как кто-то пытается запустить источник по рецепту. Ваша команда не будет работать, потому что ваша система использует / bin / dash, которая не поддерживает источник команды.
Я бы сказал, чтобы изменить разрешение и запустить его напрямую:
qnxsdpenv = os.path.join(self.package_folder, "qnxsdp-env.sh")
permission = stat.S_IMODE(os.lstat(qnxsdpenv).st_mode)
os.chmod(qnxsdpenv, (permission | stat.S_IEXEC))
self.run(qnxsdpenv)
Но если qnxsdp-env.sh устанавливает только несколько переменных env, я бы установил их с помощью self.env_info, намного чище и удобочитаемее.