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

Linux下yum源配置实战

一、Linux下软件包的管理

1、软件安装方式

① RPM包管理(需要单独解决依赖问题)

② YUM包管理(需要有网络及YUM仓库的支持,会自动从互联网下载软件,自动解决依赖)

③ 源码安装(安装过程比较复杂,源码安装三步走。优点:定制性很强)

软件:主线版(mainline),稳定版(stable)

2、源码安装的配置过程

在Linux系统中,源码安装一共分为三步(三步走):

第一步:配置过程(配置软件的安装路径)

第二步:编译过程(把软件由源代码编译成可以安装的程序)

第三步:安装过程(把编译后的程序进行安装)

# ./configure && make && make install

3、详解源码安装的配置过程(定制)

# cd 软件源码包
# ./configure [选项]
# ./configure --help
​
--prefix=... Directories to put files in /usr/local 软件家目录
--bindir=... $prefix/bin    命令的目录
--etcdir=... $prefix/etc    配置文件的目录 httpd => /etc/httpd/httpd.conf
--mandir=... $prefix/share/man man  文档路径
--locale=... $prefix/share/locale   语言编码
...

4、详解编译过程

# make

在Linux操作系统中,make主要功能就是将其他语言的源代码打包成Linux可以识别安装的程序。编译过程需要一个gcc软件(开发工具)的支持!

5、安装过程

# make install

6、axel多线程下载软件源码安装

第一步:获取axel多线程下载软件

第二步:上传axel软件包到Linux系统中

第三步:安装axel软件(源码安装三步走=>配置+编译+安装)

① 对软件进行解压缩操作

# tar -zxf axel-2.4.tar.gz
或
# tar -xf axel-2.4.tar.gz

② 使用cd命令切换到axel目录中

# cd axel-2.4

③ 对axel软件进行配置(不采用默认配置)

# ./configure --help
Usage: ./configure [OPTIONS]
Option          Description                             Default
--prefix=...    Directories to put files in             /usr/local
--bindir=...                                            $prefix/bin
--etcdir=...                                            $prefix/etc
--mandir=...                                            $sharedir/man
--locale=...                                            $sharedir/locale

设置axel软件的安装路径为/opt/axel

# ./configure --prefix=/opt/axel

④ 对axel软件进行编译与安装

# make
# make install
或
# make && make install
&& :逻辑与,如果make编译成功会立即执行右边的make install安装程序,如果make编译失败,则以上程序会停止执行,然后抛出错误。

第四步:测试与使用

[root@yunwei ~]# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
bash: axel: command not found...

出现以上问题的主要原因在于:我们没有采用默认的安装方式,所以导致当我们执行axel命令时,其找不到对应的软件。

第五步:解决命令无法访问问题

第一种方式:采用软链接形式(类似Windows中的快捷方式)
第二种方式:使用环境变量(重要,Linux中的环境变量)

7、使用软链接解决command not found

# which axel
/usr/bin/which: no axel in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
​
# ll /opt/axel/bin
axel
​
解决方案:给/opt/axel/bin/axel创建一个快捷方式到/usr/local/bin
# ln -s /opt/axel/bin/axel /usr/local/bin/axel 
​
基本语法:
# ln -s  源文件路径 软链接路径
​
# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

8、使用环境变量解决command not found

环境变量

终端 => 命令 => 系统的环境变量(PATH => /etc/profile) => 一些命令的存放路径

axel多线程下载软件,通过源码的方式安装成功后,由于没有使用默认的安装路径,导致axel这个命令没有出现在系统的环境变量中,所以其会出现command not found。

第一步:查询当前系统的环境变量

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

第二步:把axel所在目录添加到环境变量

① 使用vim编辑/etc/profile文件,追加到最后一行
# vim /etc/profile
...
export PATH=$PATH:/opt/axel/bin
# source /etc/profile           =>          代表让以上配置立即生效
​
② 使用echo命令向/etc/profile文件中追加一行
# echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile
# source /etc/profile

第三步:测试axel命令是否可以使用

# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

9、解决源码安装软件手册找不到问题

问题重现:

[root@localhost axel]# man axel
No manual entry for axel
原因:找不到指定的man文档

解决方案:

[root@localhost axel]# vim /etc/man.config
...
增加如下内容:
MANPATH /opt/axel/share/man

10、卸载源码安装的软件

第一步:进入到源码的安装包中
# cd axel-2.4
# make uninstall    =>   安装软件的安装包等程序
# make distclean    =>   卸载编译与配置过程
第二步:删除软件的目录
# rm -rf /opt/axel

二、YUM源概述

1、yum源作用

==软件包管理器==,类似360的软件管家

2、yum源优点

RPM安装(下载软件、单独安装、需要解决依赖关系)

源码安装(下载软件的源码包,解压,进入目录=>配置+编译+安装)

yum源:相当于rpm软件包管理的升级版

能够==解决软件包之间的依赖关系==,提高运维人员的工作效率。

yum源底层还是基于RPM进行软件安装操作的,所以yum安装软件后,我们也可以通过rpm -qa |grep 软件名称

3、yum源分类

☆ 本地yum源

yum仓库在==本地==(系统光盘/镜像文件) => 不需要网络的支持

☆ 网络yum源

yum仓库不在本地,在==远程==

  • 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等)

    阿里源:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

    网易源:欢迎访问网易开源镜像站

    搜狐源:Index of /

    清华源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 国外较知名的网络源(centos源、redhat源、扩展epel源等)

  • ==特定软件==相关的网络源(Nginx、MySQL、Zabbix等)

4、本机yum源备份(重要)

第一步:使用cd命令切换到/etc/yum.repos.d目录

# cd /etc/yum.repos.d/

第二步:对所有的仓库文件进行备份

# tar -zcf repo.tar.gz *.repo

第三步:删除所有的以.repo结尾的仓库文件

# rm -rf *.repo

三、本地YUM源配置

1、本地YUM配置

① 使用光盘镜像作为YUM源仓库

② 下载很多软件,使用软件包作为YUM源仓库

2、使用光盘镜像作为YUM源仓库

第一步:在VMware系统中装在CentOS7.6系统的光盘镜像

第二步:把光盘挂载到某个目录下

# cd ~
​
# rm -rf /mnt/*
# mount -o ro /dev/sr0 /mnt
选项说明:
-o :挂载方式,ro代表以readonly=>只读的方式进行挂载rw代表以read/write=>读写的方式进行挂载
# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.3G  0 rom  /mnt

卸载或解挂可以使用umount /mnt

第三步:把光盘挂载添加到开机启动文件中

# chmod +x /etc/rc.local
# echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local

/etc/rc.local,属于系统的开机启动文件。系统启动后,会自动加载并执行这个文件

第四步:编写本地YUM仓库文件

# cd /etc/yum.repos.d/
创建一个以*.repo结尾的文件,名称任意
# vim local.repo
[local]
name=local yum
baseurl=file:///mnt
gpgcheck=0
enabled=1
# yum clean all
# yum makecache
# yum repolist all
​
注:file://本地协议路径,后面跟仓库的具体路径

yum仓库的标准格式

[仓库标识名称],名称任意,在一个文件中可以拥有多个标识

name=仓库名称

baseurl=仓库的路径,支持多种格式,file://本地路径,ftp://,http://或https://

gpgcheck=gpg密钥,值可以是0(代表不检测),1(代表检测,如果是1,下方还要定义一个gpgkey=密钥连接)

enabled=是否启动当前仓库,值可以0,也可以是1,默认为1,代表启动仓库

第五步:测试本地YUM仓库是否可用

# yum install httpd -y

3、扩展man 5

在Linux系统中,给定我们一个配置文件,怎么查询这个文件中每一个选项的作用呢?

# man 命令

扩展:man 5 配置文件名称

# man 5 yum.conf

四、网络YUM源配置

1、网络YUM源的分类

① 使用比较知名平台的YUM源(阿里云、腾讯、清华)

② 有些特定软件(如Nginx、MySQL、Zabbix等等)需要根据官网文档自定义网络YUM源

2、使用知名平台的YUM源

阿里源:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

网易源:欢迎访问网易开源镜像站

搜狐源:Index of /

清华源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

腾讯源、华为源...

百度搜索 => 华为 mirror镜像源

案例:配置阿里云的yum源

第一步:百度,搜索你想要的YUM源,进入官网,找到CentOS

第二步:根据官网提示,配置阿里云的YUM源

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
​
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
​
# yum clean all
# yum makecache

3、扩展:EPEL源配置

什么是EPEL源?

答:EPEL是对官网源的一个扩展。

CentOS-Base.repo文件 => 基础源(官方在带的YUM源)

epel.repo文件 => 扩展源,是对官方YUM源的一个补充

# yum install epel-release -y

比如:会跑的小火车就是在epel源中

# yum install sl -y
# sl

4、特定软件的YUM源配置

比如特殊的几个软件,如Nginx、MySQL、Zabbix

Nginx:nginx news

MySQL:MySQL

Zabbix:Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

找到官方文档,把YUM源配置,写入到一下文件中(repo文件)

# cd /etc/yum.repos.d
# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

清理缓存:

# yum clean all
# yum makecache

安装Nginx:

# yum install nginx -y

五、自建YUM源仓库

1、缓存安装软件包

什么时候需要缓存软件?

  • 下次还需要安装相同版本的软件包

  • 由于网络原因导致网络安装非常慢,将软件包缓存下来,配置本地仓库

2、如何缓存软件安装包

# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever   定义软件包的缓存路径
keepcache=1         1开启缓存;0关闭
debuglevel=2
logfile=/var/log/yum.log
...

3、把软件及依赖软件全部下载到某个路径

只下载不安装软件:

# yum install --downloadonly --downloaddir=保存路径 软件名称

案例:下载samba软件及依赖软件

# mkdir /soft
# yum install --downloadonly --downloaddir=/soft samba

4、自定义YUM仓库

第一步:在系统中安装createrepo制作仓库的软件

# yum install createrepo -y

第二步:把/soft文件夹做成一个本地的自建仓库

# createrepo /soft

第三步:在/etc/yum.repos.d目录中创建一个soft.repo的仓库

# cd /etc/yum.repos.d/
# vim soft.repo
[soft]
name=soft yum
baseurl=file:///soft
gpgcheck=0
enabled=1

清理缓存+重建缓存:

# yum clean all
# yum makecache

相关文章:

Linux下yum源配置实战

一、Linux下软件包的管理 1、软件安装方式 ① RPM包管理(需要单独解决依赖问题) ② YUM包管理(需要有网络及YUM仓库的支持,会自动从互联网下载软件,自动解决依赖) ③ 源码安装(安装过程比较…...

JSONP 跨域访问(2), JSONP劫持

JSONP 跨域访问(2), JSONP劫持 一, 利用 XSS 漏洞执行jsonp 1. 利用过程 发现有jsonp的请求: <script type"text/javascript" src"http://192.168.112.200/security/jsonp.php?callbackjsonpCallback"></script>向xss漏洞的位置注入代码…...

【java】实现自定义注解校验——方法一

自定义注解校验的实现步骤&#xff1a; 1.创建注解类&#xff0c;编写校验注解&#xff0c;即类似NotEmpty注解 2.编写自定义校验的逻辑实体类&#xff0c;编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口&#xff0c;让注解用来校验) 3.开启使用自定义注解进…...

JavaScript基础入门03

目录 1.条件语句 1.1if 语句 1.1.1基本语法格式 1.1.2练习案例 1.2三元表达式 1.3switch 2.循环语句 2.1while 循环 2.2continue 2.3break 2.4for 循环 3.数组 3.1创建数组 3.2获取数组元素 3.3新增数组元素 3.3.1. 通过修改 length 新增 3.3.2. 通过下标新增 …...

P1903 [国家集训队] 数颜色 / 维护队列

带修改的莫队 带修改的莫队就是在基础莫队的基础上增加了一维属性&#xff0c;之前只需要维护l&#xff0c;r现在还需要维护一下时间t&#xff0c;排序还是先按照左端点块儿号排序&#xff0c;然后右端点块儿号排序&#xff0c;最后按时间排序。其它的都是差不多的。 #include…...

uniapp 请求接口的方式

在UniApp中&#xff0c;我们可以使用多种方式来发送请求接口。以下是几种常用的方式&#xff1a; 1、使用unmireuest方法:uni.reuest是uniApp提供的原生AP&#xff0c;可以发送HTTP请&#xff0c;我们可以通过传递一个图对象来设置请求的参数&#xff0c;RL、请求方法GET/POST…...

怎么查看当前vue项目,要求的node.js版本

要查看当前 Vue 项目所需的 Node.js 版本&#xff0c;你可以查看项目根目录下的 package.json 文件中的 engines 属性。该属性定义了项目所需的 Node.js 版本范围。 例如&#xff0c;以下是一个示例 package.json 文件&#xff1a; {"name": "my-vue-project&…...

QT5自适应

//集成屏幕自适应功能 QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); DEVMODE NewDevMode; //获取屏幕设置中的分辨率 EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &NewDevMo…...

蓝桥杯官网练习题(日期问题)

题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff0c;有采用年/月/日的&#xff0c;有采用月/日/年的&#xff0c;还有采…...

PDF文件解析

一、PDF文件介绍 PDF是英文Portable Document Format缩写&#xff0c;就是可移植的意思&#xff0c;它是以PostScript语言图象模型为基础&#xff0c;无论在哪种打印机上都可保证精确的颜色和准确的打印效果&#xff0c;PostScript咱也不懂&#xff0c;估计和SVG的原理差不多吧…...

初识微服务技术栈

认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构&#xff0c;这些架构之间有怎样的差别呢&#xff1f; 导学&#xff1a; 了解微服务的优缺点&#xff1b;了解微服务架构的演变过程&am…...

windows 下运行正常,但是linux下报错 : Could not find or load main class

使用指令 "sed -i s/\r$// xxxxxxx.sh"&#xff0c;将 .sh 文件中的 "\r" 全部替换成空白符&#xff0c;即可解决问题 转转&#xff1a;https://www.cnblogs.com/cmxbky1314/p/12096611.html...

MySQL 数据目录和 InnoDB 表空间补充知识:详细结构

1. 数据目录 在Ubuntu下&#xff0c;MySQL的数据目录为/var/lib/mysql 1.1 数据库在文件系统中的表示 &#xff08;1&#xff09;创建数据库时&#xff0c;会在数据目录下创建一个与数据库名同名的子目录。&#xff08;除了information_schema这个系统数据外&#xff09; &…...

移远EC600U-CN开发板 day02

1.QuecPythonLVGL显示图片 由于官方提供的显示图片函数使用失败&#xff0c;为了能在屏幕上显示图片&#xff0c;通过对出厂脚本的分析&#xff0c;成功使用LVGL显示图片 (1)代码 import lvgl as lv from tp import gt9xx from machine import LCD from machine import Pin …...

visual studio Python 配置QGIS(qgis)教程

visual studio Python 配置QGIS&#xff08;qgis&#xff09;教程 这个教程全网独一份啊&#xff0c;博主是自己摸索出来的。 visual studio Python 配置QGIS&#xff08;qgis&#xff09;环境一共分为两部&#xff1a; 第一步安装QGIS&#xff1a; 下载链接如下 https://www…...

第二证券:消费电子概念活跃,博硕科技“20cm”涨停,天龙股份斩获10连板

消费电子概念7日盘中再度拉升&#xff0c;到发稿&#xff0c;博硕科技“20cm”涨停&#xff0c;光大同创、波长光电涨超10%&#xff0c;易德龙、向阳科技、得润电子、天龙股份、同兴达等涨停。 博硕科技强势涨停&#xff0c;公司昨日在接受安排调研时表明&#xff0c;公司从上…...

petalinux 2022.2 在 ubantu18.04 下的安装

下载 Ubuntu下载&#xff1a; https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso petalinux 下载&#xff1a; https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools/2022-2.html 安装虚拟机 安装…...

【进程与线程】进程与线程 QA

进程与线程常见知识点&#xff1a; 1、什么是进程、线程&#xff0c;有什么区别? 进程是资源(CPU、内存等)分配的基本单位&#xff0c;线程是CPU调度和分配的基本单位程序执行的最小单位)。同一时间&#xff0c;如果CPU是单核&#xff0c;只有一个进程在执行&#xff0c;所谓…...

电脑风扇控制软件 Macs Fan Control Pro mac中文版功能介绍

Macs Fan Control mac是一款专门为 Mac 用户设计的软件&#xff0c;它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度&#xff0c;以提高设备的散热效果&#xff0c;减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…...

【13】c++11新特性 —>call_once

在某些特定情况下&#xff0c;某些函数只能在多线程环境下调用一次&#xff0c;比如&#xff1a;要初始化某个对象&#xff0c;而这个对象只能被初始化一次&#xff0c;就可以使用std::call_once()来保证函数在多线程环境下只能被调用一次。使用call_once()的时候&#xff0c;需…...

.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 适用场…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

RabbitMQ 各类交换机

为什么要用交换机&#xff1f; 交换机用来路由消息。如果直发队列&#xff0c;这个消息就被处理消失了&#xff0c;那别的队列也需要这个消息怎么办&#xff1f;那就要用到交换机 交换机类型 1&#xff0c;fanout&#xff1a;广播 特点 广播所有消息​​&#xff1a;将消息…...