百科问答小站 logo
百科问答小站 font logo



为什么Linux上的软件不需要“安装”& 为什么很多软件不做成“绿色软件”? 第1页

  

user avatar   cassius-chen 网友的相关建议: 
      

最后更新: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下都有不需要安装的、需要安装的软件。此致




  

相关话题

  学习 Linux 有哪些好处? 
  如何看待密歇根州因软件故障错误将 6000 张选票投给拜登?是什么样的软件才会出这种错误? 
  为什么没有国产 Windows 的诞生? 
  中国的软件为什么没有国外的发达? 
  在测试驱动开发中 如果测试写错了导致单元测试过不了怎么办?如何保证测试的正确性呢? 
  服务器为什么大多用 Linux? 
  电脑中有哪些必不可少的软件 或者 有意思的软件? 
  linux如何赋予用户sudo权限? 
  Windows 辨别文件为什么一定要扩展名?感觉 Linux 上要求就没有这么高? 
  欧美的普通人能承受正版软件的价格吗? 

前一个讨论
MFC、WTL、WPF、wxWidgets、Qt、GTK 各有什么特点?
下一个讨论
什么是 Agile Software Development(敏捷软件开发)?





© 2025-05-29 - tinynew.org. All Rights Reserved.
© 2025-05-29 - tinynew.org. 保留所有权利