capev2安装踩坑记录

前置信息

  • 项目源码仓库:
    https://github.com/kevoreilly/CAPEv2
  • 官方提供的安装文档
    https://capev2.readthedocs.io/en/latest/installation/host/installation.html
  • 详细安装流程可以参考这位的(非常nice)
    https://github.com/rebaker501/capev2install

主流程说明

  1. 下载仓库源码
  2. 进入installer目录使用两个脚本安装各种依赖和配置以及服务
    示例图
  3. 按照在线翻译后的文档安装win10客户机
  4. 配置ip和快照名等
  5. 启动服务

主要踩坑记录

  1. 脚本太长,执行日志看不懂
  2. 脚本执行后日志内没有明显报错,但无法确认是否安装成功
  3. 各种网络问题无法下载或网速极慢

两个脚本的内容主要结构如下:

  1. 脚本说明注释
  2. 脚本配置全局变量和默认执行提示定义
  3. 各种函数拆分后分散的定义(要启动一个服务需要多个子依赖或子服务安装成功, 这里的函数就是将相同的子依赖或服务整合到一起)
  4. 最后来一个case命令,用于确定不同的参数调用哪些函数
# 这是示例脚本
value1="version-1"
function  eat() {
    ...
}
function fun() {
    ...
}
function sleep() {
    ...
}
case $1 in 
'吃饭')
    eat;;  
'睡觉')
	sleep;;
'打豆豆')
	fun;;
'我的一天')
	eat
	sleep
	fun
	;;
*)
...
$ ./cape2.sh base cape
# 替换为当前示例后
$ ./cape2.sh 吃饭 cape

错误分析

执行过程中, 分两种错误, 一个是显性错误, 也就是日志里面有明显的error信息,且跟随着大量的错误提示行, 这个稍好一些, 找到最开始的错误原因,改正即可. 还有一种是隐性错误, 比如某个依赖找不到,某个文件下载失败,这种可能就提示 E: 无法定位软件包 谁谁谁 然后一闪而过就没有其他错误提示了,这种情况下, 两个方案, 1是知道可能会提示什么报错, 直接全局搜索对应的错误日志, 2是根据脚本里面需要安装的软件名进行逆推, 脚本执行后在本地使用apt命令搜索是否已安装这个软件或使用systemctl查看某个服务的状态来检查是否安装了某个服务.

版本冲突

如果你在安装过程中出现了某个组件需要A依赖 1-5 的版本, 另一个组件需要A依赖 10-15 版本,这时候A依赖无论安装哪一个都有问题, 这时候说明你的apt仓库默认版本和脚本里面需要安装的依赖版本冲突了. 解决方法是先移除这个组件的所有相关依赖, 然后按照脚本里面需要的版本进行本地安装或使用apt命令指定版本安装.

涉及到的网络问题的解决方案

  1. 给ubuntu系统配置代理
# 文件位置: /etc/profile 追加内容
export http_proxy=http://192.168.0.1:4560
export https_proxy=http://192.168.0.1:4560
  1. 给pip配置代理
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  1. git配置代理
git config --global http.proxy 'http://192.168.0.1:4560'
git config --global https.proxy 'http://192.168.0.1:4560'
  1. 配置urllib3网络代理

有时候命令会通过pip直接安装git仓库,这时候如果仓库地址无法访问就崩了, 比如:
pip install git+https://github.com/user/repo.git@master#egg=my_package
具体修改如下:

$ sudo vim /usr/lib/python3/dist-packages/pip/_internal/network/download.py
# row number = 115
def _http_get_download(session: PipSession, link: Link) -> Response:
    target_url = link.url.split("#", 1)[0]
    # 新增开始
    proxy={
            "http": "http://192.168.0.1:4560",
            "https": "http://192.168.0.1:4560"
    }
    session.proxies=proxy
    # 新增结束
    resp = session.get(target_url, headers=HEADERS, stream=True)
    raise_for_status(resp)
    return resp
  1. poetry虚拟环境配置代理

pyproject.toml 配置文件的末尾添加如下信息(来源: https://python-poetry.org/docs/repositories/)

[[tool.poetry.source]]
name = "tsinghua-pypi"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

mongodb

ubuntu22.04官方默认没有mongodb-org的包,需要脚本添加对应apt仓库或手动添加, 可以参考这个文章:
https://apmb.co.uk/posts/mongodb-4.4-ubuntu-22-04/
安装后执行cape脚本里面 mongo相关命令启动服务

pip提示依赖找不到

如果使用poetry运行服务, 则使用
poetry run pip install …
如果不使用poetry运行服务, 则使用
pip install …

windonws客户机iso镜像下载

分享一个:
https://hellowindows.cn/

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值