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包安装就用默认安装位置,好处是配置文件就在/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用命令;源码包直接删除安装位置文件夹

已经用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

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器