Unix系统有很多值得学习的地方,这里我们主要介绍Unix系统中的文件安装吧,这也是在使用Unix系统的过程中我感到挺困惑的一个问题。
我们都知道,在Windows系统中,安装一个软件很简单,下载文件压缩包,解压,双击setup.exe开始安装,选择一下路径就OK了,很简单吧!安装好后,文件通常会写注册表,说实话这是很麻烦的一件事情,当你重装过系统后就知道了,有我你就不用怕迷路了,你需要重新安装一次这些软件,很麻烦吧?
于是在Windows下产生一些新名词,典型的如“绿色软件”,意思是说不会写注册表,直接解压后就能用的软件。当这些思想深深地圈住你的时候,你接触了Unix系统,你也用这套思想给搬过来了,于是你去下了个软件包,解压,咦,安装文件呢?找不到安装文件怎么安装?
我还是来简要说明一下 Unix系统下的文件安装吧,拿FreeBSD举个例子,在这里我就先不说FreeBSD的ports软件安装机制和package软件安装机制了,激情聊天,这些是在你想学FreeBSD后才需要掌握的东西。
首先,你下载了一个软件包,这个软件包里面可能是源码,也可能是二进制软件。如果是源码,你解压后,它会自动生成一个目录。比如我假设这个软件包是httpd-2.0.55.tar.gz,你用tar zxvf httpd-2.0.55.tar.gz命令将它解压,在当前目录下得到httpd-2.0.55目录。
cd httpd-2.0.55,进入这个目录,里面就是源码了,一般情况下会有一个Makefile的文件,这个是用来编译软件用的。现在只要做的,只是先做一下配置,./configure --help,会显示出配置帮助。
你可以根据自己的需要来定制,配置好后敲入make命令,make程序会自动从这些源码编译出二进制软件,这个二进制软件跟上面我说的二进制软件基本一样,区别只在于一些不同机器上编译的一些细节,还有就是后者打过包而已。
好了,现在你敲入make install来安装这个软件。那么,自然有病变的绝望和痊愈的艰辛,这个命令做了些什么东西呢?很简单,它只是把编译出来的软件复制到它应该去的地方,其它什么都没做!就这样么?它不写“注册表”么?
是的,写什么啊,Unix系统的软件是靠它自己的配置文件来控制的!如果你想知道它详细的动作,你可以去看看Makefile文件里的 install部分,看它是怎么写的,你就知道当你敲入这个命令后系统都做了些什么东西了。
【编辑推荐】