【Linux】Linux安装管理04 源码包

源码包和RPM包安装位置的不同:

RPM包安装位置

rpm包有安装的默认位置:

  • /etc/ 配置文件安装目录
  • /usr/bin/ 可执行的命令安装目录
  • /usr/lib/ 程序所使用的函数库保存位置
  • /usr/share/doc/ 基本的软件使用手册保存位置
  • /usr/share/man/ 帮助文件保存位置

当然RPM包可以指定安装位置,但是建议不要指定安装位置,就让它安装到默认位置,这样系统可以找到它,利用service XXX start的方式启动它,而且rpm提供-e选项来自动卸载,摆明了就是推荐你让它默认安装

1
rpm -ivh --profix=<dir>

源码包安装位置

安装在指定位置当中,一般是/usr/local/软件名,源码包没有卸载命令

安装位置不同带来的影响

rpm包安装的服务可以使用系统服务管理命令(service)来管理,例如: RPM包安装的apache的启动方法是:

1
2
/etc/rc.d/init.d/httpd start
service httpd start

源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中,所以只能用绝对路径进行服务的管理,不同软件请参考INSTALL或README,如:

1
/usr/local/apache2/bin/apachectl start

使用绝对路径启动程序的方法是通用的,通常软件包中会写上启动程序的方法的。

如果将源码包安装后的启动程序复制到/etc/rc.d/init.d目录中,则也是可以使用service命令执行的

源码包是不能使用service命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一;rpm包安装后,通常都是放在/etc/rc.d/init.d目录中的,而service命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用service命令

安装

安装准备

  • 由于源码都是c语言写的,所以要先安装c语言编译器:gcc
  • 从官方网站下载源码包,若是下载到了windows上面,可以使用ftp传到linux上

注:若已安装了二进制包,则源码包也是可以继续安装的,因为两者安装目录不一样。但是,并不建议这样做,因为端口会冲突。

对于要求效率的软件,要安装源码包版本,因为是本机编译,更具有兼容性和效率,而rpm包是软件开发者提供的大众版本,可用于不注重效率的应用。

netstat -tlun查找网络连接信息和系统开启的端口号
使用 -t 选项列出 TCP 协议的连接
使用 -l 选项列出正在监听的套接字
使用 -u 选项列出 UDP 协议的连接
使用 -n 选项禁用域名解析功能

安装注意事项

  1. 源代码一般保存位置:/usr/local/src
  2. 软件安装位置:``
  3. 如何确定安装过程报错
    • 安装过程停止
    • 并出现error、warning、no的提示

安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
#下载源码包
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar.gz
#解压缩
tar -zxvf httpd-2.4.33.tar.gz
#进入解压缩目录
cd httpd-2.4.33
#软件配置与检查,指定安装位置
./configure --prefix=/usr/local/apache2
#编译,根据当前目录下的Makefile内部信息编译
make
#编译安装,根据当前目录下的Makefile内部信息安装
make install

./configure作用

  • 定义需要的功能选项;
  • 检测系统环境是否符合安装要求
  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
  • 其中的apache2目录不需要提前创建,make install命令执行时会自动创建


解压的文件夹中有一个INSTALL或README文件,vi打开之就可以看到详细的安装说明了。

如果make环节出错,只需要make clean即可。如果make install安装环节出错,我们就得删除configure时制定的安装目录,因为其中生成的文件失效了。

源码包的卸载

只需要把安装目录删除即可。因为安装过程中生成的所有文件都是存放在安装目录中的,所以将安装目录删除就不会留下任何垃圾。