玄子Share-安装及管理程序
Linux 应用程序基础
应用程序与系统命令的关系
角色 | 系统命令 | 应用程序 |
---|---|---|
文件位置 | 一般在/bin和/sbin目录中,或为Shell内部指令 | 通常在/usr/bin和/usr/sbin目录中 |
主要用途 | 完成对系统的基本管理工作 | 完成相对独立的任务 |
适用环境 | 一般只在字符操作界面中运行 | 根据实际需要,有些程序可在图形界面中运行 |
运行格式 | 一般包括命令字、命令选项和命令参数 | 通常没有固定的执行格式 |
典型应用程序的目录结构
文件类型 | 保存目录 |
---|---|
普通用户执行程序文件 | /usr/bin |
管理员执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序参考文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/share/man |
常见的软件包封装类型
文件类型 | 保存目录 |
---|---|
RPM软件包 | 扩展名为 ".rpm" |
DEB软件包 | 扩展名为 ".deb" |
源代码软件包 | 一般为 ".tar.gz"、".tar.bz2" 等格式的压缩包 包含程序的原始代码 |
绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用 |
RPM 包管理工具
Red-Hat Package Manager
- 由Red Hat公司提出,被众多Linux发行版所采用
- 建立统一的数据库文件
- 详细记录软件包安装、卸载、升级等信息
- 自动分析软件包之间的依赖关系
RPM软件包
-
一般命名格式:
bash-4.1.2-15.el7_4.x86_64.rpm
-
bash:软件名称
-
4.1.2:版本号
-
15.el7_4:发布次数
-
x86_64:硬件平台
-
rpm:扩展名
-
-
软件素材参考:http://www.rpm.org
RPM命令格式
rpm 命令能够实现几乎所有对RPM软件包的管理功能
执行man rpm
命令可以获得关于rpm命令的详细帮助信息
rpm 命令功能
- 查询、验证RPM软件包的相关信息
- 安装、升级、卸载RPM软件包
- 维护RPM数据库信息等综合管理操作
查询已安装的 RPM 软件包信息
shell
rpm -q[子选项] [软件名]
选项 | 功能 |
---|---|
-qa | 查看所有已安装的rpm软件包列表 |
-qi | 查看指定已安装软件包的名称、版本、用途等信息 |
-ql | 查看指定已安装软件包包含的子目录、文件等 |
-qf | 查看指定已安装软件包的文件或目录由哪个软件包提供 |
-qc | 查看已安装软件包的配置文件 |
-qd | 查看已安装软件包的相关帮助信息 |
-qa | wc -l | 查看已安装所有软件包的总个数 |
- 查看已安装软件包的名称、版本、用途等信息
shell
rpm -qi openssh-server
- 查看已安装软件包所包含的子目录和文件等\
shell
rpm -ql openssh-server
- 查看文件或目录由哪个软件包提供
shell
rpm -qf /etc/ssh/sshd_config
- 查看已安装软件包所包含的配置文件
shell
rpm -qc openssh-server
查询未安装的 RPM 软件包
shell
rpm -qp[子选项] RPM包文件.rpm
选项 | 功能 |
---|---|
-qpi | 查看指定未安装软件包的名称、版本、用途等信息 |
-qpl | 查看指定未安装软件包包含的子目录、文件等 |
-qpc | 查看指定未安装软件包的配置文件 |
-qpd | 查看指定未安装软件包的相关帮助信息 |
- 查看未安装软件包的名称、版本、用途等信息
shell
rpm -qpi httpd.rpm
- 查看未安装软件包所包含的子目录和文件等
shell
rpm -qpl httpd.rpm
- 查看未安装软件包所包含的配置文件
shell
rpm -qpc httpd.rpm
管理 RPM 软件包
安装RPM软件
shell
rpm [选项] RPM包文件.rpm
选项 | 功能 |
---|---|
-i | 安装一个新软件包 |
-v | 显示安装详细信息 |
-h | 显示安装软件包的进度信息 |
升级RPM软件
shell
rpm [选项] RPM包文件.rpm
选项 | 功能 |
---|---|
-U | 检查并升级安装系统中某个软件包,若软件包没有安装,相当于 "-i" |
-F | 检查并升级安装系统中某个软件包,若软件包没有安装,则放弃安装 |
-h | 显示安装软件包的进度信息 |
-v | 显示安装详细信息 |
卸载RPM软件
shell
rpm -e 软件名
选项 | 功能 |
---|---|
--force | 强制安装或卸载软件包,用于替换老版本软件包 |
--nodeps | 忽略软件包依赖关系,安装或卸载软件包 |
软件包依赖关系
- 安装有依赖关系的多个软件时
- 被依赖的软件包需要先安装
- 可同时指定多个 .rpm 包文件进行安装
- 卸载有依赖关系的多个软件时
- 依赖其他程序的软件包需要先卸载
- 可同时指定多个软件名进行卸载
- 忽略依赖关系
- 结合
--nodeps
选项,但可能导致软件异常
- 结合
维护 RPM 数据库
- 重建RPM数据库
shell
[root@localhost ~]# rpm --rebuilddb
shell
[root@localhost ~]# rpm --initdb
导入验证公钥
shell
[root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7
源代码编译概述
- 使用源代码安装软件的优点
- 获得最新的软件版本,及时修复bug
- 根据用户需要,灵活定制软件功能
- 应用场合举例
- 安装较新版本的应用程序时
- 当前安装的程序无法满足需要时
- 需要为应用程序添加新的功能时
Tarball封包
.tar.gz
和.tar.bz2
格式居多- 软件素材参考:http://sourceforge.net
完整性校验:md5sum校验工具
shell
[root@localhost ~]# md5sum httpd-2.4.25.tar.gz
24fb8b9e36cf131d78caae864fea0f6a httpd-2.4.25.tar.gz
确认源代码编译环境
需安装支持C/C++程序语言的编译器,如:gcc、gcc-c++、make、......
编译安装过程
文件上传
rz
:将宿主机(笔记本)的文件上传至虚拟机sz
:将虚拟机中的文件下载至宿主机(笔记本)
部署教程
设置虚拟机
CD/DVD
设置状态,勾选两个选项,确保镜像光驱挂载
使用XShell
远程连接虚拟机
使用rz
命令上传httpd-2.4.25.tar.gz
,并使用md5sum
命令校验MD5
值
依次执行如下命令
shellmkdir /media/cdrom mount /dev/cdrom /media/cdrom cd /media/cdrom/Packages
mkdir /media/cdrom
:创建一个名为cdrom
的目录,该目录位于/media
目录下。通常用来挂载光盘设备mount /dev/cdrom /media/cdrom
:将光盘设备(/dev/cdrom
)挂载到先前创建的/media/cdrom
目录中,即可访问光盘上的内容cd /media/cdrom/Packages
:切换当前工作目录到/media/cdrom/Packages
目录中,即进入挂载的光盘中的Packages
目录,以便查看或执行其中的文件
依次安装httpd
所需七条依赖
shellrpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
- 这里 rpm 依赖的版本号,根据所使用镜像版本不同,也会有所差异,使用
rpm -ivh pcre-devel
加Tab
补全版本
shellyum -y install pcre-devel arp-devel apr-util-devle
- 或使用 yum 联网安装 rpm 依赖包
然后切换目录到root
家目录,再使用tar -zxvf httpd-2.4.25.tar.gz -C /usr/src/
命令将httpd
解压到/usr/src/
,并切换过去
shellcd ~ tar -zxvf httpd-2.4.25.tar.gz -C /usr/src/ cd /usr/src/httpd-2.4.25/
- 若解压失败执行
chmod 644 httpd-2.4.25.tar.gz
命令,修改文件权限
依次执行如下命令
shell./configure --prefix=/usr/local/httpd make make install cd /usr/local/apache/
./configure --prefix=/usr/local/httpd
: 配置软件安装的参数
./configure
是一个常见的用于配置源代码的脚本--prefix=/usr/local/httpd
指定了安装目录为/usr/local/httpd
make
: 命令会编译软件,根据源代码生成可执行文件make install
: 命令会将编译好的文件安装到系统中,通常是将可执行文件、库文件和其他必要的资源复制到指定的安装目录中
使用vim 命令查找并修改ServerName
为如下格式保存并退出,然后执行/usr/local/apache/bin/apachectl start
启动apache
服务
在虚拟机内使用浏览器访问localhost
即可查看部署
玄子Share-安装及管理程序 2024-03-11