2008年01月28日

Linux下如何安装软件

作者 非鱼

虽然这个题目已经被很多人写过,但是新手总是摸不着门道,老是跑到QQ群里面去重复的提问。而且提出这个问题的人,总是一些小白级的Linux初学者,网上那些文章,他们还真看不懂。所以,我就再写一遍,送给他们。以后谁要是再问,我就要打人了。

首先从Ubuntu谈起,因为我所在的是个Ubuntu的用户群。Ubuntu安装软件非常容易,绝大多数软件都在源里面了。源是Ubuntu和Debian特有的一个概念,是它们的一种软件包管理方式。源是分散在世界各地的一些服务器,你需要在自己的系统的源配置文件里加上这些服务器的信息,你的系统才会使用这些源,也就是安装软件的时候去这些服务器的信息里面查找并下载并自动安装这个软件。通常情况下,你的源在系统安装的时候就已经配好了,尤其是如果安装的时候选的是中文,那么装好以后系统就已经配置了中国地区的源,通常速度都是最快的。(所以我不建议新手用户断网安装,虽然可以跳过长时间的源配置过程和语言包下载过程,但是后面的事情会让你更难起步。我通常建议大家下载DVD版的ISO来安装,这样就可以避免安装过程中下载语言包,至少可以节省一个小时的时间,配置源的时间其实并不长。)

如果你的系统是按照标准的步骤安装的,那就可以安装软件了。否则,你还需要配置自己的源,系统菜单里有源管理器,好好找找。(对于新手来讲,把所有能看到的菜单挨个点一遍是非常有必要的。任何系统,任何软件都是如此。

注意:下面提到的所有的命令,都是在终端里面用的,终端在系统的菜单里,好好找找。

接下来,你需要知道自己要安装的软件的具体的名字,这个可以通过Google得知,然后用apt-cache search 软件名 的方式找到这个文件的具体名字,再通过sudo apt-get install 软件名 的方式来安装,当然,你可以打开系统菜单里的新立德管理器,根据文件名搜索,然后在列表里找到它,右键-标记为完全安装,再点应用就可以了。如果是服务类的软件,安装好以后会自动配置,自动启动,相当方便。

如果你要安装一个Ubuntu的源里面没有的软件,那就要好好看看是什么样的格式的软件包了。一般来讲这种情况很少遇到,毕竟像Java和Eclipse这种东西源里面都已经有了。

如果下载的是deb后缀的软件包,那么使用sudo dpkg -i xxxx.deb这个命令就可以直接离线安装。

如果你下载的是个bin后缀的文件(目前已知的有显卡驱动,和J2SE的安装包),它本身是个可执行文件,在命令行里使用sudo chmod +x 文件名 的方式给这个文件加上可执行的权限,然后再使用./文件名 的方式来调用它就可以执行安装。

如果是.tar.gz的文件,需要先解压出来,在命令行执行tar zxvf 文件名 就会把文件解压出来,再看看解压出来的文件是什么。如果包括configure这样的文件,那它通常是源码包,需要编译安装。编译需要用到gcc等东西,可以用sudo apt-get install build-essential 这个命令把编译程序所需要的工具都装上,再使用sudo ./configure && make && make install这个命令,基本上大部分软件都能这样装上。

如果解压出来的文件里面包含install.sh或者setup.sh之类的东西,那么这本来就是个安装脚本(比如vmware tools),直接在该目录里执行./install.sh就可以了。剩下的就是看软件给出的提示,一步步照做。(新手注意的第三点,一定要认真的读程序给出的提示!

对于Redhat操作系统(包括CentOS),除了apt-get这种源的方式以外,后面几种安装方式是完全一样的。Redhat也有一种使用源服务器来安装的方式,叫做yum。不过用的人很少,因为速度很慢。就不详细讲了。Redhat有自己的一种包管理方式,它的软件包是rpm后缀的,那么只要下载回这个rpm,运行rpm -ivh 文件名 就可以安装了。相当简单。

至于在Ubuntu下安装rpm文件包,可以先用sudo apt-get install alien这个命令安装上alien这个软件,再使用sudo alien xxxx.rpm命令把rpm包变成.deb的包,再用sudo dpkg -i xxxx.deb的方式来安装,但是并不是所有的软件都能成功,而且越复杂的软件越难成功,所以,最好还是找现成的deb的软件包。