• 云端_C++包管理工具_CI/CD_artifactory_Conan


    C++

     CMake慢慢的成为了C++项目构建方式的事实标准
     C++包管理工具事实标准的:conan。
     不同的操作系统(Windows,Linux,macOS,FreeBSD等等)
     不同的编译器(gcc,msvc,clang等等)
     不同的构建工具(CMake,QMake,MSBuild,Autotools等等)
     不同的构建方式(原生编译,交叉编译等等)
    

    包管理工具

    Conan, the C/C++ Package Manager C++ 包管理器
    vcpkg: Vcpkg是一个命令行包管理工具,它可以极大地简化三方库的获取、安装、使用和部署流程。
     Vcpkg是微软团队在GitHub上的一个开源项目,它提供一系列简单的命令,自动下载源码然后编译成三方库
     
    其他语言:
     Java 的 mvc  Maven,python有pip  pypi, js有npm  rust有cargo  C#的Nuget
          conan也有 Jfrog Artifactory
    

    安装Conan

    安装conan之前,我们需要先安装Python和pip
     Install Conan
       pip install conan
       升级: pip install conan --upgrade
    
    Conan 是一个针对C++的包管理工具,与CMake有非常好的结合。
    JFrog Artifactory 是Conan的私有包中心,用于公司内部私有化部署
    
    发布和下载Conan包
    Conan: 使用包与创建包。在具体进行使用包、创建包之前,需要对其进行配置,确保能够与本地包中心进行连通。
       conan remote list
       conan remote add gitlab https://gitlab.example.com/api/v4/projects/<project_id>/packages/conan
       conan upload Hello/0.1@mycompany/beta --all
    GitLab Conan 存储库发布和共享C/C++依赖项
          使用这样的格式来描述一个软件包:有四个领域要考虑:name,version,user,和channel
       名称/版本@用户/渠道。 例如: boost/1.64.0@conan/stable
       
       其中渠道(Channel)用来描述是稳定版(Stable)还是测试版(Testing)等信	
    Conan是具有客户端-服务器体系结构的分散式软件包管理器	
    命令 
       conan --version
       conan new 
       conan create
       conan export 
       conan upload  上传到远程私有制品仓库privrepo
          conan search 验证二进制包文件是否在conan本地仓库中
       
     Install CMake  -- uses the CMake build system generato
         brew install cmake
    	cmake --version
    

    conan使用

    角色:包的使用者和包的创建者
       项目里面建立一个名为:conanfile.txt的文件
          conan需要编写conanfile.txt来说明依赖--conan install 指令来根据conanfile.txt安装库文件--最终生成文件:conanbuildinfo.txt
        01. conan install .
    	     .表示conanfile.txt的路径
    	02.路径下生成三个文件:
          conanbuildinfo.txt
          conanbuildinfo.cmake
          conaninfo.txt
    	03.引用生成自动生成的编译文件
    	    include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
    		target_link_libraries(target ${CONAN_LIBS})	
    包创建:
     自动化这些操作的脚本叫做:conanfile.py
        conanfile.py提供了两种方式来声明包的依赖,属性requires和requirements成员函数。
     ###配置文件
      ~/.conan/
        用户目录的软件包仓库被称为本地缓存(Local Cache);那么同样的,
       服务器上也有一个软件包的仓库,文档中称为远端(Remote)。
    

    Jfrog

    JFrog Artifactory - 对二进制文件、制品和依赖项进行通用管理
    JFrog Xray - 进行开源漏洞扫描,包括策略和监视
    JFrog Pipelines 是下一代 DevOps 流水线自动化和编排解决方案 它提供端到端编排和优化 DevOps 流水线所有关键流程
    JFrog Distribution 部署和并发下载的速度  发布包交付
        Artifactory OSS		oss		Java,免费
        Artifactory CE		cpp-ce	C/C++,免费
        JFrog Container Registry	jcr	docker、k8s,免费
      Artifactory Community Edition for C/C++来自建仓库		
    JFrog Artifactory 功能最强大的二进制制品仓库  
     Artifactory 仓库主要有四种类型:远程仓库、本地仓库、虚拟仓库及分发仓库
         本地仓库中的软件制品通常都带有丰富的元数据,并且通过基于角色的访问控制(RBAC)实现资源隔离	 
      sudo docker pull docker.bintray.io/jfrog/artifactory-cpp-ce
    

    参考

      https://conan.io/
      https://github.com/conan-io/conan
      https://docs.gitlab.com/ee/user/packages/conan_repository/
      conan-c++包管理工具安装及使用指南 https://blog.csdn.net/sexyluna/article/details/115428572
      https://cargo.site
       C++包管理器——conan http://blog.guorongfei.com/2018/04/23/conan-tutorial/
         https://docs.conan.io/en/latest/
     手把手教你搭建 jfrog artifactory本地仓库 https://blog.csdn.net/fygkchina/article/details/124407878
     conan入门(一):conan 及 JFrog Artifactory 安装 https://blog.csdn.net/10km/article/details/122987204
  • 相关阅读:
    Java启动工程时,加载固定数据到Map中(不用每次访问数据库)
    Java删除文件夹和其子文件、文件的拷贝和剪切
    EasyExcel导入工具(SpringMVC下使用)
    web工程启动时,在一个类中延迟加载Bean,因为该Bean类可能还没被JVM加载
    ECharts访问后台,JSON格式返回数据实例
    Java 实现缓存,一个线程存,一个线程取
    IE浏览器使用VLC实时显示视频(海康、大华)
    Windows和Linux下 Java开发ping工具类
    Quartz定时器+Spring + @Autowired注入 空指针异常
    ubuntu 安装mysql
  • 原文地址:https://www.cnblogs.com/ytwang/p/16499862.html
Copyright © 2020-2023  润新知