AE插件安装中的日志排障法(进阶)

您所在的位置:网站首页 58762是什么意思 AE插件安装中的日志排障法(进阶)

AE插件安装中的日志排障法(进阶)

2023-12-13 11:56| 来源: 网络整理| 查看: 265

今天早上装Red Giant Universe插件(准备做新视频)的时候遇到了一个罕见bug。

先贴一下关键词方便搜索引擎索引该文章:Red Giant Universe插件Installing com.redgiant.service.zip报错、红巨星Universe插件The following error occured during installation

虽然是一次罕见bug的触发,但这次故障排除的过程还是能总结出不少通用经验,应该说适用于几乎所有的主流AE插件安装了。考虑了一下还是决定不去知乎自问自答,发个专栏方便日后分享。

首先在https://downloads.redgiant.com/redgiant/products/singlesuites/universe/Universe_Win_Full.zip下载RG Uni插件的最新安装包

解压,点开安装程序

在进行到Installing com.redgiant.service.zip这一步时直接报错

解决问题第一步,肯定是先上百度。这种看起来就很歪门邪道的问题一般还是百度比较好用

因为The following error occured during installation的意思是安装过程中发生了下列错误。可以判断出这个报错信息是通用的,冒号后面接的东西才是重点(woc结果冒号后面啥都没有?)。鉴于这种通用的东西一般不能准确搜出特定的错误,所以我首先通过对关键词Installing com.redgiant.service.zip的查询来找解决方案。

全都是Trapcode……Universe这么没人权吗?

因为前两页连一条精确命中都没有,所以加个Red Giant Universe前缀继续搜也是没有用处的,换个搜索引擎再搜也是没有用的,咱们可以直接放弃这套关键词,改用Universe The following error occured during installation再搜(这里前面加个Universe是因为后面这条报错在很多软件里都有,必须加前缀)

同样,完全没有任何命中。

下面就是与各种bug(干得好呀凉屋)长期作战的经验之谈了。

一般百度一个问题,如果搜不到任何有用信息

1、这玩意的用户都是隐世高手,想找资料得查论文或者去内部论坛

2、你的操作过于离谱

3、最罕见的情况下,你拿到了这个bug的一血

考虑到几个剪辑群里的涩图需求量,可以首先排除隐世高手的可能性。

再考虑到我一向熟练各类剪辑软件的安装与卸载,可以直接排除操作离谱的问题。

那么接下来就是一血环节了,如何排查一个全新的bug?

一般来说,查bug最方便的手段就是看log(日志)。

log是什么意思,这里引用https://www.quword.com/ciyuan/s/log的一段词源解读

古人在驾驶帆船出海远航时,常常采用在桅杆上划道的方法来记录日期,这就是最原始的航海日志了。由于桅杆是用原木( log )做的,所以记录在桅杆上的日志自然也就被称为“ log ”了

log文件,记录着各种软件运行的过程。

一般来说,一个有脑子的程序员,多多少少会尝试利用log做点记录,以方便快速查找bug发生的位置,缩短加班时间。

通过在各个Program Files和ProgramData文件夹里的翻找,我终于找到了Red Giant的日志位置,一看修改日期,确实是热乎的。

logs日志文件夹

找到安装日志,在最后几行找到了标有CRIT(critical,致命错误)字样的失败原因

Can not connect to Red Giant Service

CRIT: 安装失败原因

这说明在连接失败之前,起码会有启动或者读取这个Red Giant Service的动作。

往上翻几行,果然看到了安装程序尝试通过sc.exe启动Red Giant Service这个服务的日志记录。

既然确定这个Red Giant Service是Windows的一个服务,我就到服务里去找它

win+R输入services.msc回车。

果然找到了Red Giant Service

但当我想手动启动它时,系统报错提示“系统找不到指定的文件”。

打开Red Giant Service这个服务的属性。

该服务引用的可执行文件为C:\Program Files\Red Giant\Services\Red Giant Service.exe

但当我点开对应文件夹时,我发现C:\Program Files\Red Giant下压根就没有Services这个文件夹。

但既然安装程序尝试引用了这个位置,说明它认为自己已经安装好了服务。

而之前安装服务的过程又没有出现报错,说明并不是权限不足无法创建文件的问题,它应该是应该是把这个重要的Services文件夹装错地方了。

为什么这么肯定,因为我为了节约宝贵的固态硬盘容量,把指向默认安装位置的注册表项ProgramFilesDir从C:\Program Files改成了F:\Program Files

指向软件默认安装位置的注册表项

意识到这点,我立马跑到F盘,果然看到这里躺着一个热乎的Services文件夹。

将这个文件夹剪切+粘贴到C:\Program Files\Red Giant下,再度运行安装程序,发现确实可以一路畅通无阻地安装了。

那么为什么会出现这个神奇的bug呢?为什么网上搜不到相关的解决方案呢?

不妨来梳理一下安装程序的整套操作流程

首先,它会解包com.redgiant.service.zip并读取注册表项中的ProgramFilesDir进行相应位置的安装。在我的电脑上,ProgramFilesDir对应的位置是F:\Program Files,因此安装位置就是F:\Program Files\Red Giant\Services

但运行服务这部分的代码和安装服务这部分的代码大概率不是同一个人写的,在运行服务时,安装程序错误地读取了ProgramFilesPath这个注册表项!

需要注意的是在Windows里%ProgramFiles%是一个始终指向C:\Program Files的宏定义。这意味着在我的电脑上,ProgramFilesPath对应的位置是C:\Program Files,因此启动位置是C:\Program Files\Red Giant\Services

如果你家电脑上的ProgramFilesDir和ProgramFilesPath所指向的路径都是C:\Program Files,那么恭喜你,和其他大多数追求调用和渲染速度的后期工作者(或者C盘战士)一样,你的安装过程将不会在start `Red Giant Service`这一步出错,因为安装和读取的位置都是C:\Program Files\Red Giant\Services\Red Giant Service.exe

但如果你的ProgramFilesDir是被改过的(就像我这个C盘128G的穷币一样),那么不一致的ProgramFilesDir和ProgramFilesPath就会导致安装路径和启动路径的不一致,从而造成服务无法启动的严重错误

该bug已被提交至Red Giant(为我接下来的白嫖行为作出一点点补偿)

这种成熟的大型AE插件多半是有安装程序的,因为它的功能已经不局限于AE自带的框架——包括GPU加速、各种图形学算法的实现,都需要把各种第三方依赖以及从“原创”C/C++代码编译过来的dll文件安装到各种乱七八糟的位置(装pc游戏也是一样的过程)。

那么一旦在安装过程中失败而百度又找不到答案时,如何通过检查日志排查故障,或着退一大步,通过发送完整日志文件求助大神或是向官方反馈,就是一项非常实用的技能了。

小伙伴们都学会了吗,欢迎在评论区与小编交流讨论哦~

后记:本以为各种转区各种破解玩各种*不可描述*已经是我能触及的软件安装工艺的巅峰了,没想到有生之年还能快进到帮别的程序员看日志查bug这个阶段,实感欣慰(

本文遵循MIT共享协议,允许无署名商用转载

荧光_Starry

2020.08.21



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3