解决apm和externinfo两个问题

本文解决real6410开发板在移植内核系统后遇到的两个问题:一是qt运行时报错找不到apm命令,解决方法是在文件系统中添加一个空的可执行脚本apm;二是无法读取目录/usr/lib/ipkg/externinfo,解决方案为手动创建该目录。

转自http://huangjianming31.blog.163.com/blog/static/3474087120107333725748/


开发板real6410移植内核系统后总是显示错误:

[root@Real6410 /]# sh: apm: not found

QDir::readDirEntries: Cannot read the directory: /usr/lib/ipkg/externinfo


第一个问题sh: apm: not found

qt运行的时候会去运行apm命令,但实际上文件系统没有安装这个命令,解决办法:

在文件系统中增加一个可执行脚本apm,当然这个脚本什么也不用做,内容如下即可:

#!/bin/sh
在主机中给这个脚本增加可执行属性并放到板子文件系统的/usr/sbin下即可


第二个问题QDir::readDirEntries: Cannot read the directory: /usr/lib/ipkg/externinfo

自己手动建立/usr/lib/ipkg/externinfo目录即可

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
<think> 我们注意到用户的问题集中在APM(应用性能管理)是否能解决依赖问题上。结合之前的对话历史,用户之前询问的是yum包管理器(解决软件包依赖问题),现在转向询问APM是否解决依赖问题,但这里的“依赖”可能有不同的含义。 仔细分析: - 在软件包管理领域(如yum),“依赖”指的是软件包之间的依赖关系(如A包需要B包的某个版本才能运行)。 - 在应用性能管理(APM)领域,“依赖”通常指的是应用程序之间的调用依赖关系(如微服务A调用微服务B)或基础设施依赖(如数据库、缓存等)。 根据引用[1]:APM会“了解应用服务之间的依赖关系”,这里的依赖关系是指应用程序运行时的拓扑关系,而不是软件包安装时的依赖关系。 因此,我们需要明确回答:APM并不能解决软件包安装时的依赖问题(如yum所解决的),但可以解决运行时应用依赖关系的监控分析问题。 步骤: 1. 澄清两种依赖的区别。 2. 说明APM在依赖关系方面的作用(监控分析运行时依赖)。 3. 指出APM不能解决软件包安装依赖问题(那是包管理器的职责)。 4. 根据引用[3],提到依赖冲突(这里指的是开发中的库版本冲突)也不是APM解决范围。 同时,我们注意到引用[2][3]中: - 引用[2]提到的是无人机固件(APM)的故障排除,与这里的APM(应用性能管理)无关,属于缩写歧义,可以忽略。 - 引用[3]讨论的是Flutter开发中的依赖冲突(库版本冲突),这属于开发构建时的依赖问题,也不是APM解决的范畴。 因此,回答的结构如下: - 第一部分:区分两种依赖(包管理依赖运行时依赖)。 - 第二部分:解释APM解决的依赖类型(运行时依赖)。 - 第三部分:澄清APM不能解决的依赖类型(包安装依赖构建依赖)。 最后,生成相关问题。 注意:使用中文,引用标记。 </think> ### APM 能否解决依赖问题?——系统解析不同类型的依赖管理 从您的提问来看,您关注的「依赖问题」可能涉及两个不同领域: 1. **软件包依赖**(如 yum 管理的库文件版本冲突) 2. **运行时依赖**(应用程序间的服务调用关系) APM(应用性能管理)的核心能力集中在**运行时依赖分析**,而非软件包安装阶段的依赖管理。下面详细解析: --- #### 一、APM 解决的依赖问题:**运行时服务依赖** 根据引用[1],APM 的核心功能是通过监控分布式系统的遥测数据,**自动绘制服务依赖拓扑图**。例如: - 当微服务 A 调用数据库 B 缓存服务 C 时,APM 会实时映射出依赖链: $$A \rightarrow B \quad \text{} \quad A \rightarrow C$$ - 若数据库 B 响应延迟,APM 会定位到根源问题(如 B 的线程池耗尽),而非仅显示 A 的报错[^1]。 - **优势**:解决复杂架构(如 Kubernetes 集群)中跨服务的隐形依赖,避免“问题在 A,根因在 Z”的排查困境。 > ✅ **典型应用场景**: > - 微服务调用链追踪(如 Jaeger/SkyWalking) > - 数据库、消息队列等中间件的依赖分析 > - 云原生环境的服务拓扑发现 --- #### 二、APM **无法解决**的依赖问题 1. **软件包安装依赖**(如 yum 的库版本冲突) - 此类问题需由包管理器(yum/APT)解决: - yum 通过仓库元数据自动解析依赖树(如 `A→B→C`) - 若版本冲突(如 `A 需 B>=1.0` 但系统存在 `B=0.9`),yum 会中止安装并提示冲突 - **APM 不涉及此过程**,因其作用域在运行时而非安装阶段。 2. **开发阶段的库版本冲突** 引用[3]指出此类问题(如 Flutter 中 `library_X v1.0` 与 `library_Y v2.0` 冲突): - 需通过开发工具链解决(如 Maven/Gradle 的依赖排除) - 错误示例: ```gradle dependencies { implementation 'com.lib:X:1.0' // 与 Y 冲突 implementation 'com.lib:Y:2.0' // 要求 X>=1.5 } ``` - APM 无法干预编译前的依赖冲突[^3]。 --- #### 三、关键结论对比 | 依赖类型 | 解决工具 | APM 是否支持 | |-------------------------|------------------|--------------| | 服务运行时调用依赖 | APM(如 Dynatrace) | ✅ 是 | | 软件包安装依赖 | yum/APT/DNF | ❌ 否 | | 开发库版本冲突 | 构建工具(Maven等)| ❌ 否 | > 💡 **简单总结**: > - 若问题涉及 **「服务 A 为什么变慢」** → APM 可分析其依赖的服务 B/C > - 若问题涉及 **「安装软件时提示缺少 libXXX.so」** → 需用 yum 解决 > - 若问题涉及 **「代码编译时报版本冲突」** → 需调整构建配置 --- #### 四、APM 在依赖分析中的实际案例 假设一个电商应用包含以下服务: ```mermaid graph LR User-->|HTTP| API_Gateway API_Gateway-->|RPC| Product_Service Product_Service-->|SQL| MySQL API_Gateway-->|HTTP| Payment_Service ``` 当用户支付超时时,APM 会: 1. 检测到 `Payment_Service` 延迟飙升 2. 追踪发现其依赖的第三方支付网关响应超时 3. 自动生成报告:**根因 = 外部支付接口故障** 此过程无需人工分析服务间依赖关系[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值