云端_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
posted @ 2022-07-20 21:09  辰令  阅读(607)  评论(0编辑  收藏  举报