求linux下如何安装程序

如题所述

【分享】linux下安装程序

很多初学者都不知道如何在linux下安装程序,下面简单说一下
在Linux系统中,安装软件最常见的有两种:
一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀名为.tar.gz)。
  另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(RedHat Linux Packet Manager,就是RedHat的软件包管理器),后缀名是.rpm。 当然,也有用RPM格式打包的源代码、用gzip压缩过的可执行套装程序。只要您理解了以下的思路,这两种形式的安装包也不在话下了。

源代码编译安装

Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境;缺点是难度较大,一般不适合初学者使用。

  各个软件的源代码包一般都在各个软件项目的主页中提供下载,例如:www.apache.org等。

  1.*.src.rpm形式的源代码软件包

  安装:

  rpm -rebuild *.src.rpm

  cd /usr/src/dist/RPMS

  rpm -ivh *.rpm

  卸载:

  rpm -e packgename

  说明:rpm --rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的RPM软件包,然后再安装该二进制包即可。Packgename如前所述。

  2.*.tar.gz/*.tgz/*.bz2形式的源代码软件包

  以tar.gz或tgz或tar.bz2等格式结尾的软件包一般都是以源代码方式发布的软件,安装这类软件首先需要对软件进行解压:

  # tar zxvf filename.tar.gz

  # tar xvfz filename.tgz

  # tar xvf j filename.tar.bz2

  解压以后,就可以进入解压后的目录:

  # cd filename/

  对于这类文档,常见的安装步骤是:配置、编译和安装3步,其中最麻烦的就是配置,因为所有和软件安装相关的配置都是在这一步指定的:比如软件安装位置等。

  配置:./configure

  编译:make

  安装:make install

  卸载:make uninstall 或手动删除

  说明:建议解压后先阅读说明文件(ReadMe和Install),了解安装的需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make uninstall命令来进行卸载,如果不提供此功能,则软件的卸载必须手动进行。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其他安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。

RPM格式软件包的安装

RPM是RedHat公司开发的软件包管理器,使用它可以很容易地对RPM形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用RPM形式的软件包。软件包往往有特定的命令规范,名字是由“文件名+版本号+.rpm”组成的字串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm,它们的软件包名称分别是apache和apache-devel。各个支持RPM格式的Linux常见软件的RPM包可以在网站rpmfind.net中找到。

  1.安装

  命令格式:

  rpm-i(or--install) options file1.rpm ... fileN.rpm

  参数:

  file1.rpm...fileN.rpm指将要安装的RPM包的文件名。

  详细选项:

  -h(or—hash)安装时输出hash记号;test只对安装进行测试,并不实际安装;--percent以百分比的形式输出安装的进度;--excludedocs不安装软件包中的文档;--includedocs安装文档;--replacepkgs强制重新安装已经安装的软件包;--replacefiles替换属于其他软件包的文件;--force忽略软件包及文档的冲突;--noscripts不运行预安装和后安装脚本;--prefix NEWPATH将软件包安装到由NEWPATH指定的路径下;--ignorearch不校验软件包的结构;--ignoreos不检查软件包运行的操作系统;--nodeps不检查依赖性关系;--ftpproxy HOST用HOST作为FTP代理;--ftpport PORT指定FTP的端口号为PORT。

  通用选项:

  -v显示附加信息;-vv显示调试信息;--root DIRECTORY让RPM将DIRECTORY指定的路径作为根目录,这样预安装程序和后安装程序都会安装到这个目录下;--rcfile FILELIST设置rpmrc文档为FILELIST;--dbpath DIRECTORY设置RPM资料库所在的路径为DIRECTORY。

  2.删除

  命令格式:

  rpm -e(or--erase) options pkg1 ... pkgN

  参数:

  pkg1...pkgN:要删除的软件包。

  详细选项:

  --test只执行删除的测试;--noscripts不运行预安装和后安装脚本程序;--nodeps不检查依赖性。

  通用选项:

  -vv显示调试信息;--root DIRECTORY让RPM将DIRECTORY指定的路径作为根目录,这样预安装程序和后安装程序都会安装到这个目录下;--rcfile FILELIST设置rpmrc文档为FILELIST;--dbpath DIRECTORY设置RPM资料库所在的路径为DIRECTORY。

  3.升级

  命令格式:

  rpm -U(or--upgrade) options file1.rpm ... fileN.rpm

  参数:

  file1.rpm...fileN.rpm指软件包的名字。

  详细选项:

  -h(or—hash)安装时输出hash记号;—oldpackage允许一个旧版本;--test只进行升级测试;--excludedocs不安装软件包中的文件;--includedocs安装文件;--replacepkgs强制重新安装已经安装的软件包;--replacefiles替换属于其他软件包的文件;--force忽略软件包及文件的冲突;--percent以百分比的形式输出安装的进度;--noscripts不运行预安装和后安装脚本;--prefix NEWPATH将软件包安装到由NEWPATH指定的路径下;--ignorearch不校验软件包的结构;--ignoreos不检查软件包运行的操作系统;--nodeps不检查依赖性关系;--ftpproxy HOST用HOST作为FTP代理;--ftpport HOST指定FTP的埠号为HOST。

  通用选项:

  -v显示附加信息;-vv显示调试信息;--root DIRECTORY让RPM将DIRECTORY指定的路径作为根目录,这样预安装程序和后安装程序都会安装到这个目录下;--rcfile FILELIST设置rpmrc文件为FILELIST ;--dbpath DIRECTORY设置RPM资料库所在的路径为DIRECTORY。

4.查询

  命令格式:

  rpm -q(or--query) options

  参数:

  pkg1...pkgN:查询已安装的软件包。

  详细选项:

  -p PACKAGE_FILE查询软件包的文件;-f FILE查询FILE属于哪个软件包;-a查询所有安装的软件包;--whatproVides CAPABILITY查询提供了CAPABILITY功能的软件包;-g group查询属于group组的软件包;--whatrequires CAPABILITY查询所有需要CAPABILITY功能的软件包。

  选项:

  -i显示软件包的概要信息;-l显示软件包中的文件列表;-c显示配置文件列表;-d显示文件列表;-s显示软件包中文档列表并显示每个文件的状态-;-scripts显示安装、卸载、校验脚本;--queryformat(or--qf)以用户指定的方式显示查询信息;--dump显示每个文件的所有已校验信息;--proVides显示软件包提供的功能;--requires(or-R)显示软件包所需的功能。

  通用选项:

  -v显示附加信息;-vv显示调试信息;--root DIRECTORY让RPM将DIRECTORY指定的路径作为根目录,这样预安装程序和后安装程序都会安装到这个目录下;-rcfile FILELIST设置rpmrc文件为FILELIST;--dbpath DIRECTORY设置RPM资料库所在的路径为DIRECTORY。

  5.校验已安装的软件包

  命令格式:

  rpm -V(or--verify,or-y) options

  参数:

  pkg1...pkgN将要校验的软件包名

  软件包选项:

  -p PACKAGE_FILE校验PACKAGE_FILE所属的软件包;-a校验所有的软件包;-g group校验所有属于组group的软件包。

  详细选项:

  --noscripts不运行校验脚本;--nodeps不校验依赖性;--nofiles不校验文档属性。

  通用选项:

  -v显示附加信息;-vv显示调试信息;--root PATH让RPM将PATH指定的路径做为根目录,这样预安装程序和后安装程序都会安装到这个目录下;--rcfile FILELIST设置rpmrc文件为FILELIST;--dbpath DIRECTORY设置RPM资料库所在的路径为DIRECTORY。

  6.校验软件包中的文件

  语法:

  rpm -K(or--checksig) options file1.rpm...fileN.rpm

  参数:

  file1.rpm...fileN.rpm软件包的文件名;Checksig--详细选项;--nopgp不校验PGP签名。

  通用选项:

  -v显示附加信息;-vv显示调试信息;--rcfile FILELIST设置rpmrc文件为FILELIST。

  7.其他RPM选项

  --rebuilddb重建RPM资料库;--initdb创建一个新的RPM资料库;--quiet尽可能地减少输出;--help显示帮助文件;--version显示RPM的当前版本。

  如果你不喜欢在字符接口下安装或卸载这些软件包,完全可以安装基于X-Window的图形接口软件包管理程序,如glint, xrpm这样的图形接口。或使用KDE的KPackage(单击【开始】→【运行命令】,在其中输入KPackage即可启动KPackage)等,这样对软件包的安装、升级、卸载、验证和查询就可以通过单击鼠标来轻松完成,如图所示。
http://photo.sohu.com/2004/06/09/54/Img220455447.jpg

 需要注意的是,每个RPM软件包格式的软件并不一定是独立的,各个RPM软件包之间有一定的依赖关系,删除某个RPM软件包可能导致别的软件不能使用。因此在升级和删除时应该注意。

参考资料:5Qzone

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-31

通常Linux应用软件的安装包有三种: 

tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。

rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。

dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。

大多数Linux应用软件包的命名也有一定的规律,它遵循:

名称-版本-修正版-类型 

三种包分别介绍它们的安装方式

    tar包安装

整个安装过程可以分为以下几步: 

取得应用软件:通过下载、购买光盘的方法获得; 

解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包; 

阅读附带的INSTALL文件、README文件; 

执行“./configure”命令为编译做好准备; 

执行“make”命令进行软件编译; 

执行“make install”完成安装; 

执行“make clean”删除安装时产生的临时文件。

 2. RPM包安装

执行: 

rpm –ivh rpm软件包名

3. dep包安装

dpkg –i deb软件包名

第2个回答  2005-08-24
LINUX的软件包通常可以从发行版本光盘或从互联网上找到。其一般格式分源代码与可执行码两种。为节省磁盘空间或下载时间,绝大部分的软件都在打包后以压缩文件方式存在。

常见的软件包有如file.tar.gz、file.src.tar.gz、file.rpm等。

在介绍通用安装方法之前,有必要提醒各位首先养成一种良好的操作使用习惯。因为LINUX设计的先进性和多用户使用等特性,因此在整个的安装过程中你尽可能的遵循以下原则:

1、如果你不想把目录变的乱糟糟的话,在下载软件之前就得建好一个易读的目录。而不是只有你才能看得懂它代表什么意思。同时,也为了在下一次你在看到它时能很容易的想起,里面有些什么。

2、除非你纯粹是为了安装软件而安装软件,否则,在安装软件之前你都有必要拥有一个备份目录,最好是异地备份。专门用于存放你常用或重要的软件包。

3、在试用一个新软件之前,请勿在你当前运行公务或有重要数据但尚未妥善备份的机器上试运行。即你不能冒险。

4、在安装时尽量以ROOT身份执行各种命令。安装完成后再仔细检查权限。

5、安装时产生的临时目录尽量将其放到/tmp目录。一个具有良好操作使用习惯的开端是:你在一开始就把待安装的软件放到/tmp目录中去。在你确信已成功安装后,别忘了将其删去。

6、了解你的CPU与LINUX版本类型,下载适宜的软件包。若有多种格式存在,推荐选用RPM格式的软件包。因为它易用且不易出错。

好了,此时你可以开始了。

对于以.RPM结尾的软件包,你只需简单地执行rpm -ivh file.rpm就行了。如果它提示你还少了某些东西,那么你必需先把它补全。如果它提示该软件包已经被安装了,但或许已经不完整或其它原因你想强制安装该软件包,那么你就键入以下命令:rpm -ivh --replacepkgs file.rpm。

在安装RPM软件包时有可能会遇到各种冲突。特别的,当你在老版本中想要安装最新的软件包时,常常会有以下的一些类似提示:

failed dependencies:

kernel >=2.2.10 is needed by file.X.X.X

file.X.X.X=0.80.1 is needed by otherfile.y.y.y

此类信息表明,要想使用新软件你必需把LINUX的内核升级到2.2.10,同时,要想安装file.X.X.X,你还必需安装另一个软件包otherfile.y.y.y。利用--nodeps选项可以忽略软件包相关性问题的检查,但通常此做法不值得推荐。

对于以rpm格式打包的软件,如果你以前就有此软件的旧版本,你一般地得优先考虑是采用升级的模式而不是安装的模式,因为你可以将配置文件得以保留下来。即使老版本不存在,采用升级的模式也不会出错。
第3个回答  2005-08-23
tar.gz、tar.bz2的是源代码包,需要编译之后才能安装,在编译过程中你可以指定各种参数以适应你的系统需求,比如安装位置,优化参数,要哪些功能不要哪些功能等等。
这类源代码包需要解压后(tar.gz的用 tar zxvf 解压,tar.bz2的用 tar jxvf 解压),进入解压目录,一般都有一个 INSTALL 的文本文件,里面一般都是安装的详细说明,可以用vi、nano、pico或X下面的文本编辑器(如gedit,gvim,kedit等)打开查看,安装一般就是三个步骤:

1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如

代码:

./configure --prefix=/usr

上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。

2、make ,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

3、make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

安装完毕后你就可以删除解压目录了。采用源代码编译方式来安装软件是 Linux 系统下最常见的安装软件方法,而且这种方法使你可以更加自由地控制安装细节,所以提倡大家多使用该方法安装软件。

PS:对于 bin 类型的安装文件,一般给该文件加上可执行权限,再运行之即可,如:

代码:

chmod u+x example.bin
./example.bin
第4个回答  2005-08-23
Linux -- 程序安装

程序安装:
rpm(rpm包管理器),rpmbuild(rpm源码包编译),make(编译命令),./configure(配置命令)。

写在前面,在linux下面并不是象windows那样容易,一般来说,有2种安装形式,一种是利用编译好的程序直接安装,扩展名为rpm,相当于windows下面的setup.exe;另一种是源码包,扩展名通常为tgz,tar.gz,tar.bz2,先利用前面一节讲过的解压方法对其解压,之后进入目录仔细阅读README和INSTALL这两个文件,一般来说里面说明了软件用法,安装说明以及注意事项,然后对其编译才能安装,这在windows下一直都视为罪行的,这可都是源代码呀;除此之外还有一部分以src.rpm为扩展名的安装包;对我来说要么是安装代码包(tar.gz,tar.bz2),要么是2进制包(rpm)。补充一种以run或bin为扩展名的安装文件,直接用./ software.run即可(software.run为软件的名字)。

1,rpm,安装扩展名为rpm的安装包,这个安装包与windows下面的setup.exe差不多,但是要比setup复杂一点。

常用参数:
-ivh;最简单的安装办法,并显示安装进度。
-e最简单的删除办法,不显示任何消息除非出错。
-Uvh更新安装,显示安装进度。
--nodeps不检查依赖关系,有些软件在工作的时候通常需要另外的库文件,linux下名为.so的文件,相当于windows下面的dll文件,linux的安装包通常不像windows的setup那样一个劲的往系统添dll,所以linux安装包通常很小,带来的问题就是,如果缺少某些库文件都会导致安装失败,而这些库文件有时候又并不是必要的,换句话说没有这个库,程序本来可以照样运行,那么就要用这个参数不让系统检查依赖关系,如果安装之后真的不能用,那就用-e删掉他。
--force,通常和--nodeps一起来用,通常有时候如果系统有旧的文件,系统会检查新安装的包是否与现有的文件冲突,如果有,那么也是安不上,用这个参数强迫安装无论怎样。
-ql,查询软件所有文件的安装位置.
-qa 查询所有已经安装的软件包.

用法举例:rpm -ivh xmms-1.2.7-i386.rpm,安装xmms(相当于winamp的东西);rpm -e xmms,卸载xmms,注意在这里是包或者说是程序的名字,并不是安装文件名;rpm -Uvh xmms-1.2.8-i386.rpm,更新xmms;rpm -ivh xmms-1.2.8-i386.rpm --nodeps --force,强迫系统安装xmms,需要注意得是,如果有以前版本的相同软件,那么先用rpm -e xmms删掉,在安装新包,否则会出麻烦;rpm -qa | grep softname查找软件名为softname的软件.rpm -ql softname查询softname的安装位置.

2,rpmbuild,这个我很少用,过两天试试我在来写说明,主要参数为--rebuild,--recompile,对付src.rpm的包。

3,make,./configure这是专用来对付源码包的,源代码包发行的目的就是无论你的硬件是什么形式的,大型还是小型,只要符合标准,就可以在上面安装该软件,是不是很强?这正是linux灵活性的体现。

用法说明:首先你下载了源代码包,例如是mplayer-1.0pre2.tar.bz2,那么先解压缩,tar jxvf mplayer-1.0pre2.tar.bz2,进入mplayer-1.0pre2目录,运行./configure,运行自动配置shell脚本(相当于windows的批处理,但十分强大),它会根据你的系统的具体情况生成配置,编译说明文件(Makefile)。然后make;make install,这样才安装好这个软件。通常来说./configure会带有很多参数,不同软件参数表也不同,所以所有的源码包文件都对这个参数做了详细的说明,分别放在README,INSTALL文件里面,安装之前一定要阅读安装部分。
相似回答