当前位置: 首页 > news >正文

浅谈Yum 安装和 源码安装

浅谈Yum 安装和 源码安装

本文所叙述的Linux系统是基于RedHat发行版的CentOS7

yum安装

1. 前言

我们知道在Windows上下载的安装包后缀是 .exe ,与之对应的 在 Linux下的安装包的后缀是 .rpm

rpm (Red Hat Package Manager) 是红帽软件包管理器

我们在Windows电脑上下载完.exe安装包后,双击打开即可安装,完全不用操心其内部配置和代码的联系方式。

但是,在Linux下,比如你下载一个mysql5.7 的rpm包,那么当你使用rpm命令去安装的时候,就告诉你这个rpm 还依赖于其他的rpm包,你必须按照顺序来一个一个安装,这样显得非常麻烦,且对新手很不友好!

那么,有没有一种工具,让我们无需关心其rpm包之间的依赖,更加方便快捷的安装某个应用呢,答案是肯定的。

这里贴上rpm软件包管理器的常用命令作为学习和参考

# 一、查询已安装的软件包
$ rpm -q 软件包名   # 查询软件包是否安装
$ rpm -ql 软件包名  # 查询软件包的文件具体安装位置
$ rpm -qi 软件包名  # 查询软件包信息# 二、安装、升级、卸载软件包$ rpm -ivh 软件包名  # 安装软件包(其中,i表示安装,v表示显示安装过程,h表示显示安装进度)
$ rpm -Uvh 软件包名  # 升级软件包(U表示升级)
$ rpm -e 软件包名     # 卸载软件包

2. 横空出世

yum就是这样一个方便快捷的工具,对小白同学非常友好。

它会自己解决rpm包之间的依赖关系,我们只需要一个简简单单的命令即可完成安装

# 比如我们安装mysql
$ yum -y install mysql

像上面的命令一样,我们就只提供给我们想要安装的应用名称,即可完成安装。

那么可能有人会问了,这个yum 是从哪里找的rpm安装包呢?安不安全呢?下载速度怎么样啊?

3. yum 源仓库

这个非常好理解,这个yum 仓库里面存放的就是绝大部分rpm安装包,几乎是囊括了你所需要的软件包。

你就跟windows电脑里的软件管家对比,之前你下载一个微信、QQ啥软件的,你都要去百度上寻找官网下载

一不小心可能还下载到病毒,但你去本机自带的软件管家里下载,起码保证你方便寻找,安全可靠。

那yum仓库就跟软件管家一毛一样。里面存放了非常之多的rpm包,当你敲了命令后,他就会去这个仓库里找rpm包

并且自动解决这些包之间的依赖关系,且您放心,这个仓库都是有专人在维护的,可靠性、安全性、完整性不需要担心。

But,But,But 最大的难点就是下载速度比较慢,因为这个仓库是在国外在维护

访问下载速度自然也就慢了,如果你可以科学上网 的话,那当我没说…

当然,解决办法还是有滴!国内也是有这样的仓库的,由国内知名的大厂在维护,比如阿里云、网易、搜狐等

国内开源镜像站
https://developer.aliyun.com/mirror/
http://mirrors.sohu.com
http://mirrors.163.com

但是哦,我在上面说的是这个仓库囊括了绝大多数安装包,有的没有的,就需要第三方可信任组织的软件包

  • epel 它提供了众多centos额外的第三方包
http://mirrors.sohu.com/fedora-epel/7/x86_64/Packages/
https://developer.aliyun.com/mirror/epel/

现在,你有了国内的yum 仓库,你就可以去这个地址下下载啦

老规矩,附上一份yum 常用命令

$ yum install -y 软件名   # 安装软件
$ yum remove 软件名  # 卸载软件
$ yum update 软件名  # 更新软件
$ yum update  # 更新所有软件包
$ yum search 软件名  # 搜索指定软件
$ yum list # 列出所有软件包
$ yum list installed  # 列出已安装的所有软件包
$ yum list available  # 列出可用的安装包
$ yum clean all  # 清理下载的缓存,释放磁盘空间

BUT,又有人可能会问,那yum怎么知道要去这个地址下载软件呢?

嘿!请往下接着瞧

4. 配置仓库地址

首先要说明的一点是,yum是分为服务端和客户端。

服务端说白了就是yum 仓库,提供服务的

客户端就是我们个人、企业的主机,来获取这些服务的机器

我们先来看看yum 的客户端
# 客户端的配置文件是 /etc/yum.conf 文件  它为所有仓库提供公共配置
$ vim /etc/yum.conf[main]
cachedir=/var/cache/yum/$basearch/$releasever   # 注明缓存的文件目录位置
keepcache=0										# 本地缓存是否保留 0 否 1 是
debuglevel=2									# 调日志级别
logfile=/var/log/yum.log						# 日志文件目录位置
exactarch=1										# 精确匹配系统平台(CentOS、Ubantu)
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5								# 同时安装几个软件包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m# 最后一句话解释一下,请将你的yum 仓库配置文件(也就是仓库地址咯)放在 /etc/yum.repos.d目录下,要以.repo结尾才可以
# PUT YOUR REPOS HERE OR IN separate files named file.repo  
# in /etc/yum.repos.d
# 那我们cd 到该目录下看看
$ cd /etc/yum.repos.d
# 切记,必须将*.repo文件放在这个目录下,也不能放在它的子目录下,且只在这个目录下才可行。

我们来以这个目录下的 CentOS-Base.repo 文件为例来说明文件内容

$ vim CentOS-Base.repo# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base -mirrors.sohu.com  # 仓库的名字
failovermethod=priority # roundrobin 随机挑选   priority 顺序读取
baseurl=http://mirrors.sohu.com/centos/7/os/x86_64/Packages/=http://mirrors.sohu.com/centos/7/updates/x86_64/Packages/
gpgcheck=1  # 是否检测秘钥
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  # 公钥存放路径# 指定rpm包升级的时候,去哪里找
#released updates   
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7# epel额外包的下载地址
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

自己自定义的时候的格式,按照[base]的那个来,其余的updates和 extras都也一样

我们可以去阿里巴巴的镜像网站看看如何配置

[阿里巴巴CentOS的[base]的配置源教程](centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 (aliyun.com))

[阿里巴巴CentOS的[extras]的配置源教程](epel镜像_epel下载地址_epel安装教程-阿里巴巴开源镜像站 (aliyun.com))

源码安装

上面的yum 安装方式有利有弊

  • 利:安装方便快捷,适合新手,配置相对方便,可以自动解决依赖关系

  • 弊:不能自定义应用、不能指定应用的下载版本

源码安装利弊

  • 利:可以指定下载版本,设置参数、指定安装路径、扩展第三方功能
  • 弊:不适合新手,适合老手,不能自动解决依赖关系,安装复杂、配置相对复杂

建议方式:yum 和 源码一起使用,即可解决绝大部分问题

源码安装分三步

前提条件:准备好开发工具以及开发环境

  • 开发工具:gcc make 等
  • 开发组件
    • yum groups install "Development Tools"
    • yum groups install "Platform Development"

第一步

执行脚本 configure 文件

# 1.解压提前下载好的tar.gz 的源码包
# 2.cd 到解压的目录下
# 3.然后执行./configure --prefix=软件安装路径对于C C++ 代码进行编译安装,需要执行configure脚本来生成Makefile文件来检查依赖和外部环境# 假设你已经下载了nginx-1.12.0.tar.gz压缩包在/opt目录下$ cd /opt/ 
$ tar -zxvf nginx-1.12.0.tar.gz # 解压
$ cd nginx-1.12.0
$./configure --prefix=/data/nginx_test01 # 指定安装的目录到/data/nginx_test01 下
$ ls # 可以看到Makrfile文件

第二步

执行make 命令

# make 的作用就是进行源代码编译,以及提供一些功能
# 在当前目录(/opt/nginx-1.12.0)下输入make指令
$ make

第三步

开始安装 make install

# 当你执行完这条命令后,才会生成/data/nginx_test01这个文件夹
# 还是在当前目录下,输入make install命令
$ make install
# 然后这个目录文件就生成了  /data/nginx_test01

演示启动玩一下

# 上面已经编译安装完了nginx,现在我们来启动它
$ cd /data/nginx_test01
$ ls
$ cd ./sbin # bin目录是二进制文件可执行的目录
$ ls # 然后可以看见一个nginx可执行文件,执行它
$ ./nginx# 然后去网页上访问IP加端口,看看是否成功# 如果出现403,则需要浅浅的配置一下nginx的配置文件
$ cd /data/nginx_test01/conf
$ vim nginx.conf# user nobody;  # 将第一行代码取消注释,nobody改成root 以root用户执行
user root;
...
...
# 保存退出# 重启nginx
$ cd ..
$ ./sbin/nginx -s reload 
# 然后就好了

最后一步,将启动文件地址加入到PATH里,配置全局变量

就不用每次去指定目录里再去启动、重启了

# 我想直接输入 nginx启动它,就必须要配置环境变量
# 那么就可以将 /data/nginx_test01/sbin 写入环境变量$ vim /etc/profile.d/nginx.sh
# 写入这样一条命令
$ export PATH=/data/nginx_test01/sbin:$PATH
# 保存退出# 重新读取配置文件
$ source /etc/profile.d/nginx.sh# 然后就可以启动、重启、停止nginx服务了
$ nginx #启动
$ nginx -s stop #停止
$ nginx -s reload
$ nginx -s restart

感谢自己的记录和坚持不懈,加油! 今日学习记录和分享到此结束! 下次再见!

相关文章:

浅谈Yum 安装和 源码安装

浅谈Yum 安装和 源码安装 本文所叙述的Linux系统是基于RedHat发行版的CentOS7 yum安装 1. 前言 我们知道在Windows上下载的安装包后缀是 .exe ,与之对应的 在 Linux下的安装包的后缀是 .rpm rpm (Red Hat Package Manager) 是红帽软件包管理器 我们在Windows电脑…...

JavaEE初阶Day 3:多线程(1)

目录 Day 3:多线程(1)1. 线程1.1 引入线程的原因1.2 线程的定义1.3 为何线程更轻量1.4 问题 2. 多线程代码2.1 继承Thread重写run2.2 通过实现Runnable接口创建线程2.3 针对2.1的变形使用匿名内部类2.4 针对Runnable创建匿名内部类2.5 使用la…...

gutil140.dll是什么?gutil140.dll无法继续执行的解决方法

gutil140.dll文件是一个动态链接库(DLL)文件,通常与Microsoft Visual Studio 2015相关联。 gutil140.dll是开发过程中使用的工具函数集合,它辅助开发人员执行常见的编程任务,如文件操作、内存分配和字符串处理等。这个…...

在CentOS 7上安装Python 3.7.7

文章目录 一、实战步骤1. 安装编译工具2. 下载Python 3.7.7安装包3. 上传Python 3.7.7安装包4. 解压缩安装包5. 切换目录并编译安装6. 配置Python环境变量7. 使配置生效8. 验证安装是否成功 二、实战总结 一、实战步骤 1. 安装编译工具 在终端中执行以下命令 yum -y groupin…...

基于SpringBoot Vue宠物领养系统

一、📝功能介绍 基于SpringBoot Vue宠物领养系统 角色:管理员、用户 当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到宠物领养救助平台的导航条显示首页、宠物招领、宠物认领、 宠物论坛、宠物资讯、后台管…...

ip命令

ip a 也是ip addr简写 [rootlocalhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft…...

【Kaggle】练习赛《鲍鱼年龄预测》(上)

前言 上一篇文章&#xff0c;讲解了《肥胖风险的多类别预测》机器学习方面的文章&#xff0c;主要是多分类算法的运用&#xff0c;本文是一个回归的算法&#xff0c;本期是2024年4月份的题目《Regression with an Abalone Dataset》即《鲍鱼年龄预测》&#xff0c;在此分享高手…...

Ruby 之交租阶段信息生成

题目 我看了一下&#xff0c;这个题目应该不是什么机密&#xff0c;所以先放上来了。大概意思是根据合同信息生成交租阶段信息。 解答 要求是要使用 Ruby 生成交租阶段信息&#xff0c;由于时间比较仓促&#xff0c;变量名那些就用得随意了些。要点主要有下面这些&#xff1a…...

RUST语言值所有权之内存复制与移动

1.RUST中每个值都有一个所有者,每次只能有一个所有者 String::from函数会为字符串hello分配一块内存 内存示例如下: 在内存分配前调用s1正常输出 在分配s1给s2后调用报错 因为s1分配给s2后,s1的指向自动失效 s1被move到s2 s1自动释放 字符串克隆使用...

【Django学习笔记(三)】BootStrap介绍

BootStrap介绍 前言正文1、BootStrap 快速了解2、初识BootStrap2.1 下载地址2.2 创建目录2.3 引入BootStrap2.4 使用BootStrap 3、BootStrap 组件&样式3.1 导航条3.2 栅格系统3.3 container3.3.1 container3.3.2 container-fluid 3.4 面板3.5 媒体对象3.6 分页3.7 图标3.7.…...

ClickHouse开发相关(UDAF)

ClickHouse开发相关(UDAF) ClickHouse介绍 ClickHouse是一个开源、高性能的列式 OLAP 数据库管理系统,用于使用 SQL 进行实时分析。 为什么需要ClickHouse UDAF? ClickHouse中已存在了许多聚合函数,绝大多数情况下已经覆盖我们的需求,但是有时候我们仍然需要自定义函数…...

MySql并发事务问题

事务 事务概念&#xff1a; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 事务的特性&#xff1a;ACID&#xff1a; 小…...

Windows下Docker创建Mysql5.7

安装 下载镜像&#xff0c;注意&#xff0c;要带版本号 docker pull mysql:5.7 等下载完成执行命令&#xff1a; 错误命令1&#xff0c;直接Windows下路径&#xff1a; docker run --name mysql57 --restartalways -p 3306:3306 -v F:/mysqldata/data57/log:/var/log/mysql…...

Redis(性能管理、主从复制、哨兵模式)概述及部署

目录 一、性能管理 1、查看Redis内存使用 2、内存碎片率 3、跟踪内存碎片率 4、内存使用率 5、内回收key 二、Redis集群有三种模式 三、Redis主从复制 1、主从复制的概念 2、主从复制的作用 3、主从复制的流程 4、搭建Redis主从复制 1.环境准备 2.安装Redis&#…...

LabVIEW挖坑指南

一、挖坑指南 1.1、输出变量放在条件框内 错误写法&#xff1a; 现象&#xff1a;如果没进入对应的分支&#xff0c;输出为默认值 正常写法&#xff1a; 让每个分支输出的值都在预料之内。 1.2、统计耗时不准 错误写法 现象&#xff1a;统计出来的耗时是2000ms 正常写法&a…...

docker容器环境安装记录(MAC M1)(完善中)

0、背景 在MAC M1中搭建商城项目环境时&#xff0c;采用docker统一管理开发工具&#xff0c;期间碰到了许多环境安装问题&#xff0c;做个总结。 1、安装redis 在宿主机新建redis.conf文件运行创建容器命令&#xff0c;进行容器创建、端口映射、文件挂载、以指定配置文件启动…...

Linux 常用命令(持续更新中...)

1. ls 查看文件列表命令 语法&#xff1a; ls [-a -l -h] [Linux路径] -a -l -h 是可选的选项 &#xff08;-h需配合-l命令一起使用&#xff09;Linux路径是此命令可选的参数 ls #查看当前目录所有非隐藏文件(平铺方式显示) ls -a #查看当前目录下所有文件 …...

xss.pwnfunction-Jefff

在eval中可以直接执行命令所以直接把"直接闭合在结尾再加上一个"因为后面的"没闭和会报错 ?jeffa";alert(1);" 或 ?jeffa"-alert(1)-" -是分隔符...

java——文件上传

一、文件上传——简介 文件上传的简介&#xff1a;文件上传是指将本地计算机中的文件传输到网络上的服务器或另一台计算机上的过程。在 Web 开发中&#xff0c;文件上传通常指的是将用户通过 Web 页面提交的文件&#xff08;如图像、文档、音频、视频等&#xff09;传输到服务器…...

RCE(远程命令执行)漏洞详解

漏洞描述 RCE(remote command/code execute&#xff0c;远程命令执行)漏洞 远程代码执行 (RCE) 攻击是指攻击者可以在一个组织的计算机或网络上运行恶意代码。执行攻击者控制的代码的能力可用于各种目的&#xff0c;包括部署额外的恶意软件或窃取敏感数据。 漏洞原理 远程代…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...