我在软件管理上的一些经验和做法

先说一个背景,我目前在处理着大约7000个左右的软件。

我是之前写《为什么要使用Windows 10的214条理由》的人,也发过另一个帖子《大家对便携软件感兴趣吗?有大约2000多便携软件,想要筛选筛选》

提到第一个帖子,是想说用电脑二十多年了,还是积累了一点自己的使用经验,从最初的《大众软件》、《藏经阁》这些光盘上试用软件,到后来The Last Fantasy上的FTP下载,再到后来各种0DAY上的资源,从那时候起就喜欢试用各种奇奇怪怪的软件,后来开始逐渐存档分类。

提到第二个帖子,是因为一直比较倾向于便携软件,从2000年到现在,经历了各种便携化规范的变迁,但大部分都是昙花一现,唯独PortableApps.com规范活了下来,目前看活得还挺好。而国内的PortableAppC活了很多年,该网站主要是jooseng独挑大梁,坚持每日更新多年,一部分是搬运,还有一大部分都是jooseng个人处理。当时jooseng每日更新的工作量很大,所以才想将这2000多软件彻底筛选归类一次,功能被覆盖的、不是那么好的,就不要更新了,最终只管理维护100个左右就好。(最终这个网站没等到那天,几个月前死了)

以上两个帖子是大概介绍下情况,本帖子主要是想回复《需求能管理电脑上软件的系统》。也就是:我电脑上有很多工具软件,希望有一个系统能帮忙管理,软件用途:可以标明该软件的用途,功能等,如果官方有最新版的会提示是否下载最新版本。

如果只是普通的、常规的用途,有两个选择:

https://portableapps.com/ 这个网站的客户端,总共管理着407个便携软件,基本覆盖日常的绝大部分工具。见附件图1 (这个图直接上传失败,可能是太长了,就传到了微博相册,不知道外链能不能看到)

https://www.liberkey.com/ 这个网站的客户端,总共管理着294个便携软件,基本也满足常规的日常使用。见附件图2 (传到微博相册的原因同上)

以上两个管理软件都能满足帖子中要求的:自动分类、鼠标悬停提示软件用途、功能,搜索备注信息,软件有更新了随时提醒更新,可以手动选择,也可以一次性批量更新。

第一个管理平台活得好好的,而且符合PortableApps.com规范的软件包(一般是*.paf.exe格式文件名)远不只该平台维护的407个,因为任何人都可以制作符合这个规范的包,但平台之外的paf包不一定有更新维护。

第二个平台已经不再更新客户端,但已有的294个软件仍然在持续更新,而且更新速度也还可以,软件官网更新了,这个平台很快也会跟进推送(可以设置)。我个人目前在用第二个平台客户端管理程序。好多年前也写过一个同类平台的对比帖子,这里只放一张图,见附件图3。这个客户端的使用效果见附件图4,这是个GIF动图。 (这个GIF文件15.5M,超过尺寸,也传到了微博相册上)

除了以上两个管理程序,各种全家桶软件管家、Chocolatey、Scoop、SUMo我也都试用过,都存在一个问题: 不被平台支持的程序怎么办? 所有这些管理平台并不能管理这个世界上的所有程序,不管多牛的人写出多牛的爬虫也做不到。我自己也尝试写过脚本、写过程序来管理,但都非常不理想。

如果只是日常使用,手头只有几十个或者百来个程序,这都不是事儿,但如果是松鼠症患者,不断积累了上千个程序,或者到了松鼠症晚期,积累了上万个程序呢?怎么来管理?

现在就到重点了,这种情况怎么办?一个接近晚期的松鼠症患者是怎么管理7000多软件的。

下面说一下我目前正在做的事情,而且想找很多人一起做的事情:

因为之前下载了PortableAppC上的全部2000多个便携软件,再加上自己之前积累的5000多个不便携的软件,总共七千多个,某一天,我突然觉得不能再这么下去了:下载-归档-下载-归档,就算攒了全世界所有的软件又有什么意义?我应该对它们筛选、分类、淘汰,只留下最好的。

于是开始做下面的工作:

1.规范软件命名:

之前保存的非常混乱,有在文件夹中的,也有打了压缩包的,或者就是单个一个安装程序,还有那种0DAY组织发布的时候分成了几十包的。所以第一步,我花了很多时间把这些软件重新规范命名:[公司名][软件名][版本名]v[版本号][便携特征]

规范命名有几个好处,比如可能同时保存了同一个软件的不同版本,那可以比较放心的删掉低版本的(实际情况是,除非特别确信,一般会保留最近的三个版本。);规范命名也方便后期用正则表达式处理;而且都用下划线分隔,也便于直接在Excel分列处理。

之所以带上公司名,是很多时候有同名软件的情况,带上公司名,基本就不会重名了。绝对不会重名的软件一般就不带公司名了。

版本名:这个参数主要是针对软件不同版本的,有时候也没这个参数,比如Pro、Extreme、Business、Home等;

版本号就不说了,v4.5.1这种,以前很少有直接把年份做版本的,现在流行起来了,不过还是有内部版本号的,所以这种一般把年份写在版本名之后,版本号写内部版本号。

便携特征:如果是安装包,那就没有,如果是便携化的软件,会在最后加上Portable。

还有一类软件,是以其他软件的插件形式存在的,这种的命名是在最后加上:_for_软件名

所有软件都以文件夹形式保存,以下是两个典型的文件夹名:

ABBYY_FineReader_Enterprise_v14.0.105.234

Avenza_MAPublisher_v10.2_for_Adobe_Illustrator

2.建立分类词表:

为了管理好软件,肯定不能全堆到一起,最好是有一个科学、规范、好用的分类,以便下一步工作进行。所以又花了一段时间专门研究了几个大的软件下载站的分类,比如:www.softpedia.comwww.softonic.com等,最后弄了一个三级分类词表,不过大部分两级就够了,少数几个分类用到了三级,比如:

Files>>Renamer:第一级分类是针对文件处理的通用工具,在这下面的第二级批量重命名工具;

Files>>Compare:第一级分类是针对文件处理的通用工具,在这下面的第二级文件和文件夹内容比较工具;

Audio_Video>>AV_Editor>>Video_Convert:第一级分类是针对各种音视频文件的工具,在这下面的第二级针对音视频编辑的工具,在这下面的针对视频格式转换的工具;

这样一共建了274个分类,也就是274个文件夹归档以上7000多程序。

同时在Excel表格中建了对应的三级级联菜单,也就是选了一级分类,就限定了二级分类,选了二级分类就限定了三级分类。

3.评级:

本来应该建立一个比较复杂的评级体系,比如软件是否便携、有无中文、商业还是免费等等,不过最后还是从完全实用的角度出发分了四级:核心、偶尔、归档、删除,不管你商业还是免费,不管有没有中文。

对软件的评级定好了,也就有了对应的更新管理策略(类似电影分级)

核心:最常用软件,几乎每天都要用到的,这类核心软件放在单独一个文件夹中,不参与全局分类。半年主动更新一次,去软件官网更新。

偶尔:这种软件会用到,但只是偶尔用到,频率可能一个月一次甚至半年才用一次。这种一年到两年更新一次。

归档:软件确实是好软件,也存在用到的可能性,但根本不知道什么时候会用一次,这种保留当前版本的安装包,只有哪天真的要用了再更新。(如果一时找不到可用的最新版本,还有归档的老版本备用)

删除:这种就是直接删除,只在Excel中留个条目,以免将来踩雷。带广告的、弹窗的、捆绑的,肯定都删掉。更主要的被删除的原因是功能被其他工具覆盖的,没有其他工具好用的、强大的、被包含的,这种都会被删掉。

4.进Excel处理:

到这一步开始做一个Excel文件:

第一列,很窄,填色用,有时候遇到存在问题的程序,就填个红色,方便以后在处理;还会填其他颜色代表不同意义,比如被删除软件填黑色块。这一列不用细说。

第二列:软件名称,就是在第一步规范处理之后的七千多个软件名;

第三列:一级分类

第四列:二级分类

第五列:三级分类

第六列:评级,也就是这个软件是核心、偶尔、归档还是删除。

第七列:软件功能概要,用尽可能少文字尽可能描述这个软件的功能,目前是限制在28个字。

第八列:备注。这里备注各种有必要备注的东西,比如有捆绑、高危存疑、项目已终结、软件更名、公司被收购、合并、皮包公司、假洋鬼子公司等等。

第九列:官网地址,这个是尽可能都填上的,找一个软件,查介绍、教程、更新、首先去官网啊。

5.填写软件功能:

上面的表格弄好之后,就是用尽量少的字描述软件的主要功能、特色功能、独特的地方。这个花费了我不少时间,即使通过程序名可以大概判断功能的、或者在国内的下载站有中文介绍的,我还是尽量找官网去看下软件的官方介绍。而且在找软件官网的过程中能发现很多问题,比如软件已经被收购、官网地址已经变更、甚至软件名称也变更了、软件已经更新换代被同公司的另一个软件代替等等。

6.分类:

软件功能描述都整理完成之后开始对这些软件分类,其实就是一二三级分类,看着表格的第七列内容,鼠标在第三四五列点点点就行了。这个没花太多时间,也已经做完了。

这是已经完成的Excel表格,见附件图5,是一个GIF动图,也是超过尺寸,只能存到微博相册里。 (不知道微博相册里的动图能不能动)

7.分入文件夹:

7000多软件,软件功能描述整理完了,每个软件的三级分类也都弄完了,就要把这些软件分入各个对应分类的文件夹了,不能7000多软件都在一个文件夹中。因为规范化了三级分类的名称以及对应文件夹的名称,也规范化了软件名称和所在文件夹名称,所以做了一个简单的批处理文件,自动把Excel表格中同类的程序分类到了对应文件夹中。

8.重新组织内容:

在规范化程序名的时候,为了统一处理,所以把收集过的内容全都扔到了一个大文件夹中处理,在规范化的过程中也发现了一些问题,比如当初不同文件名保存的,其实是同一个程序;同一个程序保存了好几个不同的版本;某些版本的程序带着资源文件;某些则是很干净的核心程序,没有任何资源库;也有些带着几个G的PDF说明文档等等。这些资源库、教程文档、素材库等等,都是与核心程序的版本无关的。所以在这一步重新组织了文件夹,比如现在

SAS_JMP_Statistical_Discovery_Pro_v13.2

SAS_JMP_Statistical_Discovery_v9.0.2

SAS_v9.1_Portable

SAS_v9.4.M3

这四个文件夹以前都是同级保存在Statistics文件夹下的,现在就把他们统一保存在Statistics/SAS这个文件夹下了,而且SAS下还有一个Document文件夹。

这样有两个好处,一个是便于同公司不同软件、同软件不同版本的对比淘汰;一个是删除淘汰某些版本程序的时候,通用的那些资源库、文档、素材库等都可以保留下来,不会误删。

这部分工作只做了一部分,是准备在软件最终的比较淘汰这一步同时做的。

9.重新优化三级分类:

因为这个三级分类是在第二步做的,那时候还没有把所有的程序功能描述写完,所以在具体分类的时候,发现原有的分类并不是很完善,有很多不妥的地方。比如把很多读取和转换CAD文件的程序归类到Design\CAD下面就不太合适,所以重新调整成这样:Files\CAD_Tools,把专门读取各种格式的CAD文件、转换、批量打印、简单标注这类功能的程序归类到了文件下面,和Files\PDF_Tools是同级的、同逻辑分类。比如还有些专门下载各种卫星图、拼接大图的程序,以前是归类到Web_Internet\Download\Map下的,也就是网络工具>>下载工具>>地图下载这里,但是感觉还是合并进GIS分类比较好,和ESRI\MapInfo\Analist这些放到了一起。

这个工作也没有做完,因为感觉还是和软件的最终比较淘汰这一步同时做比较好。先暂用原有的分类,在比较淘汰的过程中发现分类不妥的,随时调整,这样能做的比较精细、细致。

10.独立的系列:

并不是对所有的程序都做统一的大分类,有几个系列的软件是单列的,比如单独弄了一个Series文件夹,这下面还有几个文件夹,分别是Microsoft、Adobe、Autodesk、ESRI、ANSYS等。这几个公司的软件不参与统一分类。

11.插件的分类:

在第一步规范命名的时候,一个程序如果是另一个程序的插件或者增强包、组件等,会在名称最后写上_for_软件名,最初的时候是参与大分类的,后来觉得这样管理不科学,所以在文件夹组织上,把所有这类插件程序都归类到对应主程序文件夹的Plugins文件夹下面。基本上是和主程序文件夹下的Document、Resources这类内容同级了。

12.比较淘汰的原则:

全世界有那么多的程序,但是其中绝大部分是可以被另一小部分代替的,几乎没有存在的价值。比如同一个公司的一个旗舰软件可能覆盖了旗下三四十种程序的所有功能;比如好几个不同公司的程序,其实都是同一个内核套了不同的马甲,比如4Videosoft、Aiseesoft、AnyMP4、FonePaw、Tipard这几个公司,每个公司都出了好几十个软件,但是完全雷同,说它们之间没有联系估计是不可能的,几百个软件,有保留价值的可能就三两个。有些强大的软件几乎可以彻底取代一大类程序,比如一个After_Effects就取代了几乎所有视频编辑类程序、一个Media_Encoder也取代了几乎所有视频格式转换工具。

软件在功能数量上、功能质量上、支持的文件格式上、是否有中文、是否便携化、软件尺寸上、界面美观上、使用便捷上,等等,其实是可以有非常综合的评价体系和比较淘汰原则的。因为之前一直是我个人做这个事情,所以也没有弄一个比较系统一致的比较淘汰原则,完全是主观判断,有些软件打开一开,界面太丑,功能太简陋,直接就列入【删除】。

13.最后一步:

以上所有工作的最后一步也就是比较淘汰,我希望的是核心程序大约20个左右、偶尔程序大约100个左右,存档程序大约300个左右,剩下全都是删除的。一个程序无论删除与否,都会保留在这个Excel表格中,写一个很简单的脚本,或者干脆就用Excel里面的VBA写一小段代码,以后再看到什么程序,复制一下文件名,一个快捷键就能判断这个程序是不是已经在表格中,是什么级别的。在这些程序具体使用的时候,我准备把核心和偶尔这两个级别的程序都用TotalCommander管理,Ctrl+Q使用TC内部的快速查看,F3使用外部编辑程序、F4使用外部查看程序。同时不便于在TC中调用的程序,都放入Liberkey中管理。

14.现实情况:

其实上面所有的工作,我已经做到了最后一步。在我一年多前准备做这件事的时候,是想征集一些人能一起做的,在几个论坛发过帖子,不过应者寥寥,大概是真的没人对这个事情感兴趣。仔细想想也确实是这样,在每个人各自专业的领域,哪些工具是最强大最好用的,基本是有公论的;平常偶尔用一下的工具 ,从实用主义角度出发,什么时候需要用了就搜一下,随便找来一个能用就行,不好用就再换下一个。我现在做的事情,纯粹是松鼠症患者+完美主义者+偏执狂才会干出来的事情。

做这件事情最初的初衷,是希望减少jooseng的工作量,不要维护2000多程序,能减少到日常维护100多个就好。后来的心理逐渐演变成了希望通过一次性整理工作,基本做到一劳永逸,从今以后都不再投入时间在程序的更新、维护、管理、挑选上。Excel表格中、程序存档文件夹中、TC的关联设置中、Liberkey的分类启动管理中,都有一致性和自动化脚本管理,干净清爽。

但是当真的做到最后一步,需要比较、筛选、淘汰的时候,发现这根本不是一个人能做好的事情了。 a.首先是工作量,就不是一个人可以做到的。要想筛选同类软件,那就需要把这一类别下的每一个软件都打开,摸过其中的所有功能,至少是大部分功能,才能有比较客观的评价。 b.其次是专业性,我可以评价城市规划类、建筑类、三维建模、三维渲染、地理信息类的专业软件,打开一个软件摸一摸,基本就能知道功能如何,是否有其他同类软件不具备的独特的功能,或者根本就是一个玩具。但是对其他专业类的软件,比如仿真分析的,我根本就没有评价挑选的能力,只能是打开摸一摸,对功能明显很弱的删除,其他更多的评价只能是看看官网、看看网络上各种地方的介绍。 c.第三是倾向性上,这7000多软件之所以能在我电脑里,是因为最初下载的时候,看看大概的功能,都是我感兴趣的,也觉得是自己有可能会用到的,所以才会下载下来。比如这些软件中,就完全没有关于Wordpress的、数据库的、集成电路设计的、工厂流程管理的、CNC制造的等等;编程语言相关的只有Python和C#,其他所有编程语言都没有; d.第四,一个人的见识终究是非常非常有限的,尤其是在面对整个程序世界来说,实在太过微末,比如在我的分类中,确实有Markdown编辑器这个分类,但是在小众帖子推荐中提到的编辑器,我就有好几个没见过。

由于这四点原因,其实我是希望能有尽可能多的人以及尽可能多不同专业的人能一起稍微做做这部分工作。就算没有专业知识的加入,一起做做视频转换类的、音频编辑类的、数据恢复类的、加密解密类的这种常规通用软件比较挑选也好……

以上就是我在管理大量软件的时候的一点经验和做法,以及我目前正在做的事情。

我也希望有尽可能多的人看到这个帖子,其中能有几个松鼠症+完美主义者+偏执狂愿意一起做做这个工作,那就不枉我写这么多字了。(全文欢迎随意转载)

如果对这个事情感兴趣,直接联系:planningall@163.com

(其实这个工作和小众软件的“我最喜爱”专题是同类的,如果站长能牵头组织,把它进行下去,那就最好不过了,或者以另一种形式进行也完全没问题。)

4赞

@scavin 又有人问你的「我最喜爱」专题去哪了

包管理,数据库

搞个 Scoop 的 Buckets 是否可行?

其实最好还是筛选过之后,留下两三百个日常维护还比较现实。

成千上万的程序用Scoop来管理没问题,但是第一步这个Buckets就建立不起来…每一个程序的配置文件都要单独写。

1赞

配置文件单独写是肯定的,不过如果全是绿色软件,配置文件应该比较好写吧(猜

这样更新会非常容易。

绿色软件其实也有几种,比如符合PortableApps.com规范的,这里面又包括两种,一种是由PortableApps官方维护的,407种;一种是个人制作的。

官方维护的这407个,用官方的管理程序就好了,非常稳定,持续更新;但是个人制作的,那就非常随缘了,没有任何维护,根本不用奢望更新。这也就导致就算写了Scoop配置文件也没有意义。

第三种是软件官网直接提供便携版本的,这个比较靠谱,配置文件仍然是要单独写,但是工作量很小,非常简单,但是这种程序数量很少。

第四种是虽然官网没有提供便携版,但安装之后实际上就是便携版 ,安装文件夹直接拷贝走都能用,顶多是配置一下文件关联和路径(做的比较好的直接把配置文件写到软件安装文件夹内,索引的都是相对路径。)这个用Scoop管理的话,其实也要单独写配置文件。

最后还是落到了巨量程序的维护上,目前我能想到的唯一可行的,就是对软件筛选评级,只维护数量有限的一两百个,而且是半年到两年的周期维护一次。所有这些维护,反正我是想不到全自动的方法,理论上可行的,实际上都不可行。最后还是要人肉处理。

找到组织了!!!

portableappc.com 是我最喜欢的软件分享网站,没有之一。作为强迫症,或者用我自创的词描述自己:电脑洁癖,便携软件曾经是我生命中的曙光,哈哈,但网站消失后,怅然若失了好久。

电脑上有曾经留下的几百个觉得不错的便携软件,回去我整理下软件的信息,然后发给你。

要不要跟我一起整理这7000个软件呢?我也是电脑洁癖啊,所以才觉得这7000个软件里面可替代的太多了,淘汰筛选到两百个左右,该是多么干净清爽啊。

我觉得等许多网友给出自己用过的那些软件的信息后,最后再去考虑整理剩下的那些没人用过的。

你的软件或者什么 excel 表,可以考虑用 Syncthing 分享个文件夹出来。

先从播放器这个分类开始,一个一个来?

噗,你是看了我的发帖记录吧。
别急,等我搬完这天的砖再说。

https://www.lanzous.com/i4y2afa 这是音视频工具下的播放器分类列表。Excel格式

对应的文件夹有7G,目前看只能用百度云了…不过不需要全部下载,想评估哪个程序了,就单独下载哪个程序好了。仔细试用一下,看看程序是否有亮点,特色功能、强大之处、是否值得存档,或者只能列出【删除】

其实这是一个挺好的主意,但我不太能想到用什么样的方式实现。

有一些协作的例子:

https://amazing-apps.gitbook.io/windows-apps-that-amaze-us/zh-cn

但我不认为 GitHub 是一个很好的多人协作方式,相比较开发者,GitHub 对于普通用户的门槛还是太高了。

https://github.com/Awesome-Windows/Awesome

https://amazing-apps.gitbook.io/windows-apps-that-amaze-us/zh-cn

https://en.wikipedia.org/wiki/Category:Software_comparisons

其实这两个项目都有了解,也会参考,但是总觉得并不是那么好用。(访问、编辑慢是个很大的问题)

剩下两个链接都是做软件比较的,也都会参考。

考虑在 码云、CODING 建个新项目? 话说这两天我开黑去了…

码云、CODING 还是门槛太高啊…我觉得非程序员用 git 都费劲。

Gitbook 呢?

「正常人」能用的话,就是各类文档写作工具了吧:Google Docs,石墨文档,Notion,还有些我一时想不起来的