我正在嘗試從 Ubuntu 映像構建一個專案作為 CI 管道的一部分。
我粘貼了下面記錄的最后幾行:
Not updating system_requirements. CONAN_SYSREQUIRES_MODE=verify
Running: sudo -A apt-get install -y --no-install-recommends libfontenc-dev libice-dev libsm-dev libx11-xcb-dev libxaw7-dev libxcb-dri3-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xkb-data
/bin/sh: 1: sudo: not found
xorg/system: ERROR: while executing system_requirements(): Command 'sudo -A apt-get install -y --no-install-recommends libfontenc-dev libice-dev libsm-dev libx11-xcb-dev libxaw7-dev libxcb-dri3-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xkb-data' failed
ERROR: Error in system requirements
CMake Error at build/conan.cmake:631 (message):
Conan install failed='1'
Call Stack (most recent call first):
cmake/Conan.cmake:47 (conan_cmake_install)
CMakeLists.txt:42 (run_conan)
-- Configuring incomplete, errors occurred!
這是因為 thngs 已經以 root 用戶身份運行了嗎?如果是這樣,有沒有辦法讓柯南在不呼叫的情況下運行sudo?
對于那些想要重現錯誤的人:
- 啟動
ubuntu:20.10docker 鏡像 - 跑
$ apt update && apt install -y python3-pip pkg-config libudev-dev libgl-dev
- 安裝柯南:
pip install conan conanfile.txt使用以下內容創建一個
[requires]
sfml/2.5.1
- 跑
conan install path/to/conanfile.txt - 觀察上面粘貼的錯誤
uj5u.com熱心網友回復:
當您libA在 conanfile 中指定為依賴項時,它還會安裝libA. 但是,conan 中的一些包(不是很多)也有“系統要求”。系統要求只是包的另一個依賴項,但尚未打包為 conan 包而是通過系統包管理器安裝的依賴項。您嘗試安裝的軟體包至少具有一項系統要求。
當有系統需求時,conan 將需要管理權限,因為它會呼叫您的系統包管理器來安裝該需求。在 Linux 的情況下,管理權限意味著使用sudo. 但是,您在 CI 中使用的影像沒有 sudo。
如果可以,只需使用包含 sudo 的其他影像,它應該可以作業。
您還可以查看您嘗試使用的 conan 包的配方。包可以提供選項,您嘗試使用的包可能有一些選項,例如,不啟用某些功能,因此不依賴于某些庫。
要獲得更多資訊,您需要告知您正在嘗試使用哪個包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/389964.html
