玄子Share-安装及管理程序

玄子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封包

完整性校验: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


依次执行如下命令

shell 复制代码
mkdir /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所需七条依赖

shell 复制代码
rpm -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-develTab补全版本
shell 复制代码
yum -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/,并切换过去

shell 复制代码
cd ~
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

相关推荐
Monodye11 分钟前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构
汀、人工智能43 分钟前
报错error: RPC failed,curl 16 Error in the HTTP2 framing layer解决方法
网络·git·网络协议·rpc
qq 1778036221 小时前
智能新时代,游戏盾守护顺畅体验
运维·服务器·网络·游戏·云计算·ddos·ip
神秘的土鸡2 小时前
Linux中使用Docker容器构建Tomcat容器完整教程
linux·运维·服务器·docker·容器·tomcat
shuxianshrng2 小时前
大气网格化精细化监管监测系统
大数据·服务器·windows·经验分享
2401_847056552 小时前
Altium Designer脚本工具定制
网络·数据库
friklogff3 小时前
【C#生态园】构建你的C#操作系统:框架选择与实践
服务器·开发语言·c#
TravisBytes3 小时前
linux 系统是如何收发数据包
linux·运维·服务器
就这个java爽!3 小时前
JAVA网络编程【基于TCP和UDP协议】超详细!!!
java·开发语言·网络·tcp/ip·udp·eclipse·idea
KookeeyLena73 小时前
动态IP与静态IP:哪种更适合用户使用?
网络·网络协议·tcp/ip