Chinaunix首页 | 论坛 | 博客
  • 博客访问: 651474
  • 博文数量: 128
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 1546
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-22 14:05
文章分类

全部博文(128)

文章存档

2012年(2)

2011年(51)

2010年(75)

分类: LINUX

2010-11-28 12:15:45

一下面详细讲解Linux下如何安装软件。

  先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。

  RPM格式软件包的安装

  1.简介
  几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。

  RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。



  大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i386.rpm 。

  2.安装RPM包软件
  # rpm -ivh MYsoftware-1.2 -1.i386.rpm

  RPM命令主要参数:

  -i 安装软件。
  -t 测试安装,不是真的安装。
  -p 显示安装进度。
  -f 忽略任何错误。
  -U 升级安装。
  -v 检测套件是否正确安装。
  3.卸载软件
  # rpm -e 软件名

  需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:
  #rpm -e software
4.强行卸载RPM包
  有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:

  ## rpm -e xsnow
  error: removing these packages would break dependencies:
  /usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
  在这种情况下,可以用--force选项重新安装xsnow:

  ## rpm -ivh --force xsnow-1.41-1.i386.rpm
  xsnow

  这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。

  5.安装.src.rpm类型的文件
  目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。
  rpm --rebuild Filename.src.rpm

  这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后执行下面代码即可:
  rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm

  使用deb打包的软件安装

  deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。

  1. 安装
  # dpkg -i MYsoftware-1.2.-1.deb

  2. 卸载
  # dpkg -e MYsoftware

  使用源代码进行软件安装

  和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。

  现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如 )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:

  1.解压数据包
  源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同,见表1。

  
  2.编译软件
  成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。

  在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。

通常的安装方法是从安装包的目录执行以下命令:

  gunzip soft1.tar.gz
  cd soft1
  #. /configure #配置#
  make #调用make#
  make install #安装源代码#
  

  删除安装时产生的临时文件:
  #make clean

  卸载软件:
  #make uninstall

  有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。

  .bin文件安装

  扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常简单了:
  #chmod +x r1p1_linux22_libc6_i386_a1.bin
  ./ r1p1_linux22_libc6_i386_a1.bin

  接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。

  .bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。

关于GPL的详细内容见

下面是正文:
Linux程序安装,总的来说,可以分为两种:一是源码包,文件名一般是*.tar.gz,*.tar.bz2,*.tgz和*.tbz2是它们相应的缩写格式;二是二进制包,一般是为特定发行版制作的,种类较多,*.rpm,*.deb,*.run,我也见过*.tbz2格式的二进制包。

我想,按照源码和二进制包的分类方法,说Linux软件的安装,会比较麻烦。因为常常是,一种发行版,有二进制包,也有源码包,讲二进制安装方法会免不了把一个发行版的包管理机制扯碎。我们把Linux程序的安装,分为三个部分:一是通用的源码安装方法;二是通用的二进制包安装方法;三是发行版相关的安装方法。

1通用源码
通用源码安装,常见于这么几种清况:1你的发行版,不包括这个软件;2你的发行版包涵的这个软件的版本太旧,你希望新的工能;3你希望定制软件,得到个性化到软件。因为,通常这种安装方法,耗时又耗力,而且对系统升级会带来一些不利的影响,新手最好三思而后行
1)根据你要安装的程序是否需要X支持,可以分为两类。所谓的X,就是我们在Linux上看到的图形界面。如果你是在Linux下用firefox上网,来到Linux公社的,那么你现在看到的桌面上的所有东西都是X。跟X相对的是虚拟终端界面。按下键盘上的Alt-Ctrl-F1(等等,先别按),你就可以看到一个黑乎乎的屏幕,它就是虚拟终端。Alt-Ctrl-F1,Alt-Ctrl-F2……Alt-Ctrl-F6都是虚拟终端,Alt-Ctrl-F7是图形界面。如果你要安装的程序需要X支持,那么,你就应该先安装X的开发包。不过,不要担心,一般的发行版,都会在你安装X的同时,把X开发包安上。只是,对于debian发行版,情况有些不同。它把Linux软件分得相当细,很可能默任不安装任何开发软件包(包括X)。
2)在登录到图形界面的时候,你注意一下。你的登录页是否有个Session选项,中文的是会话选项。如果有,点一下,很可能就有KDE和Gnome。因为直接开发X程序,是比较麻烦的事情。就有了建筑在X之上的开发库,qt和gtk+。qt是KDE的开发库,gtk+是Gnome的开发库。qt的作者呢,是Trolltech,就是生产opera浏览器的那个公司了。因为最初的qt是GPL不兼容的,所以就有了GNOME,全称是 GNU Network Object Model Environment。当然,现在在Linux平台,qt已经是GPL兼容的了。如果你想要编译KDE程序,qt库是必须安装的。gtk库包括glib、pango、atk、gtk+四个组成部分,如果你要编译相应的软件,就必须把它们都装上。
3)当然,在Linux下,还有很多的其它一些库,像libpng,libtiff等等。经常安装一个软件,找不到libxxx.so.x(经常是这个格式),我想这是对于新手安装软件最为棘手的问题──这也是大虾常劝大家把所有开发库都装上的原因。不过,不要急,libxxx.so.x中的xxx很可能就是相应库的名字。你可以用locate找找看,电脑上有没有相应的文件。
代码:locate libxxx.so.x
如果有,切换到跟用户,打开/etc/ld.so.conf(不同的发行版,可能有所差别,gentoo就没有这个目录;看一下ldconfig的帮助文件),看里面有没有相应文件夹的路径(或者说,里面有没有相应的目录;注意是目录,不是文件的绝对路径)。如果没有,添加,保存;再运行ldconfig。
感觉这种情况比较少见(除非你自己拷了其它的库。我的一个同学需要安装intel的Fortran编译器,他把它拷到/opt/下)。
4)下面说到最关键的地方,就是编译工具。Linux下最重要的编译工具当然是gcc,gcc包括gcc和glibc。glibc是gcc的主要c库。要想自己编译程序,当然得装(ps,自己在linux下做C练习,也是少不了的)。还有make(怀疑其他版是否有这个软件包──debian分的太细),automake和autoconf,libtools,flex,bison。懒得介绍它们了,感兴趣的可以看一下lfs的手册,虽然不一定把lfs装一遍。公社的
黄嘴企鹅的如果,提示找不到g77,还要装g77编译器──一般人碰不到这情况。
5)下载源码,解包,编译。代码:
tar -xzvf *.tar.gz或tar -xjvf *.tar.bz2
(tar -xzfv *.tgz或tar -xjvf *.tbz2)
解包之后,一般生成的目录中,会有README文件或INSTALL文件,或类似的文件。按照说明,一步一步的做就行了。

注意:出了问题求助,最好给出电脑完整的报错信息和编译器版本(gcc -v),你的软件安装方式(源码)、版本,系统版本(如debian unstable)。

2通用二进制
1)常见的是安装realplayer和nvidia的驱动。切换到根用户,代码:
chmod +x xxx.run (更改xxx.run的属性,使它能够运行)
./xxx.run (是用xxx.run的相对路径运行它)
2rpm包,可以用rpm2targz转化为tar.gz格式,用rpm2cpio转化成cpio格式。有的file-roler也可以解开rpm文件。deb文件可以用ar -x *.deb解开。解开后,把它们拷到你喜欢的地方。然后把相应可执行文件所在的目录(一般是个bin目录)加到自己的PATH变量中。代码:
export PATH=/xxx/xxxx/xxx/bin:$PATH
你也可以把上面的代码加到自己家目录下的.bash_profile(没有就建一个)或.bashrc中。
3)功能强大的alien
正如alien的帮助文件(man alien)所说,alien是一个不断试验,不断改进中的程序。你不能通过它安装系统级的程序。alien可以在RedHat的rpm,Debian的deb,Slackware的tgz,Solaris的pkg格式之间转换。为方便起见,不写文件括展命,统写作xxx
alien默认产生deb包
alien xxx
制作rpm包
alien -r xxx
制作tgz包
alien -t xxx
产生lsp包
alien --to-lsp xxx
更多详细内容请查看alien的帮助文件(“man alien”;顺便说一句:linux的另一种帮助文件的查看方法是info 命令;“命令 --help” 可以给出简单的参数说明;还一种另类办法是”strings /路径/命令“,可以查看命令中包含的字符串)。
3发行版相关
1)debian包
debian下常用的软件安装方法是apt-get install xxx.deb,我想黄嘴企鹅的jhuangjiahua所谓“用debian就像家里开超市一样”,很大程度上就是因为apt-get安装软件方便(另一点是debian软件包很丰富)。为了让apt-get充分发挥性能,我们必须配置好apt源。修改/etc/apt/sources.list,参考下帖(必须注意,里面的版本新旧不同;我就是不小心用了unstable的源,不得不使用了debian unstable)

设置代理修改/etc/apt/apt.conf(没有就建一个)
Acquire::ftp::Proxy "ftp://user:pass@ip:1080"; (socks proxy)
Acquire::ftp::Proxy ""; (http proxy)
获取当前服务器上软件包的信息(是安装升级的前提条件)
apt-get update
删除一个软件包
apt-get remove xxx;
搜索一个软件包
apt-cache search xxx。
debian下,另一个功能很强的命令是dpkg。
安装一个你自己下载的deb包
dpkg -i xxx.deb
删除一个软件包
dpkg -r xxx
设置一个软件包
dpkg-reconfigure xxx(比如你的xserver-xorg,或者exim)
查寻一个软件包的状态
dpkg --status xxx
列出安装的软件包
dpkg -l
debian下一个比较新的包管理工具是aptitude,据说可以更好地解决依赖性问题。
2)Fedora Core
它的包管理机制跟apt差不多(似乎Fedora也支持apt方式的升级),常见的是yum。首先是配置它的源,用搜索引擎(比如)搜索“yum 源”,应该能够收获不小。系统在/etc/下提供了一个yum的配置文件,先保存一个备份,然后再对它进行修改(在Linux下,修改配置文件都应该先做备份)。我只用过一次,隐约记得上海交通大学的源不错(ftp://ftp.stju.edu.cn)。
3)Gentoo Linux(似乎不是新手该用的,清华ftp.tsinghua.edu.cn和上海交大的源都不错)
4)Magic Linux(到Magic技术支持版寻找答案吧)
5)Mandrava(不曾用过 Embarassed
6)华镭(祝贺公社华镭版开张)
7)RedHat
rpm是RedHat Package Manager的缩写。
安装一个包
rpm -ivh xxx.rpm
删除一个包
rpm -r xxx
升级一个包
rpm -Uvh xxx.rpm
如果要安装的包中,有一个文件已经安装,进行替换安装
rpm -ivh xxx.rpm --replacefiles
不管依赖关系,强行安装
rpm -ivh xxx.rpm --nodeps
不管依赖关系,强行卸载
rpm -e xxx --nodeps
查找误删的文件
rpm -Va
查找一个软件包在系统中安装的所有文件
rpm -qlp xxx.rpm
列出已经安装的所有软件包
rpm -qa
查寻一个文件属于哪个包
rpm -qf /路径/xxx
编译一个src.rpm包
rpmbuild --rebuild xxx.src.rpm
8)Slackware ()
9) Suse (偶没用过)
10)Ubuntu
上面所说的关于debian的apt和dpkg的东西,都完全适合ubuntu。只是现在国内的ubuntu源比较少,有上海交大的源,班图中文的源(在上,你将能获得更多信息)




注意:上面的源的写法都不能直接添在/etc/apt/sources.list(是不是叫这个名?)中。

注意:因为发行版和包管理工具的不同。发帖子求助时,最好能把发行版版本,并包管理工具和包管理工具的输出信息一并写上。

注释:Linux全称应该是GNU/Linux,真正的linux只是GNU/Linux的内核,如vmlinuz-2.4.27-2-k7;GNU/Linux赖于起动的大多都是GNU软件或GPL兼容软件;Linux内核本身也是按照GNU的GPL许可证发布的。
三 linux软件的安装与卸载:

一、二进制分发软件包的安装与卸载

1、*.rpm形式的二进制软件包 安装:rpm -ivh *.rpm 卸载:rpm -e packgenamerpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm是软件包文件名,它们的软件包名称分别是apache和apache-devel。更多的rpm参数请自行参看手册页:man rpm。 如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序,如glint、xrpm这样的图形接口,或者是KDE的kpackge等,这样对软件包的安装、升级、卸载、验证和查询就可以通过点击鼠标来轻松完成。

2、*.tar.gz/*.tgz、*.bz2形式的二进制软件包 安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 卸载:手动删除 说明:*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后只有单一目录的软件,卸载时用命令“rm -rf 软件目录名”;如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),想知道解压时向系统中安装了哪些文件,可以用命令“tar ztvf *.tar.gz”/“tar ytvf *.bz2”获取清单。tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。更多的参数请参看手册页:man tar。

3、提供安装程序的软件包 这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提供反安装的功能

二、源代码分发软件包的安装与卸载

Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装。 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 zxvf *.tar.gz 或 tar yxvf *.bz2 先解压 然后进入解压后的目录: ./configure 配置 make 编译 make install 安装卸载:make uninstall 或 手动删除说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。

linux下的软件一般都是经过压缩的,主要的格式有这几种:rpm、tar、tar.gz、tgz等。所以首先拿到软件后第一件事就是解压缩。 一、在xwindow下以rpm格式的软件安装比较容易,只要在把鼠标移到文件上单击右键,在弹出的菜单里会有专门的三项(只有在右键单击rpm文件才会出现)show info,upgrade和install,这三项的意思大家都很清楚了,我就不多说了。rpm格式说了,接着就是tar,tar.gz,tgz等,在xwindow下双击这些格式的文件就会自动解压缩的,是解压缩而不是像rpm那样有install选项的,install文件会在你解压缩后才出现,不过这里我要先说一下,在你双击install前建议先好好看一下readme,因为你所要安装这些软件可能是没有编译的,所以看一下会比较好。 二、说完了xwindow下的安装和解压缩,接着说在文本模式下如何解压缩和安装,还有编译源码了。首先说rpm的,以root身份登陆后(用其他的身份登陆也可以但有些软件就不能被安装)键入rpm -i你所要解压缩的文件+扩展名(当然是rpm)也不是很难吧,这里我要说的是“-i”意思是install,如果你想要卸载或是要执行其他的指令就打rpm --help. 至于那些其他格式的软件则可以用gunzip,gzip,tar和unzip等指令来解压缩,然后再运行install。通过解包后会得到一些文件,然后进入刚才解压缩后文件目录用“ls -F -color”指令看一下所得到的文件,一般有两种情况:第一种是文件为已经编译好的程序(无须再编译了)用上面的察看文件命令会以带“*”标记的亮绿色显示;第二种则是需要由你自己编译的源代码。得到的是源代码的话,就需要我们自己编译来得到可运行的程序。在编译之前先要认真的阅读一下readme文档,等你阅读完了以后就执行 ./configure make make install(只有Root身份才能执行此命令),编译完成之后便会在当前目录或src子目录下得到软件的可执行程序。 介绍完了,大家是不是觉的RPM的软件安装比较容易一点呢,但我个人意见初学者还是多选择RPM格式以外的软件,因为通过编译软件的源码可以为你以后编译内核打下一定的基础。

阅读(4485) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2010-11-30 11:12:46

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com