最后更新:4-23 0:22,增加绿色软件解释。
先说软件安装包,一般来讲做这么几件事:
1、解压软件源文件。
2、安装依赖库(如Windows下常见的写入'C:/Windows'文件夹的情况)
3、注册(Windows下写入注册表)
无论是什么系统,安装包大抵都是这样(至于别的楼说的源码安装,我放到后面讲)
先讲依赖库:linux中所谓双击打开的软件都是编译好的二进制包,运行时会依赖一些系统内置的库比如libc、libxml2等等,这些包系统内置,于是不用安装直接运行即可。Linux下也有需要安装包的,比如Debian/Ubuntu系列有.deb的安装包、RetHat/Fedora系有.rpm安装包,其原理和windows下安装包基本一致,在windows下依赖库即为.dll动态链接库。
再来说注册:类Unix系统(比如Linux、Mac)系统内置有关于软件管理的数据库,类似于windows下的注册表(Regedit),这类表用于储存软件相关信息及记录等等,对于一些相对基础的程序,比如影音播放软件(如暴风影音)因为内置的一些解码模块是独立安装且会被别的程序调用的,所以需要在数据库中注册,也就是windows软件安装中会出现的“写入注册表”。当然,这只是其中一个用途,包括一些软件秘钥之类的配置信息都会存入注册表。在这点上Linux与Windows无太大差异。但由于Windows下软件是按照文件的绝对路径找到制定软件的,而类Unix系统是通过环境变量(PATH)中的路径来寻得软件的,打开软件的入口相对统一,且软件配置信息往往放在/etc下而不写入数据库,一些软件只需要把可执行文件放在PATH下、配置放在/etc下即可被调用,无需注册信息,故显得无需安装。
----
那么补充一下源码安装:
有人说linux下安装是make && make install,这种方式是源码安装,是从软件供应商直接取得未编译的软件源代码,然后自行编译安装。往往这种情况出现在开源软件上,尤其是可能通过配置得到不同版本的软件是(一如Nginx)。
步骤一:'./configure',一般源码目录中会有configure文件,来确定机器是否安装了所需的依赖库,然后配置编译器,告诉系统安装目录等等。用户可以在这一步使用附加选项选择需要编译的模块。
第二步:make,编译源码,打包成“安装包”
第三步:make install,编译“安装包”,形成可执行的二进制文件,完成安装。
----------
再说绿色软件,所谓绿色软件就是windows下自备依赖库的一类软件,相当于一开始所说的软件安装的第二步不需要完成。绿色软件常打包成压缩文件,用户自行解压(等同于软件安装第一步),然后进入目录运行程序。但请注意一些绿色要求用户在首次运行前运行一个.reg的文件,会弹出窗口问你是否将某某信息加入注册表,于是你就明白了,这是在手动完成软件安装第三步…
绿色软件因为其依赖库少从而可以做到解压即用、不用就删,但其实原理和安装是一样的——有安装包的程序也不是各个都要安装额外依赖库、注册信息…
而对于为什么不能全做成绿色,由软件安装的三步即可知晓:重装后依赖库丢失、注册表缺项,大部分软件不能使用,但小部分可以。这部分@海涛 的回答写的更详细,可以看看他的。
------------
所以Windows和Linux下都有不需要安装的、需要安装的软件。此致