作者信息: 房佳亮 (crushlinux@163.com)
学习环境:
操作系统
|
IP地址
|
主机名
|
软件包
|
备注
|
CentOS7.5
|
192.168.200.111
|
localhost
|
httpd-2.4.37.tar.gz
|
|
实验初始配置:所有主机关闭防火墙与selinux
[root@localhost ~]# iptables -F
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i '/SELINUX/ s/enforcing/disabled/g' /etc/sysconfig/selinux
rpm格式应用程序与系统命令的关系
文件位置
- 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
- 应用程序:通常在/usr/bin和/usr/sbin目录中
主要用途
- 系统命令:完成对系统的基本管理工作,例如IP配置工具
- 应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
- 系统命令:一般只在字符操作界面中运行
- 应用程序:根据实际需要,有些程序可在图形界面中运行
运行格式
- 系统命令:一般包括命令字、命令选项和命令参数
- 应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型文件类型
|
保存目录
|
普通执行程序文件
|
/usr/bin
|
服务器执行程序文件和管理程序文件
|
/usr/sbin
|
应用程序配置文件
|
/etc
|
日志文件
|
/var/log
|
应用程序文档文件
|
/usr/share/doc
|
应用程序手册页文件
|
/usr/share/man
|
常见的软件包封装类型
文件类型
|
保存目录
|
rpm软件包
|
扩展名为“.rpm”
|
deb软件包
|
扩展名为“.deb”
|
源代码软件包
|
一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码
|
绿色免安装的软件包
|
在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用
|
RPM Package Manager
- 由 Red Hat 公司提出,被众多 Linux 发行版所采用
- rpm命令建立统一的数据库文件、详细记录软件包安装、卸载等变化信息、自动分析软件包依赖关系
软件素材下载地址:http://www.rpm.org
一般命名格式:
查询已安装的RPM软件信息
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
- rpm -q 软件包名称 查询指定包是否安装(“-q”选项时实际上调用了“/usr/bin/rpmquery”程序完成查询工作)
- rpm -qa 查询系统已经安装所有的软件包
- rpm -qa | grep 软件包名称 查询当前系统安装了哪些与软件包名称相关的包
- rpm -qi 软件包名称 查询已安装软件包的详细信息
- rpm -ql 软件包名称 查询已安装软件包安装到什么地方去了
- rpm -qf 文件的绝对路径 查询该文件由哪个包产生
- rpm -qc 软件包名称 查询软件生成的配置文件
- rpm -qd 软件包名称 仅显示指定软件包安装的文档文件
挂载光盘镜像文件(将CentOS操作系统ISO镜像文件放入虚拟机光驱,注意:设备状态的√必须打)
[root@localhost ~]# mount | grep "sr0" 查询光盘是否挂载
[root@localhost ~]# umount /dev/sr0 卸载光盘 /dev/sr0 = /dev/cdrom
[root@localhost ~]# mkdir /media/cdrom 准备空目录作为挂载点
[root@localhost ~]# mount /dev/sr0 /media/cdrom 挂载光盘
[root@localhost ~]# ls -l /media/cdrom/Packages 查看rpm软件包列表
查询未安装的RPM包文件
格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
- rpm -qpi 完整软件包名称 通过.rpm包文件查看该软件的详细信息
- rpm -qpl 完整软件包名称 查看.rpm安装包内所包含的目录、文件列表
- rpm -qpc 完整软件包名称 查看.rpm安装包内包含的配置文件列表
- rpm -qpd 完整软件包名称 查看.rpm安装包内包含的文档文件列表
安装或升级RPM软件
格式:rpm [选项] RPM包文件...
rpm -ivh 完整软件包名称
- -i 安装一个新的rpm软件包
- -h 以“#”号显示安装的进度
- -v 显示安装过程中的详细信息
- --force 强制安装(主要用在安装旧的软件代替新的软件)
- --nodeps 安装、升级或卸载软件时,忽略依赖关系
- --test 测试安装
卸载指定的RPM软件
rpm -e 软件名
升级安装
rpm -Uvh 完整软件包名称 #无论旧版本软件是否安装,都安装新版本
rpm -Fvh 完整软件包名称 #若旧版本软件没有安装,则放弃安装新版本
重建rpm数据库
- rpm --rebuilddb
- rpm --initdb
导入验证公钥
rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-*
源码包(Tarball)安装
源代码编译概述
- 获得最新的软件版本,及时修复bug
- 根据用户需要,灵活制定软件功能
应用场合举例
- 安装较新版本的应用程序时
- 当前安装的程序无法满足需要时
- 需要为应用程序添加新的功能时
Tarball封包
- .tar.gz和.tar.bz2格式居多
- 软件素材参考:http://sourceforge.net
md5sum完整性校验
计算MD5校验和,并与官方提供的值相比较,判断是否一致。若不一致,可能源码包破损或被人植入程序,需谨慎。
[root@localhost ~]# md5sum httpd-2.4.37.tar.gz
9ca56d8636944a4989de5af608714086 httpd-2.4.37.tar.gz
想通过源码包安装软件系统中需安装支持 C/C++程序语言的编译器
查询编译器是否完善
[root@localhost ~]# gcc --version
[root@localhost ~]# g++ --version
[root@localhost ~]# rpm -q gcc gcc-c++ make
gcc-4.8.5-28.el7.x86_64
gcc-c++-4.8.5-28.el7.x86_64
make-3.82-23.el7.x86_64
步骤1:tar解包
用途:解压并释放源代码包到指定的目录(习惯将软件包放到 /usr/src/ 目录)
[root@localhost ~]# tar zxf httpd-2.4.37.tar.gz -C /usr/src/
步骤2:./configure 配置
用途:设置安装目录、安装模块等选项
[root@localhost ~]# cd /usr/src/httpd-2.4.37/
[root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/httpd
步骤3:make 编译
用途:生成可执行的二进制文件
[root@localhost httpd-2.4.37]# make
步骤4:make install 安装
用途:复制二进制文件到系统,配置应用环境
[root@localhost httpd-2.4.37]# make install
步骤5:验证安装效果
5.1 备份配置文件后,修改配置文件
[root@localhost httpd-2.4.37]# cd /usr/local/apache/conf/
[root@localhost conf]# cp httpd.conf httpd.conf.bak
[root@localhost httpd-2.4.37]# vim /usr/local/apache/conf/httpd.conf 进入文件后搜索ServerName将#注释去掉
#ServerName www.example.com:80
ServerName
www.example.com:80
5.2 启动Apache
[root@localhost httpd-2.4.37]# /usr/local/apache/bin/apachectl start
5.3 运行 lynx 127.0.0.1
配置本地yum仓库(务必把光盘镜像文件挂载到/media/cdrom下)
yum命令:便于自动解决软件包的依赖关系
挂载光盘镜像文件:
[root@localhost ~]# mount | grep "sr0" 查询光盘是否挂载
[root@localhost ~]# umount /dev/sr0 卸载光盘 /dev/sr0 = /dev/cdrom
[root@localhost ~]# mkdir /media/cdrom 准备空目录作为挂载点
[root@localhost ~]# mount /dev/sr0 /media/cdrom 挂载光盘
[root@localhost ~]# ls -l /media/cdrom/Packages 查看rpm软件包列表
修改yum仓库配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir backup ^C
[root@localhost yum.repos.d]# mv *.repo backup/
[root@localhost yum.repos.d]# vim local.repo
[c7-media]
name=CentOS-Media
baseurl=file:///media/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost ~]# yum clean all #清楚yum仓库缓存
[root@localhost ~]# yum makecache #重建yum仓库缓存
[root@localhost ~]# yum list #显示yum仓库软件列表
[root@localhost ~]# yum -y install software #安装software软件
[root@localhost ~]# yum -y update software #升级software软件(需要配置互联网yum仓库)
[root@localhost ~]# yum -y remove software #卸载software软件remove=erase(生产环境中慎用)