我目前正在为CI管道设置不同的代理。我正在使用Microsoft托管的CMake 3.12.4随附的Ubuntu 18.04代理。
但是,我们的项目需要CMake 3.14.5。通常,我会尝试更新CMake,但标准存储库不提供所需的版本。
我尝试使用Kitware APT存储库更新cmake,但cmake --version
仍输出3.12.4。
我原以为该更新将覆盖cmake命令,但它仍然引用旧版本。
我之前也曾尝试删除旧的cmake版本,但收到一条消息,提示找不到cmake。
我现在要做的所有工作就是通过外壳从https://cmake.org
下载所需的版本,并使用make进行安装。
这行得通,还使我以后可以将- task: CMake@1
与正确的新安装版本一起使用。
我想知道是否存在另一种将CMake更新到特定版本的方法,因为下载和安装CMake大约需要10分钟。
答案 0 :(得分:4)
如果您确实想安装CMake 3.14.5
并在我们的Hosted Ubuntu代理的下一个任务中使用它,则必须首先remove
它们,然后re-install
相应的版本。由于cmake
与某些模块或软件包不同,因此您必须将其安装到系统中。换句话说,仅下载该软件包实际上无法覆盖默认版本3.12.4
。
因此,您必须使用类似的脚本来实现版本升级:
echo Write your commands here
sudo apt remove cmake
wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz
tar xf cmake-3.14.5.tar.gz
cd cmake-3.14.5
./configure
sudo make install
cmake --version
以上步骤/逻辑并不复杂,只需从代理中删除cmake
,从官方tar.gz
下载软件包(cmake
),然后解压缩并将其安装到Hosted agent中即可。
但是,与将cmake
安装到本地Linux系统中一样,最后一步 install
将花费更多时间,这意味着它将导致您的构建花费将近15分钟的时间来完成对Hosted linux agent作业的安装。
无论如何,非常感谢您对我们托管的经纪人的热爱,现在我需要做一些事情,不要让这个喜欢的人失望。
我进行了提交,并将拉取请求提出到我们的存储库中:Update cmake.sh to 3.15 stable。此 PR 将被合并,并且在我们的PM审核后,所需的cmake
版本将可用。我非常确定下周,可以为您提供满意的托管Ubuntu代理,并且您不需要其他脚本,只需花费 15 分钟即可升级任何 cmake 版本更多。
答案 1 :(得分:0)
每次使用Microsoft托管的代理运行管道时,都会获得一个新的虚拟机。使用一次后,虚拟机将被丢弃。因此,每次更新CMake都很麻烦。
您可以部署自托管代理,然后为自托管代理启用CMake。自托管代理使您可以更好地控制安装构建和部署所需的从属软件。而且,机器级别的缓存和配置在每次运行时都会持续存在,这可以提高速度。
以下是为自托管代理启用CMake的步骤:
2。Install CMake,并确保将其添加到代理在您的代理计算机上运行的用户的路径。
3。在Web浏览器中,导航到代理池:选择“ Azure DevOps->组织设置->选择代理池”。
4。转到功能选项卡: 在代理商池标签->选择所需的代理商池->选择代理商并选择所需的代理商->选择功能标签>
5。单击添加功能,然后将字段设置为cmake
和yes
。
6。单击保存更改。
有关详细信息,请参阅此document。