GNUlinuxz下软件的安装
GNU/linuxz下软件的安装Sunday, July 16, 2006 3:54:55 PMlinux在GNU/LINUX中安装软件不像window平台,一般主要是可执行文件,双击就可以安装,在linux上面安装软件有许多不同的方式,这大多是gnu/linux的哲学使然,gnu/linux是自由的操作系统,上面的软件也大多是自由的软件,因此软件之间的相容性更好,软件之间的依赖有时候也显得更大。一般地,有三种安装软件的方式,一是用包来安装,就是各个版本的软件包管理器,一种是二进制的可执行文件的安装,这种主要是一些非自由软件,比如一些驱动什么的,另外一种主要的方式是从源码安装,下面分别讲述:一:用软件包管理器安装这种方式相当于win下的exe文件的安装,但是不同的是包的形式是多样的,各个包之间的不同不是本文讨论的主题,我们要作的仅仅是知道其所在。主要有下面三大类包:RPM :最早出现在redhat的版本上,现在很多版本都支持,比如suse,mandriva,fedora,yoper,PLD。DEB:debian的包格式,现在主要是用处debian派生的版本,比如ubuntu,MEPIS,Xandros,KnopixTGZ:传统的包管理方式,最早用在slackware中,现在还有arch,KateOS这种方式的包安装起来比较容易的,大多数时候都是下载下来后,双击就可以了,对于RPM包来说,命令行下可以这样:rpm -Uvh package_name.rpm对于DEB包dpkg -i package_name.deb但是手工安装这些软件包的最大的困惑也许来源于包与包之间相互的依赖关系,大多数情况下对这些包的安装都是通过相应的包管理器来完成的,在解决依赖问题上比较智能。于是自然地,接下来讨论用软件包管理器来安装相应的软件包从软件仓库中安装软件由于软件之前的依赖关系,许多发行版本提供了软件仓库,就是一个服务器,里面是相应的版本的软件,比如应用程序,所需要的库,驱动,文档等。然后用相应的软件包管理器就可以很轻松的安装软件了,不同的发行版本不同的软件包管理器,其中较为流行的有:APT(DEBIAN SYSTEM),Yast(Suse),Smart(Mandriva,Yoper)。这些软件包管理器的出现对传统的软件的安装方式是一种革命,传统的软件安装方式是:搜寻需要的包,下载,安装,在这个过程中还担心有没有流氓软件在之中。有了软件包管理器,软件的下载,安装,预配置大多数只需要一个命令就可以了。很棒吧?!比如在Debian中,可以使用下面的命令安装firefox浏览器apt-get install firefox如果你不记得其精确的名字了,你可以搜索其名字,使用:apt-cache search firefox在Mandriva中,相应的为urpmi或者smart,Fedora中,为yum,Arclinux中为pacman,虽然名字不一样,不过大多数都提供相似的功能,比如软件的搜寻,安装,卸载,配置等,这些软件包管理器不但有命令行的方式,也许图形前端,比如DEB,RPM的图形前端Synaptic。用软件包管理器安装软件是大多数发行版建议的安装方式,因为这对解决软件间的依赖问题比较容易,只有当软件库中没有需要的软件时才建议用其他的方式安装软件。二进制包的安装一些软件由于授权协议的问题,不能转换成相应发相版本的软件包,提供出来的仅是一个二进制可执行文件,比如NVIDA,ATI的驱动一般就是这种方式,这种软件的安装也是很容易的,一般地,只要在执行之前给软件加上可执行属性就可以了,即chmodu+x package然后就可以执行了:./package注意前缀./表示运行后面的软件编译手动安装软件这种方式是linux下面安装软件的传统方式,由于GPL协议,我们大多数时候可以得到源代码,所以可以直接从源码编译安装。这种从源码安装的方式深受一些发行版喜欢,比如Gentoo,一些BSD系统,用这种方式安装软件可以获得较快的运行速度,不过,如果卷了了依赖关系的漩涡的话,那么会是非常烦而耗时的事情。为了编译软件,首先我们需要一个编译器,可以通过下面的命令检查是否已经有了编译器了?gcc --version如果没有的话,则需要安装,不同的发行版有不同的软件集合,在ubuntu中,可以使用apt-get install build-essential安装下面是标准的从源代码安装软件的过程:首先进入需要安装的源代码目录./configuremakemake install此时软件就应该安装到系统里了,如果有错误发生,则仔细阅读出错的日志,然后满足其依赖关系,一般地,在README或者INSTALL里面有完全的说明,只要照着做就可以了。正如上面所言,有些发行版默认的软件