- 论坛徽章:
- 0
|
这说明不了任何问题:
1. Java虚拟机,常常装多套,更不用说jar的胡乱分发了。
2. .NET上的assembly, 也是如此。
3.Linux下, .so文件也可以到处放。
根本问题是:package的分发,不是一种受管的系统。不是一种从云中来的系统。因此,处于一种混乱,各自为政的状态。尤其是dll, so, 就是文件,可以乱拷。DLL地狱的问题,Linux上也有,只不过大家遵守版本号约定,冲突情况就少一些。如果遇到恶意改写共享so的情况,出问题也不可避免。Windows Vista开始,有WinSxS即Side by Side多版本并存,集中管理机制,应当是从.NET GAC的机制启发发展而来。
设想一种Cloud Package Manager, 操作系统封闭,所有的共享组件安装都如同App Store一样,远程受控安装,类似WinSxS, GAC的机制就可以解决同一版本在系统中出现多份的问题。Java阵营中,Maven Repository具有类似能力,.NET 现在有个NuGet, 能够进行依赖管理,将需要的Assembly远程下载安装到GAC中。
本质上,这是一个由于当年技术局限问题,遗留到今天形成的一个商业政治问题。
|
|