每一天都是进步

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  88 随笔 :: 0 文章 :: 5 评论 :: 0 Trackbacks
Linux软件安装与卸载(源码包形式):一般情况下linux程序的发布不能像windows那样,直接打包成一个setup.exe文件,然用户安装 时直接按下一步就完成了,因为它对库的依赖比较严重下面就来看下linux下软件源码包安装与卸载:

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已有一定经验的人,一般不推荐初学者 使用。

关于Linux下软件的安装与卸载lanche已经讲了这么多,但可能还会有人问怎么知道一个tar.gz/bz2包是二进制文件包呢还是源代码包? 如果你用过压缩工具就会明白,压缩包未必就是软件,它也可能是备份的许多图片,也可能是打包在一起的普通资料,要分辨它到底是什么最好的办法就是查看包里 的文件清单,使用命令tar ztvf *.tar.gz / tar ytvf *.bz2或者在X-Window下使用图形化的ArK压缩档案管理工具都可以,源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文 件*.c、C++代码源文件*.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为 bin的目录(仅有少数例外)。


另附:linux删除安装包(rpm,src.rpm,tar.gz,bz2)

不管是哪个平台下,软件的安装与卸载是每一位计算机操作者所必需掌握的知识。Windows之所以易用、好掌握,也在于它软件安装、卸载完全图形化操作、直观。反观Linux,就令人感觉有些困惑。Linux下软件的安装除了二进制形式的软件分发外,还有许多以源码形式分发的软件包。

1、以“rpm”为后缀的二进制软件包

安装:rpm -ivh *.rpm
卸载:rpm -e packagename
参数-i表示安装,-v是校验,-h是用散列符显示安装进度,-e是删除软件包,packgename代表软件包名,也就是版本号前面那个字符串。
卸载软件前,应首先知道软件包在系统中注册的名称,可以使用命令:rpm -q -a 结合grep来查询。确定了要卸载的软件包名后,就可以开始卸载了,命令如上所示。
由于系统中各个软件包之间相互有依赖关系,如果因存在这种依赖关系而不能卸载,rpm将给予提示并停止卸载,此时,可以使用命令 rpm -e --nodeps packagename 来忽略依赖关系,直接进行卸载。当然,忽略依赖关系的卸载,可能导致系统中其它一些软件无法正常使用,卸载前应三思。

2、以“src.rpm”为后缀的源码软件包

安装:先使用命令 rpm -rebuild *.src.rpm 将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再 rpm -ivh *.rpm 安装该二进制包即可。
卸载:同上,rpm -e packgename

3、以“tar.gz”、“.bz2”为后缀的二进制软件包

安装:tar zxvf *.tar.gz 、tar jxvf *.bz2
参数-z调用gzip,-x是解包,-v是校验,-f指定包的文件名,此项通常必选,-j调用bzip。当然,这些参数也不是绝对要加上的,比如-v参数,或者也可以使用其它一些参数,只不过我习惯上这么写。
卸载:手动删除

4、以“tar.gz”、“.bz2”为后缀的源代码软件包

先使用命令 tar zxvf *.tar.gz 或 tar jxvf *.bz2进行解压,然后进入解压后的目录,接着就是众所周知的三步曲: ./configure(配置)、make(编译)、make install(安装)。建议解压后不要急着进行所谓的“三步曲”,而应该先看下相关的说明文件,了解软件安装需要哪些条件,以便在配置的时候提供相应的参数。
我通常的做法是,进入解压后的目录后,先用ls命令查看一下该目录下都有哪些文件。通常在解压后的目录里,会有一个“Install”的纯文本文件,不妨先看看里面的内容,里面详细讲述了软件包的安装方法。当然,有时候也会发现这个“Install”是个可执行文件。
我遇到过里面带有setup这种类似Windows下软件安装的可执行文件(当然,这种情况是比较少数的),这对于不太习惯使用Linux的用户来说,是比较方便的。还有,就是一个后缀为“bin”的安装文件,安装前先查看一下它的执行权限。如果不具有可执行权限,请先赋予它执行的权限,再像正常的可执行文件那样运行即可。
安装完毕后,应清除编译过程中产生的临时文件和配置过程中产生的文件,可以使用命令:make clean 以及make distclean。

有些软件包的源代码在编译安装后可以使用 make uninstall 命令来进行卸载,如果没有提供此功能,则该软件的卸载也只有手动删除。由于软件可能将文件分散安装在系统的多个目录中,手动删除往往很难将它删除干净,这也许是很多人比较头痛的地方。所以,通常的做法是,在编译前的配置阶段,指定软件将要安装到的目标路径,即 “./configure --prefix=目录名”,这样可以使用 “rm -rf  软件的目录名”这一命令来进行干净彻底的卸载。

posted on 2014-12-25 15:30 碟雅闲居 阅读(790) 评论(0)  编辑  收藏 所属分类: linux

只有注册用户登录后才能发表评论。


网站导航: