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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【已解决】设置SSH主机:VS Code-正在本地下载 VS Code 服务器

问题描述 很简单,就是我电脑强制重启之后用vscode再去连服务器,发现连不上了 解决办法 如上图,点击重试按钮,下面的这些东西就可以复制粘贴了 ctrf查找commit,这个时候就能找到一串d037ac076cee195194f93ce6fe2bdfe296…

Qt的事件

2023年11月5日,周日上午 还没写完,不定期更新 目录 事件处理函数的字体特点Qt事件处理的工作原理一些常用的事件处理函数Qt中的事件类型QEvent类的type成员函数可以用来判断事件的类型事件的类型有哪些?有多少种事件类 事件处理函数的字体特…

Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录,包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合&#xff0…

vue2.0 打包,nginx部署

1、修改这里为空 否则报错:vue is undefined 2、修改为hash,重点:打包dist文件运行,必须这样 3、安装ngnix,重点:使用node的包:httpserve,失败 4、重点:配置代理转发 前端…

Python中最常用的10个内置函数!

更多资料获取 📚 个人网站:涛哥聊Python Python作为一种多用途编程语言,拥有丰富的内置函数库,这些函数可以极大地提高开发效率。本文将介绍Python中最常用的10个内置函数,它们的功能各有不同,但在实际编程…

Python 海龟绘图基础教学教案(一)

Python 海龟绘图——第 1 题 题目:绘制下面的图形 解析: 考察 turtle 基本命令,绘制直线,使用 forward,可缩写为 fd。 答案: import turtle as t t.fd(100) # 或者使用 t.forward(100) t.done() Python 海…

linux+python3.6.8+uwsgi+postgresql+django部署web服务器

linuxpython3.6.8uwsgipostgresqldjango部署web服务器 1.查看系统信息2.配置postgresql数据库2-1.安装postgresql数据库2-2.设置密码2-3.修改postgresql数据库配置文件 3.Python虚拟环境激活虚拟环境 4.Django4-1.Python 安装Django4-2.创建Django项目4-3.配置Django 5.uwsgi5-…

管道的介绍

管道 它是一个连接读写进程的文件,用户进程间数据交互和进程同步造作。管道是单向的,发送进程视管道为输出文件,将大量数据以字节流的形式送入管道;接收进程视管道为输入文件,接收管道的数据。 管道优缺点 1、管道…

Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction (思维题)

题目 给定长为n-1(n<2e5)的整数序列a&#xff0c;第i个数a[i](0<a[i]<2n) 构造一个长为n的整数序列b&#xff0c;满足&#xff1a; 1. 0到n-1在b数组中每个数恰好出现一次 2. 对于&#xff0c; 题目保证一定有解&#xff0c;有多组时可以输出任意一组 思路来源 …

如何用 GPT-4 全模式(All Tools)帮你高效学习和工作?

「十项全能」的 ChatGPT &#xff0c;用起来感受如何&#xff1f; 之前&#xff0c;作为 ChatGPT Plus 用户&#xff0c;如果你集齐下面这五个模式&#xff0c;就会成为别人羡慕的对象。 但现在&#xff0c;人们更加期盼的&#xff0c;是下面这个提示的出现&#xff1a; 这个提…

前端框架Vue学习 ——(三)Vue生命周期

生命周期&#xff1a;指一个对象从创建到销毁的整个过程。 生命周期的八个阶段&#xff1a;每触发一个生命周期事件&#xff0c;会自动执行一个生命周期方法&#xff08;钩子&#xff09; mounted&#xff1a;挂载完成&#xff0c;Vue 初始化成功&#xff0c;HTML 页面渲染成功…

基础课23——设计客服机器人

根据调查数据显示&#xff0c;使用纯机器人完全替代客服的情况并不常见&#xff0c;人机结合模式的使用更为普遍。在这两种模式中&#xff0c;不满意用户的占比都非常低&#xff0c;不到1%。然而&#xff0c;在满意用户方面&#xff0c;人机结合模式的用户满意度明显高于其他模…

20.6 OpenSSL 套接字分发RSA公钥

通过上一节的学习读者应该能够更好的理解RSA加密算法在套接字传输中的使用技巧&#xff0c;但上述代码其实并不算完美的&#xff0c;因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果&#xff0c;而一旦公钥与私钥泄密则整个传输流程都将…

YOLO目标检测——路标检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;路标检测数据集在自动驾驶、交通安全监控、导航系统、城市规划和车辆行为分析等领域都有广泛应用的潜力数据集说明&#xff1a;路标检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含有停止标志、速度限制标志、…

四维轻云如何实现地理空间数据在线管理、编辑及分享?

四维轻云是一款轻量化的地理空间数据网页管理平台&#xff0c;支持多种地理空间数据的在线管理、编辑及分享。现阶段&#xff0c;平台具有项目管理、数据上传、场景搭建、发布分享、团队成员、素材库等功能模块&#xff0c;支持项目团队成员在线协作管理&#xff0c;能够在线管…

运用vioovi视与视标准工时工具,实现精益生产

在制造业领域&#xff0c;标准工时的测量和管理对于提高生产效率和降低成本至关重要。然而&#xff0c;传统的标准工时方法在面对日益增长的各种成本时显得力不从心。为了解决这一问题&#xff0c;企业需要采用一种更科学、更高效的方法来管理和优化生产流程。vioovi的视与视标…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

LangChain+LLM实战---Midjourney(v5.1) Prompt深度剖析

原文&#xff1a;Anatomy of Midjourney Promps: In-Depth Study for effective Prompting Strategies — V5.1 examples 作者&#xff1a;Michael King 你是否曾经发现自己盯着Midjourney的空白画布&#xff0c;手指悬停在键盘上&#xff0c;让我问自己&#xff1a;“我应该…

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

点此获取更多相关资料 简介 自动化测试脚本可以模拟用户与应用程序的交互&#xff0c;例如点击按钮、输入数据、导航到不同的页面等等&#xff0c;以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作…

JavaScript_Date对象_实例方法_set类

设置一年后的今天&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</…
最新文章