【Linux】centos7安装软件(rpm、yum、编译安装),补充:查找命令的相关文件路径,yum安装mysql

news2024/11/27 7:32:15

【Linux】技术上,Linux是内核。而术语上,我们通常说的Linux是完整的操作系统,其实称为"Linux发行版",是将Linux内核和应用系统打包,由不同的发行家族发行了不同版本。Linux发行版众多,主要有RedHat系列和Debian系列。

RedHat系列:RHEL,CentOS,Fedora等。

  • 软件包扩展名.rpm
  • 包管理工具:rpm。yum(解决rpm中依赖包的问题)。

Debian系列:Debian,Ubuntu等。

  • 软件包扩展名.deb
  • 包管理工具:dpkg,apt 或 apt-get (解决dpkg中依赖包的问题)。

RedHat系列的Linux系统一般有三种安装软件包的方式:rpm安装,yum安装,编译安装。

可以使用man查看某命令的说明文档,例如:man rpm。可使用--help查看某命令有哪些选项,例如:rpm --help。

(一)rpm安装

  • rpm命令:Red-Hat Package Manager,RPM软件包管理工具。
  • 几乎所有RPM包都可以使用rpm安装、卸载、管理。
  • 若使用rpm安装,需手动下载RPM包。
  • 存在问题:不能自动处理依赖性关系。需安装相关的依赖包,软件包才能安装成功。

rpm安装软件包:rpm  -i  需安装的软件包

rpm安装软件包(显示进度条):rpm  -ivh  需安装的软件包

rpm卸载软件包:rpm -e  需卸载的软件包

rpm升级软件包:rpm -U  需升级的软件包

rpm升级软件包(显示进度条):rpm -Uvh  需升级的软件包

rpm查询安装的所有软件包:rpm -qa

举例:rpm安装wget(先下载RPM软件包,再用rpm安装RPM包)

# 从网页下载wget软件包
curl -o wget.rpm http://mirrors.163.com/centos/7/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm

# rpm安装wget
rpm -ivh wget.rpm

# rpm查看是否已安装wget
rpm -qa | grep wget

国内下载RPM包的镜像站(又称yum源,yum仓库):欢迎访问网易开源镜像站 (163.com)

网易163镜像站中centos7可安装的软件包:Index of /centos/7/os/x86_64/Packages/ (163.com)

还有其他比较好的镜像站,比如阿里云,中科大,清华等。

(二)yum安装

  • yum命令:Yellow dog Updater, Modified。基于rpm。
  • yum安装的都是RPM包,从指定服务器自动下载RPM包并安装。
  • yum能够自动处理依赖性关系,一次安装软件包和相关的所有依赖包。
  • 目前安装软件包,一般都是使用yum命令安装。

yum安装软件包:yum  install  需安装的软件包  -y

yum卸载软件包:yum remove  需卸载的软件包  -y

yum升级软件包:yum update  需升级的软件包

 举例:yum安装wget(直接安装)

# yum安装wget
yum install wget -y

# yum查看是否已安装wget
yum list installed | grep wget

yum源的配置文件:

/etc/yum.repos.d目录,存放yum源的配置文件。

这些配置文件的文件名以".repo"结尾,指定从哪个服务器下载以及如何安装和更新。

rpm和yum安装软件包的位置

 rpm安装已手动下载好的RPM包。yum基于rpm,从指定服务器自动下载并安装RPM包。

RPM包的默认安装位置
/etc存放软件包的配置文件
/usr/bin存放软件包的可执行文件
/usr/lib存放可执行文件需要的库文件
/usr/share/doc存放软件包的说明文档
/usr/share/info存放软件包的帮助文档,不常用,被man代替
/usr/share/locale存放软件包的语言环境(地区、语言、字符集)
/usr/share/man存放软件包的man帮助文档

查看是否已安装软件包(显示全称):rpm -qa | grep 软件包

查看软件包的安装位置:rpm -ql 软件包

(三)编译安装

使用yum命令可一次安装软件包和相关依赖包。但若想要更灵活的通过源代码安装,可以使用编译安装。

参考:技术|详解如何用源代码安装软件,以及如何卸载它 (linux.cn)

编译安装的一般步骤:

(1)下载源代码,并解压缩

(2)配置编译参数:./configure。配置要安装的软件,检测系统环境是否符合安装,构建Makefile。

(3)编译安装

  • 编译:make。读取Makefile,去构建程序,编译后在objects目录下生成很多编译后的文件(.o结尾)。
  • 安装:make install。安装程序。/usr/local目录是系统管理员本地安装软件时使用。自己手动安装的软件可以安装在/opt目录下,使用软链接即可,方便跟踪和卸载。

(4)运行(即运行可执行文件)

  • 注意:运行(使用完整路径。若直接使用,尝试软链接或将文件复制到指定位置或添加环境变量)
/usr/bin存放各软件的可执行文件
/usr/lib存放各软件的库文件
/usr/local存放各软件的安装目录
/usr/local/src存放各软件的源代码

 举例:centos7编译安装ncurses6.5:(本次安装目录存放在/opt目录下,并使用软链接到指定位置)

① 下载源代码:  网址Index of /pub/gnu/ncurses 

# 下载压缩包,本次选择版本8.4(x86_64)
wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz

# 解压缩到/opt目录下
tar -zxvf ncurses/ncurses-6.5.tar.gz -C /opt

# 切换到安装目录
cd /opt/ncurses-6.5

# 查看安装目录下的文件(有configure)
ls

② 编译安装:(先配置编译参数,再编译和安装)

# 配置编译参数,本次安装在/opt/ncurses目录下,ncurses目录会自动创建。
./configure --prefix=/opt/ncurses

# 编译,若要加速编译,可以使用make -j
make

# 安装
make install

③ 运行:(使用完整路径运行。为了直接运行,本次使用软链接)

# 查看ncurses版本,使用完整路径运行
/opt/ncurses/bin/ncursesw6-config --version

# 可执行文件创建软链接(并取别名),可在任意目录直接运行可执行文件
ln -s /opt/ncurses/bin/ncursesw6-config /usr/bin/ncurses

# 再次查看ncurses版本(使用别名)
ncurses --version

# 安装目录创建软链接
ln -s /opt/ncurses /usr/local/ncurses


目前很多官网下载的压缩包,已经是编译安装好之后打包的文件,解压缩后即安装好,使用完整路径就可以运行可执行文件。若直接使用,可添加环境变量或由chkconfig管理。

举例:centos7安装mysql(从mysql官网下载的压缩包,解压缩后即已是编译安装后的)

mysql网址(选择系统和版本):MySQL :: Download MySQL Community Server

① 需要根据相应的系统版本下载源代码,因此,先查看系统环境。

# 查看内核和系统信息
uname -a

# 查看centos系统版本
cat /etc/centos-release

② centos7默认安装mariadb(mysql替代品), 或者安装过旧的mysql,为避免冲突,可以清除相关旧的库和文件。

# 若默认已安装mariadb,则卸载:

查看是否已安装mariadb:rpm -qa | grep -i mariadb

 查看mariadb状态:systemctl status mariadb

关闭mariadb:systemctl stop mariadb

卸载mariadb(忽略依赖包):rpm -e mariadb --nodeps 

# 若安装过旧的mysql,则卸载:

查看是否已安装mysql:rpm -qa | grep -i mysql

查看mysql状态:systemctl status mysql

关闭mysql:systemctl stop mysql

卸载mysql(忽略依赖包):rpm -e mysql --nodeps

# 若存在mysql相关的文件,则删除:

查看是否有mysql相关的文件:find / -name mysql

查看/etc目录下,是否有my.cnf文件:find /etc -name my.cnf

删除文件:rm -rf  文件名

 

③ 下载源代码,并解压缩。可以直接复制解压缩到指定位置,也可以创建软链接到指定位置。 

(本次安装目录存放在/opt目录下,并使用软链接到指定位置)

# 下载压缩包,本次选择版本8.4(x86_64)
wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz

# 解压缩到/opt目录下(z:用gzip处理,j:使用bzip2处理,J:使用xz处理)
tar -Jxvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz -C /opt

# 安装目录名重命名
mv /opt/mysql-8.4.0-linux-glibc2.28-x86_64 /opt/mysql-8.4

# 切换到安装目录
cd /opt/mysql-8.4

# 查看安装目录下的文件(没有configure)
ls

# 查看安装目录下的bin目录(有mysql和mysqld)
ls bin

# 查看安装目录下的support-files目录(有mysql.server)
ls support-files

# 查看myql版本
/opt/mysql-8.4/bin/mysql --version

#  创建软链接(-s:软链接,-v:显示执行过程)
ln -sv /opt/mysql-8.4/bin/mysql /usr/bin/mysql
ln -sv /opt/mysql-8.4 /usr/local/mysql

# 再次查看myql版本
mysql --version

# 查看/usr/local目录下的mysql相关的
ll /usr/local | grep mysql

# 查看/usr/bin目录下的mysql相关的
ll /usr/bin | grep mysql

注意:查看myql版本时可能报错(libncurses.so.6:cannot open shared object file)。

原因:ncurses版本低,下载更高版本(网址Index of /pub/gnu/ncurses)。

注:本文只涉及安装软件包。mysql后期涉及的创建用户和组、配置文件、初始化、添加服务、设置开机自启等,此处忽略。

补充:

1、查找命令的相关文件路径你
whereis 命令名查找命令相关的二进制文件、源代码、帮助手册的路径
which 命令名查找执行的命令所在路径

2、yum安装mysql

centos7默认的yum源(yum仓库,镜像站)没有提供mysql,需手动下载mysql的yum源。

① mysql的yum源下载网址:MySQL :: Download MySQL Yum Repository

② 下载安装步骤:从网页下载RPM包(mysql的yum源),yum安装mysql的yum源,yum再从mysql的yum源去下载安装mysql-server。

# 从网页下载RPM包(mysql的yum源)
wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm

# yum安装mysql的yum源
yum install -y mysql84-community-release-el7-1.noarch.rpm

# 查看yum源(yum仓库,镜像站),-1(数字1):一行显示一个文件
ls -1 /etc/yum.repos.d/

# yum安装mysql-server
yum install -y mysql-community-server

# 查看是否已安装mysql
rpm -qa | grep -i mysql

 

注意:yum安装的mysql自动创建mysql用户和mysql组,自动添加服务。

 3、Debian系列的软件包管理器(说明文档)

Debian 软件包管理器:dpkg、apt 和 Aptitude 解释 (linux-console.net)

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

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

相关文章

HCIP-Datacom-ARST自选题库_07_割接【35道题】

一、单选题 1.在割接的测试阶段,符合以下哪一种情况的可以判断为割接成功? 网络承载的上层应用业务测试正常 网络设备的配置查看结果正常 网络流量路径正常 路由协议运行正常 2.在割接的测试阶段中,表明已经完成测试的标准是: IP设备的配置查看结…

org.postgresql.util.PSQLException: 错误: 关系 “dual“ 不存在

springboot 项目连接 postgreps,启动时报错 org.postgresql.util.PSQLException: 错误: 关系 "dual" 不存在。 查阅资料后发现这是由配置文件中的配置 datasource-dynamic-druid-validationQuery 导致的 spring:datasource:druid:stat-view-servlet:ena…

二叉树介绍

引入 定义 区别 定义不同 形态不同 基本形态

Ubuntu18.04解决有线网卡连接问题(不更新内核成功版)

https://www.realtek.com/Download/List?cate_id584 (需要翻一下) 不想自己去下载,直接去我资源里下载我上传的包就好啦(😂😂😂刚刚看了下别人下载要VIP还是自己去网站下很快的) 下载后解压,在…

FreeRTOS二值信号量

目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量简介 三、二值信号量相关API 1、创建二值信号量 2、释放二值信号量 3、获取二值信号量 四、二值信号量实操 1、实验需求 2、CubeMX配置 3、代码实现 一、信号量的概念 1、信号量的基本概…

从零开始的软件测试学习之旅(七)接口测试流程及原则案例

接口测试三要素及案例 接口测试介绍接口预定义接口测试的主要作用测试接口流程如下接口测试三要素接口测试分类RESTful架构风格RESTful架构三要素要素一要素二要素三 RESTful架构风格实现restful架构案例接口测试流程接口测试原则功能测试自动化测性能测试 复习复盘 接口测试介…

MYSQL:MySQL 事务隔离级别详解

一、MySQL事务是什么? MySQL事务是一组在数据库中执行的操作,这些操作要么全部成功执行,要么全部不执行,以确保数据库的完整性和一致性。 事务的 ACID 事务具有四个特征:原子性( Atomicity )、…

COX回归特征筛选

任务:利用cox筛选出P值小于0.05的特征 数据的格式第一列为标签,第二列为时间,第三列及后为特征 先想一想,想好了再更新 这里我们先举一个例子: import pandas as pd from lifelines import CoxPHFitter# 创建示例数…

【随笔】Git 高级篇 -- 远程跟踪分支 git checkout -b | branch -u(三十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

Github 2024-05-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目5Python项目2非开发语言项目2Vue项目1Rust项目1AFFiNE: 下一代知识库 创建周期:649 天开发语言:TypeScript协议类型:OtherSta…

2024最新最全【NMAP】零基础入门到精通

一、Nmap介绍 Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见安全漏洞。它的图形化界面是Zenmap&#xff…

AJAX前端与后端交互技术知识点以及案例

Promise promise对象用于表示一个异步操作的最终完成(或失败)及其结果值 好处: 逻辑更清晰了解axios函数内部运作机制成功和失败状态,可以关联对应处理程序能解决回调函数地狱问题 /*** 目标:使用Promise管理异步任…

基于JAVA的微信小程序二手车交易平台(源码)

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

顺序表、单链表和双链表

2.算法设计题 1.合并递增链表 1.算法分析: 两个链表合并,由于限定不能用额外的存储空间,所以链表比较合适。 算法步骤: 第一步:取出b表中的第一个结点; 第二步:和a表中的结点依次比较&…

全国院校及梯度排序深度解析课(免费下载-帮助更多高考生做出人生重要的选择。)

"全国院校及梯度排序深度解析课"旨在深入探讨全国院校的排名及梯度排序原理。通过系统解析各院校的学术声誉、师资力量、科研水平等因素,帮助学员全面了解院校排名的背后逻辑,为选择合适院校提供理论支持。 课程大小:7G 课程下载…

Electron、QT、WPF三强争霸,该支持谁呢?

Electron、QT、WPF都是跨平台的桌面应用开发框架,都是非常流行的,作为开发者该选用哪个呢?本文从多个角度分析一下。 一、定义 Electron、Qt 和 WPF 都是用于创建桌面应用程序的框架或工具,它们各自有着不同的特点和优势。 Elec…

【3dmax笔记】036:FDD修改器

一、FDD修改器简介 FDD修改器是对模型进行变形处理的命令,FDD后面的数字越大,编辑节点越多,编辑越精细,但是FDD控制点多的同时,模型上的节点也要多才可以。 FFD修改器是一种非常灵活的修改器,可以让我们对模型进行自由的变形操作。通过在FFD修改器中设置变形点,我们可…

力扣HOT100 - 55. 跳跃游戏

解题思路&#xff1a; class Solution {public boolean canJump(int[] nums) {int n nums.length;int maxReach 0;// 正常来说每次至少跳一格&#xff0c;所以最多循环n次for (int i 0; i < n; i) {if (i > maxReach) return false;// 这种情况代表遇到了0&#xff0…

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…

机器学习周报第三十八周 iTransformer

文章目录 week38 iTransformer摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构**转置Embedding&#xff1a;****LayerNorm&#xff08;层归一化&#xff09;****Feed-forward network&#xff08;前馈网络&#xff09;****Multivariate-Attention&#xff08;多变量注意…