conan入门(二):conan 服务配置-密码管理及策略

conan 服务配置

密码管理及策略配置

第一次以管理员身份(admin)使用默认密码(password)WEB登录入JFrog Artifactory后台时,系统就提示要求我修改密码,因为现有密码太简单不符合安全要求。因为刚开始测试就要设置个复杂的密码让我好一阵伤脑筋。我就在想JFrog Artifactory能不能修改默认的密码安全策略呢?

作为一个成熟的已经商业化产品(不影响我们当前用的是免费的社区版),JFrog Artifactory是可以的。

Artifactory的帐号管理体系,由JFrog Access负责,它是JFrog产品中的一项服务,作用是在后台管理所有JFrog服务的身份验证和授权的相关事务。Artifactory中任何配置的所有用户,组,权限和密码,都有这项服务来管理和存储。JFrog Access作为JFrog Artifactory安装的组成部分,Access服务将作为单独的WAR文件安装在 $ARTIFACTORY_HOME/var/etc/access/文件夹下。JFrog Access的相关参数配置保存在$ARTIFACTORY_HOME/var/etc/access

ARTIFACTORY_HOME为 JFrog Artifactory安装位置
如果你是用deb/rpm安装,ARTIFACTORY_HOME 为 /opt/jfrog/artifactory/

如下是JFrog Access位于$ARTIFACTORY_HOME/var/etc/access/access.config.template.yml的配置模板文件中关于密码安全策略的定义
在这里插入图片描述

  • uppercase 密码中大写字母最小数量

  • lowercase 密码中小写字母最小数量

  • digit 密码中数字字符的最小数量

  • length 密码最小长度

  • not-match-old 设置新密码时不允许与原密码相同

要修改密码安全策略方式并不是直接修改access.config.template.yml

打开 access.config.latest.yml,将从access.config.template.yml复制出来的下面关于密码策略的部分设置添加到access.config.latest.yml

security:
  password-policy: # users' password policy
    uppercase: 0      # minimum number of uppercase letters that the password must contain
    lowercase: 0      # minimum number of lowercase letters that the password must contain
    digit: 0          # minimum number of digits that the password must contain
    length: 4         # minimum length of the password
    not-match-old: true # should access allow setting a new password to the same one currently set for the user

然后 将access.config.latest.yml改名为access.config.import.yml然后重启服务

$ systemctrl restart artifactory.service

参考资料

《Artifactory制品库的密码管理及策略配置播》

《YAML Configuration File》

conan系列文章

《conan入门(一):conan 及 JFrog Artifactory 安装》
《conan入门(二):conan 服务配置-密码管理及策略》
《conan入门(三):上传预编译的库(artifact)》
《conan入门(四):conan 引用第三方库示例》
《conan入门(五):conan 交叉编译引用第三方库示例》
《conan入门(六):conanfile.txt conanfile.py的区别》
《conan入门(七):将自己的项目生成conan包》
《conan入门(八):交叉编译自己的conan包项目》
《conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义》
《conan入门(十):Windows下Android NDK交叉编译Boost》
《conan入门(十一):Linux下Android NDK交叉编译Boost》
《conan入门(十二):Windows NDK 编译 boost报错:CMake was unable to find a build program … MinGW Makefile》
《conan入门(十三):conan info 命令的基本用法》
《conan入门(十四):conan new 命令的新特性–模板功能(–template)》
《conan入门(十五):AttributeError: ‘CMake‘ object has no attribute ‘definitions‘》
《conan入门(十六):profile template功能实现不同平台下profile的统一》
《conan入门(十七):支持android NDK (armv7,armv8,x86,x86_64)交叉编译的统一profile jinja2模板》
《conan入门(十八):Cannot recognize the Windows subsystem, install MSYS2/cygwin or specify a build_require》
《conan入门(十九):封装第三方开源库cpp_redis示例》
《conan入门(二十):封装只包含头文件(header_only)的库示例》
《conan入门(二十一):解决MinGW编译Openssl的编译错误:crypto/dso/dso_win32.c》
《conan入门(二十二):编译 openssl要求python 3.7以上版本》
《conan入门(二十三):Windows下MinGW编译libcurl》
《conan入门(二十四):通过CONAN_DISABLE_CHECK_COMPILER禁用编译器检查》
《conan入门(二十五):imports将包安装到本地项目或其他指定位置》
《conan入门(二十六):使用make编译makefile》
《conan入门(二十七):因profile [env]字段废弃导致的boost/1.81.0 在aarch64-linux-gnu下交叉编译失败》
《conan入门(二十八):解决conan 1.60.0下 arch64-linux-gnu交叉编译openssl/3.1.2报错问题》
《conan入门(二十九):对阿里mnn进行Conan封装塈conans.CMake和conan.tools.cmake.CMake的区别》
《conan入门(三十):对腾讯ncnn进行Conan封装》
《conan入门(三十一):在命令行(shell)中从profile中读取配置参数》
《conan 入门(三十二):package_info中配置禁用CMakeDeps生成使用项目自己生成的config.cmake》
《conan 入门(三十三):requirements()指定header的可见性(transitive_headers)》
《conan 入门(三十四):conan 2.x实现对只有Makefile的项目(erpcgen)的封装示例》
《conan 入门(三十五):在conanfile.py中获取C++编译器完整路径的方法》
《conan入门(三十六):在set_version方法中从pom.xml中读取版本号实现动态版本定义》
《conan 入门(三十七):conan 2.x通过定义环境变量(environment)执行make编译只有Makefile的项目(erpcgen)》
《conan 入门(三十八):conan二进制包的兼容性及自定义package_id的方式》
《conan入门(三十九):conan 2.x 引用第三方库示例》

<think>好的,我现在需要帮助用户配置C++的编译环境。首先,我得分析用户的需求。用户之前询问过C和C++的区别,现在转向编译环境配置,可能是一个刚入门的学习者,想要开始实际编写和运行C++程序。 接下来,我要考虑不同的操作系统,因为编译环境的配置在Windows、macOS和Linux下有所不同。用户可能使用其中任何一个,所以需要分别说明。我需要确保每个系统的步骤清晰,避免混淆。 对于Windows用户,通常推荐使用MinGW或MSYS2,因为这是比较常见的方法。Visual Studio虽然功能强大,但体积较大,可能不适合只想用轻量级工具的用户。需要详细说明安装步骤,包括下载、设置环境变量等,尤其是PATH的配置,这是新手常遇到的问题。 在macOS上,Xcode Command Line Tools是基础,但用户可能已经安装了Homebrew,用brew安装GCC可能更灵活。需要提醒用户Xcode可能会比较大,安装需要时间。同时,Clang和GCC的区别可能需要简单提及,但用户可能暂时不需要深入,所以保持简洁。 Linux用户一般已经有G++,但可能需要更新或安装build-essential包。这部分相对简单,但也要给出具体的命令,比如sudo apt-get install build-essential,确保用户可以直接复制粘贴。 然后,验证安装部分需要通用,用简单的helloworld程序测试。这里要确保代码正确,编译命令准确,特别是输出文件名的指定,避免用户运行时报错。 接下来是IDE和编辑器的推荐,这部分用户可能有不同的偏好。VSCode轻量且扩展性强,适合新手;Clion功能强大但需要付费,适合专业开发;而Sublime等编辑器适合喜欢简洁的用户。需要简要说明每个工具的特点,让用户根据需求选择。 高级配置部分,用户可能随着项目复杂需要构建工具,如CMake,但初学者可能暂时用不到,所以放在后面作为扩展。包管理工具如vcpkg和Conan对于管理依赖很重要,但同样属于进阶内容,简单提及即可。 常见问题方面,需要预判用户可能遇到的编译错误、环境变量问题、C++标准版本问题,以及头文件路径问题。给出具体的错误示例和解决方案,比如检查g++是否在PATH中,或者使用-std=c++11选项。 最后,学习建议部分,推荐用户从简单开始,逐步深入,使用现代C++特性,并利用文档资源。这部分帮助用户规划学习路径,避免他们感到迷茫。 整个过程中,要保持语言简洁,步骤明确,避免使用专业术语过多,让新手能够顺利跟随。同时注意格式美观,代码块和命令突出显示,方便用户阅读和操作。需要确保所有信息准确,比如下载链接正确,命令有效,避免过时的信息导致用户配置失败。</think>以下是为不同操作系统配置C++编译环境的详细指南,包含具体操作步骤和验证方法: $$ \text{编译环境核心组件} = \text{编译器} + \text{构建工具} + \text{IDE/编辑器} $$ === Windows系统配置 === 1. **MinGW-w64安装** - 官方下载:https://winlibs.com/ - 选择版本:`x86_64-posix-seh`架构 - 环境变量配置: ```powershell # 添加至PATH(示例路径) C:\mingw64\bin ``` - 验证安装: ```cmd g++ --version ``` 2. **MSYS2方案(推荐)** ```powershell # 1. 安装MSYS2 https://www.msys2.org/ # 2. 更新包数据库 pacman -Syu # 3. 安装工具链 pacman -S mingw-w64-ucrt-x86_64-gcc ``` 3. **Visual Studio方案** - 安装时勾选: ```text [√] 使用C++的桌面开发 [√] Windows 10/11 SDK ``` === macOS系统配置 === 1. **Xcode Command Line Tools** ```bash xcode-select --install # 验证Clang编译器 clang++ --version ``` 2. **Homebrew安装GCC** ```bash brew install gcc # 确认G++路径 which g++-13 ``` === Linux系统配置 === 1. **Debian/Ubuntu系** ```bash sudo apt update sudo apt install build-essential gdb ``` 2. **Fedora/RHEL系** ```bash sudo dnf groupinstall "Development Tools" sudo dnf install gcc-c++ ``` === 环境验证 === 1. 创建测试文件`hello.cpp`: ```cpp #include <iostream> int main() { std::cout << "Hello, C++!" << std::endl; return 0; } ``` 2. 编译执行: ```bash g++ hello.cpp -o hello ./hello ``` **主流IDE配置指南**: 1. **Visual Studio Code** - 扩展安装: ```text C/C++ (Microsoft) Code Runner CMake Tools ``` - 配置文件: `.vscode/tasks.json` 配置构建任务 2. **CLion(JetBrains)** - 自动检测工具链 - CMake集成示例: ```cmake cmake_minimum_required(VERSION 3.21) project(MyApp) add_executable(app main.cpp) ``` **高级配置选项**: 1. 多版本编译器管理 ```bash # Ubuntu示例 sudo update-alternatives --config g++ ``` 2. C++标准指定 ```bash g++ -std=c++20 main.cpp ``` **常见问题排查表**: | 现象 | 解决方案 | |-----------------------|---------------------------------| | 'g++'不是内部命令 | 检查PATH环境变量 | | 头文件找不到 | 添加包含路径`-I/path/to/include` | | 链接错误 | 检查库路径`-L`和链接选项`-l` | | C++11特性无法编译 | 添加编译选项`-std=c++11` | **性能优化配置**: ```bash # 启用优化编译 g++ -O3 -march=native main.cpp # 生成调试信息 g++ -g -Og main.cpp ``` **跨平台构建建议**: 1. 使用CMake构建系统 ```cmake set(CMAKE_CXX_STANDARD 17) add_executable(${PROJECT_NAME} src/main.cpp) ``` 2. 容器化开发(Docker示例) ```dockerfile FROM gcc:latest COPY . /usr/src/app WORKDIR /usr/src/app RUN g++ -o myapp main.cpp ``` **学习路径建议**: $$ \text{环境配置} \rightarrow \text{基础语法} \rightarrow \text{项目构建} \rightarrow \text{调试优化} $$ 通过以上配置,您将获得完整的C++开发环境,可满足从学习到生产的各类需求。建议初学者从VS Code + GCC组合开始,逐步过渡到专业IDE和构建系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值