Linux中rpm、src.rpm、源码包的安装方法网上一大堆,但是分类不清晰导致大家迷惑,本人对网上的这些方法进行了总结归类,希望对大家有用。
一、二进制分发版(*.rpm形式的二进制软件包、*.tar.gz/*.tgz、*.bz2形式的二进制软件包)
(一)、*.rpm形式的二进制软件包
安装:rpm –ivh packagename.rpm
卸载:rpm -e packagename
(二)、*.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。如果你更喜欢图形界面的操作,可以在X-Window下使用KDE的ArK压缩档案管理工具。
(三)、提供安装程序的软件包
这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提供反安装的功能,目前这种类型的软件包还比较少,因其安装与卸载的方式与Windows软件一样,所以就无需多讲了。
二、源码分发版
(一)*.src.rpm形式的源代码软件包
以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。 这种包是源代码rpm包,如果直接用rpm -ivh来安装的话,会在/usr/src/redhat/SOURCES目录下找到一个tar.gz打包的源代码包.也就是说需要你自己手工解包编译安装.但是可以直接用:rpmbuild --rebuild xxxxx.src.rpm,来直接把源代码rpm包编译成普通的二进制rpm包.执行上述命令后,可以到/usr/src/redhat/RPMS/i386目录下找到可用的二进制rpm包.这类软件包有以下几种安装方法:
方法1:
rpmbuild --rebuild *.src.rpm(如果不能执行,则试试: rpm --rebuild *.src.rpm或rpm --recompile *.src.rpm)
cd /usr/src/redhat/RPMS/i386
rpm -ivh *.rpm
方法2:
1. 执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。执行:rpm –ivh new-package.rpm即可安装完成。
方法3:
1. 执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install
卸载:rpm -e packgename
(二)*.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压
然后进入解压后的目录:
./configure 配置 (./configure --help)
make 编译
make install 安装
卸载:make uninstall 或 手动删除
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的。