Linux下软件安装的命令【RPM,YUM】及常用服务安装【JDK,Tomcat,MySQL】

Linux下软件安装的命令

在这里插入图片描述

源码安装

以源代码安装软件,每次都需要配置操作系统、配置编译参数、实际编译,最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。

RPM软件包管理

RPM安装软件的默认路径:

注意:

  • /etc 配置文件放置目录
  • /usr/bin 一些可执行文件
  • /usr/lib 一些程序使用的动态链接库
  • /usr/share/doc 一些基本的软件使用手册与说明文件
  • /usr/share/man 一些man page档案

常用的 RPM 软件包命令

安装软件的命令格式rpm -ivh filename.rpm
升级软件的命令格式rpm -Uvh filename.rpm
卸载软件的命令格式rpm -e filename.rpm
查询软件描述信息的命令格式rpm -qpi filename.rpm
列出软件文件信息的命令格式rpm -qpl filename.rpm
查询文件属于哪个 RPM 的命令格式rpm -qf filename

参数说明:

  • -i:install的意思,安装
  • -v:查看更详细的安装信息画面
  • -h:以安装信息栏显示安装进度
软件安装

如你需要安装一个jdk,首先要到网上下载一个jdk的rpm包,如jdk-8u171-linux-x64.rpm。最简单的安装命令如下:

rpm -i jdk-8u171-linux-x64.rpm

不过,这样的参数其实无法显示安装的进度,所以通常我们执行的命令是这样:

rpm -ivh package-name
卸载软件

使用rpm的卸载过程一定要由最上层往下卸载,以rp-pppoe为例,这个软件主要是依据ppp这个软件来安装的,所以当你要卸载ppp的时候,就必须先卸载rp-pppoe才行!

删除的命令非常简单,通过-e参数就可以完成。不过,很常发生软件属性依赖导致无法山洼某些软件的问题。

rpm -e gcc

注意:

如果删除不想检查依赖关系,加 --nodeps

YUM

在这里插入图片描述

YUM可以看作是CS架构的软件,YUM的存在很好的解决了RPM的属性依赖问题。

YUM通过依赖rpm软件包管理器, 实现了rpm软件包管理器在功能上的扩展, 因此YUM是不能脱离rpm而独立运行的。

注意:

YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。

YUM的配置文件
容器说明

虽然yum是你在联网后就能直接使用,不过,由于你系统的站点镜像没选择好,会导致连接速度非常慢!所以,这时候就需要我们去手动修改yum的设置文档了。

容器查询

首先,可以先查询一下目录yum server所使用的容器有哪些。

使用命令:yum repolist all,查询结果如下:

在这里插入图片描述

如上图,只有当最右边的status为enabled该容器才算激活,

/etc/yum.repos.d/里面会有多个配置文件(文件名以.repo结尾),yum会从里面逐个查找,所以里面的容器名称不能有重复。

配置文件修改

打开配置文件:vi /etc/yum.repos.d/CentOS-Base.repo,内容如下
在这里插入图片描述

配置文件的说明:

[base]:代表容器的名字。中括号一定要存在,里面的名称可以随意起,但不能有两个相同的容器名称,否则yum会不知道去哪里找容器相关软件列表文件。

name:只是说明一下这个容器的意义而已,重要性不高。

mirrorlist:列出这个容器可以使用的镜像站点,如果不想使用可以批注掉这一行。

baseurl:这个最重要,因为后面接的就是容器的实际网址。mirrorlist是由yum程序自行去找镜像站点, baseurl则是指定固定的一个容器网址。

enable=1:启动这个容器,默认值也为1。关闭这个容器可以设置enable=0。

gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。

gpgkey:数字证书的公钥文件所在位置,使用默认值即可。

注意:

1)yum会自动识别/etc/yum.repos.d/目录以.repo结尾的文件。

2)当我们修改了配置文件的网址却没有修改容器名称,可以会造成本机的列表与yum服务器的列表不同步,这时就需要手动来清除容器的数据了:

语法:yum clean [packages|headers|all]

参数:

packages:将已下载的软件文件删除

headers:将下载的软件文件头删除

all:将所有容器数据都删除

例:删除已下载过的所有容器相关数据(含软件本身与列表)

yum clean all

示例1

配置阿里yum源

1:安装wgetyum install -y wget  (如果已经安装了则省略)
2:备份  /etc/yum.repos.d/CentOS-Base.repo文件cd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.back
3:下载阿里云的Centos-7.repo文件wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4:重新加载yumyum clean allyum makecache
5:检查配置的源是否是阿里的cat /etc/yum.repos.d/CentOS-Base.repo

在这里插入图片描述

YUM使用手册

小技巧: 使用参数-y,当遇到需要等待用户输入时,这个选项会提供yes的响应,如上面的例子可以写成:

yum  install -y  emacs 

Linux下常用软件安装

JDK和Tomcat安装

Jdk 安装

在这里插入图片描述

解压jdk安装包
tar -zxvf  jdk-8u201-linux-x64.tar.gz -C /usr/local
配置环境变量
vim /etc/profile
底部加入如下配置
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量
source /etc/profile
Tomcat 安装

在这里插入图片描述

解压Tomcat安装包
tar -zxvf apache-tomcat-9.0.54.tar.gz -C /usr/local
配置环境变量
export TOMCAT_HOME=/usr/local/tomcat
export PATH=$PATH:$TOMCAT_HOME/bin:$JAVA_HOME/bin
//环境变量生效
source /etc/profile
//关闭防火墙
systemctl stop firewalld.service

Mysql安装

在这里插入图片描述

下载YUM库
wget  http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装YUM库
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
安装数据库
yum -y install mysql-community-server  --nogpgcheck
完成安装,重启mysql
systemctl restart mysqld 

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

grep "password" /var/log/mysqld.log[root@hadoop8 *]# grep "password" /var/log/mysqld.log
2018-10-13T08:33:27.994868Z 1 [Note] A temporary password is generated for root@localhost: yj0v.0w*ywPk

复制粘贴上边的密码进入数据库

mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库修改密码命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Your password does not satisfy the current policy requirements

解决报错

修改密码策略

因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
注:执行完初始化命令后需要输入数据库root用户密码
注:密码策略分四种
1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
开启远程连接
select User,Host from user;
update user set host ="%" where user = “root”
刷新信息
mysql> flush privileges;
//查看防火墙是否关闭
firewall-cmd --state
//关闭防火墙
systemctl stop firewalld.service

MySQL卸载

检查是否安装了MySQL组件。

[root@localhost *]# rpm -qa | grep -i mysql
mysql57-community-release-el7-10.noarch
mysql-community-libs-5.7.36-1.el7.x86_64
mysql-community-server-5.7.36-1.el7.x86_64
mysql-community-common-5.7.36-1.el7.x86_64
mysql-community-client-5.7.36-1.el7.x86_64
mysql-community-libs-compat-5.7.36-1.el7.x86_64

卸载前关闭MySQL服务

systemctl stop mysqld 
systemctl status mysqld 

收集MySQL对应的文件夹信息

whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

卸载删除MySQL各类组件

rpm -ev --nodeps mysql57-community-release-el7-10.noarch
rpm -ev --nodeps mysql-community-libs-5.7.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-server-5.7.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-common-5.7.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-client-5.7.36-1.el7.x86_64
rpm -ev --nodeps mysql-community-libs-compat-5.7.36-1.el7.x86_64

删除MySQL对应的文件夹

[root@DB-Server init.d]# whereis mysql
mysql:
[root@DB-Server init.d]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql/mysql
[root@DB-Server init.d]# rm -rf /usr/lib64/mysql

删除mysql用户及用户组

[root@DB-Server init.d]# rpm -qa | grep -i mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker network网络

网络分类 bridge网络 bridge是docker默认网络模式,docker安装后会选择一个私有网段作为bridge的子网,在我们创建容器时默认会将容器网络加入到这个子网中。 原理:Docker Daemon(后台进程) 利用 veth pair 技术&#…

502. IPO(贪心算法+优先队列/堆)

整体思想:在满足可用资金的情况下,选择其中利润最大的业务,直到选到k个业务为止,注意k可能比n大。 每次选择完一个业务,可用资金都会变动,这是可选择的业务也会变化,因此每次将可选择的业务放在…

3dmax渲不出模型是什么原因---模大狮模型网

3DMax无法渲染模型可能有多种原因。以下是一些常见的问题和解决方法: 材质设置错误:检查模型的材质设置是否正确,包括纹理贴图的路径、UV映射是否正确等。确保材质的属性设置正确,如颜色、反射率、透明度等。 灯光设置问题&#…

【JS逆向学习】某壁纸下载(ast混淆)

逆向目标 目标网址:https://bz.zzzmh.cn/index逆向接口一:https://api.zzzmh.cn/bz/v3/getData逆向接口二:https://cdn2.zzzmh.cn/wallpaper/origin/0d7d8d691e644989b72ddda5f695aca2.jpg?response-content-dispositionattachment&aut…

AnimatedDrawings:让绘图动起来

老样子,先上图片和官网。这个项目是让绘制的动画图片动起来,还能绑定人体的运动进行行为定制。 快速开始 1. 下载代码并进入文件夹,启动一键安装 git clone https://github.com/facebookresearch/AnimatedDrawings.gitcd AnimatedDrawingspip…

react18介绍

改进已有属性,如自动批量处理【setState】、改进Suspense、组件返回undefined不再报错等 支持Concurrent模式,带来新的API,如useTransition、useDeferredValue等 如何升级React 18 npm install reactlatest react-domlatestnpm install ty…

VS2022 在非Qt项目中引用QString、QList等方法

目录 一、新建项目 二、拷贝 三、工程属性设置 四、测试 一、新建项目 在VS中创建了一个c控制台项目,会默认打印“Hello world”; 二、拷贝 需要拷贝的包括QtCore相关的lib, dll, 以及头文件; 1、lib文件 在下述qt安装路径下拷贝Qt5…

[设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

07章【常用类库API】

字符串操作 String类 String可以表示一个字符串。String类实际是使用字符数组存储的。 String类的两种赋值方式: 一种称为直接赋值: String name “小白” 通过关键字new调用String的构造方法赋值 String name new String(“小白”)String类的两…

c++学习理解之路——基类指针指向子类

参考:基类指针指向子类对象_基类指针可以指向子类-CSDN博客 笔记(基于自己的理解,欢迎讨论) 基类指针对象只存储跟基类中的成员函数、成员对象相关信息,子类指针对象存储了子类和基类中的信息。按道理来说&#xff0c…

【Github】作为程序员不得不知道的几款Github加速神器

背景 众所周知,近几年国内用户在访问Github时,经常间歇性无法访问Github。 接下来推荐几款 作为程序员不得不知道的Github加速神器。 推荐1:FastGithub FastGithub是一款Github加速神器,解决github打不开、用户头像无法加载、r…

【数据结构和算法】--- 二叉树(3)--二叉树链式结构的实现(1)

目录 一、二叉树的创建(伪)二、二叉树的遍历2.1 前序遍历2.2 中序遍历2.3 后序遍历 三、二叉树节点个数及高度3.1 二叉树节点个数3.2 二叉树叶子节点个数3.3二叉树第k层节点个数3.4 二叉树查找值为x的节点 四、二叉树的创建(真) 一、二叉树的创建(伪) 在学习二叉树的基本操作前…

使用Python基于metricbeat和heartbeat采集数据进行告警

一、系统架构 IP主机名角色备注11.0.1.11kafka1kafka和MySQL11.0.1.12kafka2kafka11.0.1.13kafka3kafka11.0.1.14demo1metricbeat和heartbeat 二、部署Kafka 省略 二、部署Metricbeat和Heartbeat metricbeat配置: metricbeat.config.modules:path: ${path.confi…

电商铺货上货接口API实现无货源上货(1688/淘宝/京东/拼多多)

获取商品列表接口 item_search 获取商品详情页数据接口 item_get 1688.item_get 公共参数 获取API测试权限和地址 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包…

Unity Text超框 文字滚动循环显示

Unity Text超框 文字滚动循环显示 //container Text using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI;public class AutoScrollText : MonoBehaviour {private Text[] _texts new Text[…

MATLAB字符串编辑常用代码

1.字符串赋值 % 字符串赋值 sabcdefg 2.字符串属性和操作 (1)获取字符串长度 sabcdefg;% 字符串赋值 length(a) % 获取字符串长度 (2)连接字符串 % 连接两个字符串,每个字符串最右边的空格被裁切 s1a s2b s3strcat(s1,s2) 3.字符串比较 % strcmp 比较两个字符串是…

251.【2023年华为OD机试真题(C卷)】5G网络建设(最小生成树算法-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-5G网络建设二.解题思路三.题解代码Python题解代…

9. UE5 RPG创建UI(下)

在上一篇文章里,制作了显示血量和蓝量的ui,并且还将ui和获取数据使用的控制器层创建出来并初始化成功。现在只有主用户控件上面被添加了控制器层,还未给每个用户控件赋予控制器层。接下来要实现对属性的广播功能,在属性值变化的时…

【Effective C++】4. 设计与声明

Item22 将成员变量声明为private 有以下几个优势: 1. 语法一致性:访问class成员时每一个都是函数,不需要记住是否需要小括号 2. 使成员变量的处理有更精准的控制 class AccessLevels { public:int getReadOnly() const { return readOnly…

【issue-halcon例程学习】fuzzy_measure_pin.hdev

例程功能 检查IC的引线宽度和引线距离。 代码如下 dev_close_window () read_image (Image, board/board-06) get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, black, WindowHandle) * * --- Fuzzy Measure: Row1 : 305.5 Col1 : 375.5 Phi1 …