云计算【第一阶段(16)】安装及管理程序

2024-06-19 14:52

本文主要是介绍云计算【第一阶段(16)】安装及管理程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、linux 应用程序基础

1.1、应用程序与系统命令的关系

1.2、典型应用程序的目录结构

1.3、常见的软件包封装类型

二、RPM软件包管理工具

2.1、rpm命令的格式

2.2、安装,升级,卸载 rpm软件包

安装软件包

升级软件包

卸载软件包

查询软件包 

2.2.1、查询已安装的rpm软件信息

2.2.2、查询未安装的rpm软件信息

2.2.3、维护RPM数据库(不怎么用,了解)

三、解决软件包依赖关系方法

四、源代码编译概述

4.1、编译安装过程

五、yum安装

5.1、本地源配置

5.1.1、流程步骤

5.1.2、具体步骤

5.2、配置阿里源

5.3、yum命令


一、linux 应用程序基础

当我们主机安装linux操作系统 时候,也会同时安装一些软件或网络服务等等,但是随着系统一起安装的软件包毕竟他是少数的,
能够实现的功能也是有限的,那么我们相拥为主机提供更多更丰富的功能的时候, 就需要安装新的程序了。

1.1、应用程序与系统命令的关系

在Linux操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下描述来对两者进行区别。

文件位置

  • 系统命令:应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中。对于内部命令,常集成在 Bash 程序内,而不是独立地执行文件;
  • 应用程序:应用程序的执行文件通常放在/usr/bin、/usr/sbin 和/usr/local/bin、/usr/local/sbin 等目录中

主要用途

  • 系统命令:命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理
  • 应用程序:应用程序一般需要在操作系统之外另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念

适用环境

  • 系统命令:命令只在字符操作界面中运行。
  • 应用程序:应用程序可能会用到图形界面,形式多样

运行格式

  • 系统命令:命令行大多适用于“命令字选项参数”形式的一般格式;
  • 应用程序:应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义

1.2、典型应用程序的目录结构

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件(只有管理员能执行)/usr/sbin
应用程序配置文件/etc
日志文件/var/log
应用程序参考文档文件(主要存放软件的说明文档)/usr/share/doc
应用程序手册页文件/usr/local/share/man

1.3、常见的软件包封装类型

  • RPM 软件包:这种软件包文件的扩展名为“.rpm”,只能在使用 RPM(RPM Package Manager,RPM 软件包管理器)机制的 Linux 操作系统中安装,如 RHEL、Fedora、 CentOS 等。RPM 软件包一般针对特定版本的操作系统量身定制,因此依赖性较 强。安装 RPM 软件包需要使用操作系统中的 rpm 命令。 
  •  DEB 软件包:这种软件包文件的扩展名为“.deb”,只能在使用 DPKG(Debian Package,Debian 包管理器)机制的 Linux 操作系统中进行安装,
    如 Debian、Ubuntu 等。安装 DEB 软件包需要使用操作系统中的 dpkg 命令
  •  源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成“.tar.gz” 或“.tar.bz2”等格式的压缩包文件,因多数使用 tar 命令打包而成,
    所以经常被称为 “TarBall”。安装源代码软件包需要使用相应的编译工具,如 Linux 中的 C 语言编译 器 gcc。因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译
  • 附带安装程序的软件包:这种软件包的扩展名不一,但仍以 TarBall 格式的居多。 软件包中会提供用于安装的可执行程序或脚本文件,
    如 install.sh、setup 等,有时 候会以“.bin”格式的单个安装文件形式出现。安装时只需运行安装文件就可以根据 向导程序的提示完成安装操作。 开放源代码的自由软件绝大多数选择以 TarBall 的形式发布,而 RPM 软件包、DEB 软件包等则使用了二进制的文件格式,代码相对比较封闭。
文件类型保存目录说明
RPM软件包/var/lib/rpm扩展名为".rpm"
DEB软件包/var/lib/deb扩展名为“.deb”
源代码软件包/usr/src包含程序的原始代码,软件包的扩展名不一,以TarBall格式的居多
绿色免安装的软件包-在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用

二、RPM软件包管理工具

全称:Red-Hat Package Manager
由RedHat公司提出,被众多linux发行版所采用

  1. 建立统一的数据库文件
  2. 详细记录软件包安装,卸载等变化信息
  3. 自动分析软件包依赖关系

软件素材参考:http://www.rpm.org

2.1、rpm命令的格式

rpm命令能够实现几乎所有对rpm软件包的管理功能
执行 "man rpm"命令可以获得关于rpm命令的详细帮助信息

  1. 查询,验证rpm软件包的相关信息
  2. 安装,升级,卸载rpm软件包
  3. 维护rpm数据库信息等综合管理操作

rpm 【选项】 rpm包文件

2.2、安装,升级,卸载 rpm软件包

安装软件包

  • -i:安装一个新的软件包。
  • -v:详细模式,显示更多信息。
  • -h:显示安装进度。

升级软件包

  • -U 或 --upgrade:更新一个已安装的软件包到一个新版本,如果新版本不存在则不会安装旧版本。
  • -F 或 --freshen:仅当软件包的版本比已安装的版本新时才更新软件包。
  •  辅助选项

卸载软件包

  • -e 或 --erase:卸载指定的软件包。

查询软件包 

2.2.1、查询已安装的rpm软件信息

常用选项

  • -q
  • qi
  • -ql
  • -qc
  • -qd
  • -dR
  • -gd 
命令描述示例
rpm -q 软件名查询指定软件是否已安装rpm -q elinks lynx
rpm -qi 软件名显示已安装的指定软件的详细信息rpm -qi samba-client
rpm -ql 软件名显示已安装的指定软件的文件列表rpm -ql wget
rpm -qc 软件名列出已安装的指定软件的配置文件rpm -qc httpd
rpm -qd 软件名列出已安装的指定软件的软件包文档所在位置rpm -qd httpd
rpm -qR 软件名列出已安装的指定软件的依赖的软件包及文件rpm -qR wget
rpm -qF 文件或目录查询已安装的指定文件或目录属于哪个安装包rpm -qF yum
rpm -qa显示当前系统中以rpm方式安装的所有软件列表`rpm -qa

或者

rpm -qa | grep -i postfix         #查询软件postfix是否已安装
rpm -qf /usr/bin/passwd   #查看指定的文件或目录是哪个软件包所安装的

2.2.2、查询未安装的rpm软件信息
命令描述示例
rpm -qpi查询指定软件包的详细信息rpm -qpi /mnt/Packages/ethtool-4.8-10.el7.x86_64.rpm
rpm -qpl查询指定软件包的文件列表rpm -qpl /mnt/Packages/ethtool-4.8-10.el7.x86_64.rpm
rpm-qpc 查询指定软件包的配置文件rpm -qpc /mnt/Packages/elinks-0.12-0.37.pre6.el7.0.1.x86_64.rpm
rpm -qpd 查询指定软件包的软件包文档的位置rpm -qpd /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm
2.2.3、维护RPM数据库(不怎么用,了解)

1.重建RPM数据库
当RPM数据库发生损坏,可通过重建RPM数据库修复
    rpm --rebuilddb   或者   rpm --initdb

2.导入验证公钥
在没有导入用于数字签名验证的公钥文件之前,安装光盘中的一部分RPM软件包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件
mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-Centos-7

三、解决软件包依赖关系方法

安装有依赖关系的多个软件时

  • 被依赖的软件包需要先安装
  • 可同时指定多个rpm包文件进行安装

卸载有依赖关系的多个软件时

  • 依赖其他程序的软件包需要先卸载
  • 可同时指定多个软件名进行卸载

忽略依赖关系

  • 结合 "--nodeps"选项,但可能导致软件异常

四、源代码编译概述

使用源代码安装软件的优点

  • 获得最新的软件版本,及时修复bug
  • 根据用户需要,灵活定制软件功能

应用场合举例

  • 安装较新版本的应用程序时
  • 当前安装的程序无法满足需要时
  • 需要为应用程序添加新的功能时

Tarball封包

  • .tar.gz和.tar.bz2格式居多
  • 软件素材参考:http://sourceforge.net

完整性校验

  • md5sum校验工具

[root@localhost # md5sumhttpd-2.4.25.tar.gz

24fb8b9e36cf131d78caae864fea0f6a httpd-2.4.25.tar.gz

  • 确认源代码编译环境

需安装支持c/c++程序语言的编译器如:

gcc, gcc++, make,.......

4.1、编译安装过程

下载源代码安装包文件
步骤1:tar解包
用途:解压并释放源代码包到指定的目录
步骤2:./configure 配置
用途:设置安装目录,安装模块等选项
步骤3:make编译
用途:生成可执行的二进制文件
步骤4:make install 安装
用途:复制二进制文件到系统,配置应用环境
测试及应用,维护软件

下面具体分析

  • tar解包

习惯上将软件包释放到/usr/src/目录
解包后的源代码文件位置
/usr/src/软件名-版本号/
示例
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -c /usr/src/
解压源代码包,并指定释放目录

  • /configure配置

使用源码目录中的configure脚本
执行"/configure--help"可查看帮助
典型的配置选项
--prefix软件安装目录
示例
[root@localhost~]#cd/usr/src/httpd-2.4.25/
[root@localhost httpd-2.4.25]# /configure --prefix-lusr/locallapache
若不指定任何配置选
项,将采用默认值 17

  • make编译与安装

编译
执行make命令
安装
执行makeinstall命令
示例
[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]# make i install

  • 测试,应用,维护软件

使用前
[root@localhost httpd-2.4.25]# vim /usr/locallapache/conf/httpd.conf
启动apache
[root@localhost httpd-2.4.25]#/usr/locallapache/bin/apachectl start
运行lynx hx127.0.0.1查看本机apache运行状态

五、实验

安装httpd

yum remove /etc/httpd
cd /home
拉3个文件 httpd-2.4.25.tar.bz2  package.tar.gz apr-devel-1.4.8-7.el7.x86_64.rpm
tar -xjvf
tar -xzvf package.tar.gz
cd package/
rpm -Uvh *.rpm
cd ..
rpm  -ivh apr-devel-1.4.8-7.el7.x86_64.rpm
cd httpd-2.4.25/
./configure --prefix=/usr/local/apache
make -j 2 && make install
-----------------------------------
cd /usr/local/apache/bin
ls

五、yum安装

安装源代码软件包需要编译安装,需要安装支持c和c++程序语言的编译器,如gcc、gcc-c++、make如果使用rpm方式安装,则需要先安装多个依赖包,这样会很繁琐。这里可以使用 yum方式进行一键安装。

5.1、本地源配置

在局域网中我们无法上网,我们需要配置本地源,本地源(Local Repository)在Linux系统中通常指的是一个预先存储了软件包和依赖项的本地目录或文件系统,这些软件包和依赖项可以用于在没有网络连接或需要快速安装软件包的情况下进行安装。

安装CentOS后,可以将ISO文件挂载到一个目录,并配置该目录作为yum的本地源,那个ios包含了操作系统安装所需的所有软件包和依赖。

也就是CentOS-7.6-x86_64-DVD-1810.iso文件本身不包含源地址,但它包含的软件包可以被配置为本地yum源,从而在没有网络连接的情况下进行软件包的安装和管理。

5.1.1、流程步骤

1.先挂载sr0(和cdrom是一个东西)注意打开光驱

2.切换到yum.repos.d网络源下,转移到其他目录

3.编辑local.repo

4.删除缓存并且更新

5.1.2、具体步骤

mount /dev/cdrom  /mnt

挂载是将文件系统或存储设备连接到Linux目录结构的过程,挂载允许用户在不同的目录之间共享数据挂载是Linux系统中文件管理的一部分,通过挂载,硬件设备才能在Linux系统中被使用。

挂载点是一个特定的目录,通常位于/mnt/media目录下。

注意打开光驱

挂载之后原本在/mnt里数据还在,但是看不见了,不建议有数据,并且

一个挂载点同一时只能挂载一个设备
 

cd /etc/yum.repos.d/

mkdir repos.back

mv  *.repo   repos.back

yum.repos.d是yum仓库的配置文件,每个 .repo 文件都定义了一个或多个yum仓库。这些仓库可以是本地的(例如从本地ISO文件或目录),也可以是远程的(例如从互联网上的某个服务器)

当然初始的都是网络的,我们现在需要自己配置本地的

会将他们转移到一个其他文件在这里我们是转移到了repos.back

vim local.repo

我们写一个本地仓库

格式

[xxxxx]							#仓库类别
name=xxx						#仓库名称
baseurl=file:///mnt				#指定URL 访问路径为光盘挂载目录      本地yum源
enabled=1						#开启此yum源,此为默认项,可省略
gpgcheck=0						#不验证软件包的签名

因为我们将ios安装包什么的内容挂载到了/mnt

我们配置就mnt,前面file://是类似于http:// 后面是位置 /mnt

yum clean all && yum makecache        

最后需要刷新一下,删除yum缓存并更新

本地源不能更新,固定了。

我们可以安装一个

yum install tree -y 测试一下

5.2、配置阿里源

第一步:将创建的local.repo文件移动到local.bak目录下(也可以是别的备份目录)
第二步:将可以连外网的系统打开,执行

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

将阿里云镜像下载到/etc/yum.repos.d/目录下

第三步:刷新缓存,yum clean all && yum makecache #清理缓存并且生成新的缓存

然后就可以直接用阿里云仓库里的软件包安装文件了,都是最新的软件包,但是必须有网的环境下才可以使用。如果想在没有网的情况下也能使用yum仓库里的软件,就需要将阿里云仓库下载到本地,占用空间较高,可以自行参考其他内容。

5.2.1、配置优先级

当既有本地yum源又有aliyum源的时候,我们在装软件包的时候当然希望先用本地的yum源去安装,本地找不到可用的包时再使用aliyun源去安装软件,这里就涉及到了优先级的问题,
yum提供的插件yum-plugin-priorities.noarch可以解决这个问题

1.查看是否安装了yum-plugin优先级插件
rpm -qa |grep yum-plugin-

2.如果没有安装,就安装插件
yum -y install yum-plugin-priorities.noarch

3.查看插件是否启用
cat /etc/yum/pluginconf.d/priorities.conf

[main]:
enabled = 1 # 1为启动,0 为禁止

4.修改本地yum源优先使用
vi local.repo

[local]
name=local
baseurl=file:///mnt/
enabled=1
gpgcheck=1 
priority=1 #数字越小优先级越高[epel]
name=aliyum
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2

 5.验证安装包的数量
执行yum repolist all 可显示所有仓库包

5.3、yum命令

命令描述
yum -y install 软件名安装或升级软件包,-y 选项表示自动确认
yum -y remove 软件名卸载软件包,可自动解决其依赖关系
yum -y update 软件名升级软件包
yum list查询软件包列表
yum list installed查询系统中已安装的软件包
yum list available查询仓库中尚未安装的软件包
yum list updates查询可以升级版本的软件包
yum info 软件名查询软件包的描述信息
yum search [all] 关键词根据某个关键词来查找相关的软件包
yum whatprovides 命令查询命令属于哪个软件包
yum install 包名 -y --downloadonly --downloaddir=/tmp/下载 RPM 包到指定目录(例如 /tmp/

这篇关于云计算【第一阶段(16)】安装及管理程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075338

相关文章

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads