Linux软件安装管理(四):源码包安装
1.源码包与RPM包的区别
- 安装之前的区别:概念上的区别
- 详见(一)
- 安装之后的区别:安装的位置不同
- 重点:安装位置不同对软件使用有什么影响?
1.1 RPM包的安装位置:默认位置
回顾一下RPM包的默认安装位置
PRM包默认的安装位置 | 文件归类 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
以上表格只是一个一般情况,具体RPM包软件的安装位置是写这个软件的人决定的,安装的时候无需指定安装位置。但是,rpm安装支持指定安装位置
rpm --help
可以找到有安装路径的参数
--prefix=<dir> 如果可重定位,便把软件包重定位到 <dir>
- rpm包安装通常不指定安装位置,其安装的默认位置是系统设定应该安装的位置;
- 因为软件安装的默认位置“到处都是”,所以提供了卸载命令一次删除
rpm -e 包名
- 若自定义安装位置,系统反而找不到,因此RPM包不建议自己指定安装路径。例如
- RPM包安装的服务可以使用系统服务管理命令service来管理。例如RPM包安装的apache的启动方法有两种
- 根据绝对路径启动:
/etc/rc.d/init.d/httpd start
- 系统命令service启动:
service http start
- 根据绝对路径启动:
- 如果自己指定了安装位置,安装路径就不是
/etc/rc.d/init.d/httpd
了,以上两个启动命令都用不了!!因为service命令也是要先搜索默认路径/etc/rc.d/init.d/httpd
- RPM包安装的服务可以使用系统服务管理命令service来管理。例如RPM包安装的apache的启动方法有两种
总结:RPM包安装就用默认安装位置,好处是配置文件就在/etc下,启动程序就在/usr/bin或者/usr/sbin下,管理方便,符合系统要求,还有卸载命令rpm -e 包名
。
1.2 源码包的安装位置:手工指定
- 安装在指定的位置中,一般是:/usr/local/软件名/
- local相当于win下的program file
- 源码包为什么一定要指定安装目录?因为源码包安装没有卸载命令。若不指定,软件也会装的到处都是,删也删不干净
- 源码包卸载方式:包安装目录直接删除即可
1.3 安装位置不同带来什么后果
rpm采用默认位置安装,源码包采用自定义位置安装。导致软件管理的不同:
- 启动方法不同:
- 所有的rpm服务可以用service启动。因为rpm软件的启动程序都会装在
/etc/rc.d/init.d/软件名
目录中。源码包则不能用service。 - 源码包安装的服务的启动:
/usr/local/软件名/bin/启动文件 start
- 所有的rpm服务可以用service启动。因为rpm软件的启动程序都会装在
- 卸载方法不同:
- rpm用命令;源码包直接删除安装位置文件夹
已经用yum安装了一个rpm包软件A,用源码包再安一个软件A?
是可以得。因为两种安装方法安装位置不一样。但是,两个软件同时只能启动一个,因为他们会占用相同的资源,比如端口。在实际的生产环境,绝不会装两个相同的软件,因为只能用一个,还浪费资源。
1.4 应该选择哪种安装方式?
- 源码包开源自定义本机编译效率更高。如果软件是用来给成千上万的客户端访问的,请用源码包安装,效率更高
- 如果是底层软件,像编译软件gcc,用rpm包更简单,不会有过多用户访问,效率问题不明显
2. 源码包安装
注意事项
- 源码包保存位置:/usr/local/scr
- 这个位置是系统预留的,装好系统就有,专门用来保存源代码的文件夹
- 软件安装位置:/usr/local
- 如何确定安装过程报错
- 安装过程停止
- 并出现error、warning或no的提示
- 安装的时候信息量大,不需要每行去看,只要确认没有报错就行
一般源码包中会有一个INSTALLATION的安装说明
./configure --prefix=安装路径/usr/local/软件名
make
make install
/usr/local/软件名/bin/启动文件 start