前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >yum 快速入门与基础

yum 快速入门与基础

作者头像
全栈工程师修炼指南
发布2022-09-28 18:47:50
1K0
发布2022-09-28 18:47:50
举报

0x00 Linux中软件安装的几种方式

Q:Linux中的如何进行安装、卸载、升级软件和管理? 答:回答这个问题前需要了解Linux的多个发行版本,不同版本之间安装软件方式和命令不一样,且同一个版本之间安装软件也有不同的方法;

但是大体来说Linux有两大派系:

  • 红帽派系,包含Redhat、Centos、Fedora等
    • 源码包安装:
    • rpm包安装:
    • yum源安装:
  • Debian派系,包含Kali、Ubuntu等。
    • Deb包安装:
    • apt-get源安装:

基本采用rpm/deb包管理、yum/apt-get在线管理、源码包编译安装管理和二进制安装包(解压就可用-类似于绿色安装)等等;

线下的安装方式: 也就是说你要把软件下载到本地去安装。一般我们下载的文件后缀名都是zip、tar.gz等压缩包,解压后会看到rpm、bin、deb、run之类扩展名文件,你可以根据自己的系统下载不同扩展名的软件。 1、rpm安装包:这时一款老牌的安装格式,是红帽创建的安装格式,现在已成为一种标准,常用在opensuse/turbo/redhat版本),安装方法rpm -ivh 软件名.rpm (如果只是安装一个i参数就够了,如果还要看安装进度和软件信息就加个vh) 2、deb安装包:DEB是Debian软件包格式的文件扩展名,常用在centos/ubuntu,在苹果系统里也常见此安装方式。安装方法:dpkg -i 软件名.deb 3、run安装包:以QT(一种编程工具)的安装文件为例,

  • 1)授权: chmod x qt-unified-linux-x64-2.0.2-2-online.run
  • 2)执行:./qt-unified-linux-x64-2.0.2-2-online.run即可安装。 4、bin安装包:bin包是一个自解压格式的安装包,要想执行它,需要先赋予它可执行的权限。 (以安装jdk为例)# chmod x jdk-6u21-linux-i586.bin# ./jdk-6u21-linux-i586.bin

对比源码包编译安装的优缺点: 优点:

  • 开源对于业务需要更改源代码
  • 编译安装时可选择所需要的功能,进行最优化安装以便更加稳定和高效
  • 卸载方便

缺点:

  • 安装过程较多,安装较大的软件组合时候容易出错
  • 编译过程时间较长,安装比二进制安装时间长

0x01 源码包安装过程及make命令

安装注意事项:

  • 源代码标准保存位置 /usr/local/src/
  • 软件标准安装位置 /usr/local/

源码包编译安装需要下载安装编译工具:

代码语言:javascript
复制
$yum -y install gcc gcc-c++ make
#  下载源码包,解压缩下载的源码包,进入解压缩目录
./configure --prefix=<dir>    # 指定安装路径
-定义需要的功能选项
-监测系统环境是否符合安装要求
-把定义好的功能选项和监测系统环境的信息都写入Makefile文件,用于后续的编辑

make #编译
make install #安装编译后二进制可执行文件
make clean  # 译安装这步出错 则执行make clean 删除/usr/local源文件
make uninstall  # 删除源码包编译安装

编译原理:

WeiyiGeek.编译原理
WeiyiGeek.编译原理

WeiyiGeek.编译原理

编译过程:

WeiyiGeek.编译过程
WeiyiGeek.编译过程

WeiyiGeek.编译过程 以Redhat下安装apache为例:

  • 先网站下载源代码包 http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.15.tar.gz
  • tar -xvf httpd-2.2.15.tar.gz -C /usr/src将其解压到 /usr/src/ 目录下
  • 到其解压目录 /usr/src/httpd-2.2.15/ 下, ./configure 运行configure配置文件,设置安装目录,安装模块等,不设置的话,软件默认安装在 /usr/local/apache2/目录下。 如果 ./configure –prefix=/usr/local/https/ 则是将其安装在/usr/local/https/目录下。此时还并未安装只是配置安装路径
  • make 编译,生成可执行的二进制文件Makefile
  • make install 安装。此时,软件安装在 /usr/local/https/ 目录下
  • 最后在目录中启动httpd:/usr/local/apache2/bin/apachectl start

安装完成之后对安装包的清理:

  • 进入其解压目录 /usr/src/httpd-2.2.15/下make uninstall 者make clean 用于清除上一次的编译
  • 然后返回到上一级目录,把 httpd-2.2.15 删除
  • 如果要卸载软件的话,把 /usr/local/apache2 这个软件删除就可以

安装HTTPD服务使用rmp与源码包区别

  • 源码包卸载软件简单,rpm删除卸载软件较为麻烦(文件分散到各个目录)
  • 源码包安装的服务默认是不能被服务管理命令管理,只能由绝对路径进行服务的管理除非手动添加
  • 通过源码安装的目录在安装路径中存放网页的在htdocs/www中,而通过rpm安装的则在系统默认的/var/html/www中

0x02 yum介绍与命令

yum(全称为Yellowdog Updater Modified)是一个在CentOS、RedHat和Fedora操作系统中使用的Shell前端软件包管理器。 yum主要管理基于rpm的软件包,它可以自动升级、安装、删除rpm软件包,同时它还能够自动查找并解决rpm包之间的依赖关系,并且无需管理员逐个、手工的去安装每一个rpm包,使管理员在维护Linux主机时更加轻松自如。

yum可以从一个或多个repo文件中配置的repo仓库,通过http或ftp协议从repo仓库获得必要的信息,然后下载相关的软件包。

  • yum 安装不仅可以在连通网络中适用, 可以使用光盘进行yum安装
  • yum 在redhat 中,将其视为售后服务, 定位收费才可使用 (缺点),所以我们常常需要安装第三方源epel装上了它之后,就相当于添加了一个第三方源。
    • 优势:
    • 1.不替换本身的yum源,安装后会产生新的repo
    • 2.epel有很多源地址,如果一个下不到,会自动去另外一个下
    • 3.如果更新的包不全,就不会进行安装,依赖关系可以保全
  • repo仓库可以通过createrepo或yum-arch命令进行创建,也能够用别人已经创建好的repo仓库作为yum源

YUM 安装

  • 优点:简单,便捷,解决源码包安装依赖问题,全自动化安装
  • 缺点:没有办法定制,需要网络,网络环境差的情况话,下载速度慢

1.yum 命令

yumdownloader 子命令

常用命令:

代码语言:javascript
复制

命令说明:
list #表示列出所有的软件包
search [关键字]  #搜索服务器上所有和关键字相关的包
clean all  #表示清除yum源缓存,
makecache  #表示生成yum源缓存metadata
yum -y install [包名] #安装指定的软件可使用通配符
yum -y remove [包名]  #卸载
yum -y update [包名]  #特别注意:没有指定包名则升级所有
yum -y upgrade  #升级依赖

# 参数说明
yum --enablerepo=localyum --disablerepo=base,extras,updates,epel list  #指定使用localyum库,并且是临时使用内网yum源,服务器重启后失效。
yum --downloadonly install tftp    #仅仅下载不安装
yumdownloader pcre-devel openssl-devel  #仅仅下载不安装

#yum软件组管理命令 
yum grouplist  #列出所有可用的软件组列表  显示中文则执行(LANG=en-vs)
yum group install 软件组名  #安装指定软件组 组名可以由grouplist查看
yum group remove 软件组名  #卸载指定软件组

yum whatprovides 动态链接库.so  #查找动态链接库在哪一个rpm包里

补充示例:

代码语言:javascript
复制
#示例0.检查更新
yum check-update #该命令将更新存储库,并为您提供可以更新的所有软件包的列表

#示例1.查询so动态连接文件提供它的来源包
yum whatprovides libgcc_s.so.1


yum load-transaction /tmp/yum_save_tx.2016-09-09.22-26.wxYVRg.yumtx  # 当yum中断更新后,重新执行该事务


#示例2.在指定repo库中安装指定的软件
yum --enablerepo=remi-php73 install -y php php-mysqli

#示例3.重新执行未完成的事务
yum load-transaction /tmp/yum_save_tx.2020-04-30.15-11.S54r3n.yumtx 

#示例4.禁用repo的时候不禁用kubernetes的yum仓库
yum install docker-ce-19.03.3-3.el7 kubelet-1.17.4-0 kubeadm-1.17.4-0 kubectl-1.17.4-0 --disableexcludes=kubernetes

2.createrepo 命令

createrepo用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。 参考网站:http://linux.51yip.com/search/createrepo

代码语言:javascript
复制
基本语法:createrepo [option] <directory>
-u --baseurl <url>  #指定Base URL的地址
-o --outputdir <url> #指定元数据的输出位置
-x --excludes <packages> #指定在形成元数据时需要排除的包
-i --pkglist <filename>  #指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。
-n --includepkg #通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。
-q --quiet  #安静模式执行操作,不输出任何信息。

-g --groupfile <groupfile> #指定本地软件仓库的组划分,范例如下:
     createrepo -g comps.xml /path/to/rpms  #注意:组文件需要和rpm包放置于同一路径下。

-v --verbose   #输出详细信息。
-c --cachedir <path>  #指定一个目录,用作存放软件仓库中软件包的校验和信息。当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。
--update  #如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。
-p --pretty #以整洁的格式输出xml文件。
-d --database  #该选项指定使用SQLite来存储生成的元数据,默认项。


$ mkdir -p /yum/centos/6/      #创建本地源目录
$ createrepo -pdo /yum/centos/6/ix86_64 /yum/centos/6/ix86_64   #初始化源目录,产生repodata
$ createrepo --update /yum_source/      //更新域名仓库

3.yum仓库配置

我们知道repo文件是CentOS、RedHat和Fedora操作系统中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件源。 其作用:我们将从哪里下载需要安装或者升级的软件包,repo文件中都进行了相关的配置,而这些配置将会被yum读取和应用。

repo文件内容详解 目录:/etc/yum.repo.d/

代码语言:javascript
复制
vi /etc/yum.repos.d/CentOS-Base.repo

[base]
#该选项是定义软件源的名称,该名称是可以自定义,同时在该服务器上所有repo文件中是唯一的。注意:方括号里面不能有空格。
name=CentOS-$releasever–Base

#该选项是定义软件仓库的名称,$releasever变量定义了发行版本,通常是5,6,7等数字。
#这是指定镜像服务器的地址列表,通常是开启的它会选择最优或者第一个镜像服务器地址
#选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中的baseurl选项中,我们就能获得较快的更新速度了。
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#下面表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)。
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#baseurl通常有以下四种格式,注意:一个repo文件中可以定义多个软件源如下:
baseurl= http://mirrors.aliyun.com/centos/6.6/os/x86_64/  #使用http协议镜像服务器地址(使用最多)
baseurl= ftp://ftp.sjtu.edu.cn/centos/6.6/os/x86_64/  #使用ftp协议镜像服务器地址
baseurl= rsync://mirror.zol.co.zw/centos/  #使用rsync镜像服务器地址
baseurl= file:///ilanni/yum/   #使用本机的镜像服务器地址

#该选项表示在这个repo文件中启用这个软件源默认该选项可以不写。但是如果enabled的值为0,则表示禁用这个软件源。
enabled=1

#该选项表示对通过该软件源下载的rpm包进行gpg校验,如果gpgcheck的值为0表示不进行gpg校验。
gpgcheck=1

#该选项定义用于校验的gpg密钥文件。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
WeiyiGeek.
WeiyiGeek.

WeiyiGeek.

文件:/etc/yum.conf

代码语言:javascript
复制
#们使用yum进行安装软件时,安装完毕后会自动把软件包删除如果需要保存把keepcache修改为1即可
cat /etc/yum.conf
[main]
#cachedir表示rpm包的缓存位置。
cachedir=/var/cache/yum/$basearch/$releasever #安装包存储目录
#是否保存下载的rpm包 1为保存
keepcache=0

debuglevel=2
logfile=/var/log/yum.log
exactarch=1
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

4.yum仓库实战

(1)yum企业内部光盘源搭建 项目需求:该yum源需要配置两个源:一个是centos的光盘镜像源,一个是特殊rpm软件的镜像源并且该yum源是通过http进行访问。 实验环境:yum服务器192.168.1.247 centos,客户端192.168.1.248 centos

服务端操作流程与步骤

代码语言:javascript
复制
#0. 安装createrepo
Q:createrepo是什么?
A:createrepo是linux下创建仓库的软件包。create是创建的意思,repo是repository的缩写是仓库的意思。
yum -y install createrepo  #只有安装createrepo这个软件,才能在yum服务器创建软件仓库。


#1. 安装web应用比如apache中httpd或者nginx都可以还可python -m SimpleHTTPServer模块
yum -y install httpd  #你也可以通过源码包安装
/etc/init.d/httpd start  #apache安装完毕后我们来启动apache
wget http://192.168.1.247

#2. 挂载光盘镜像到服务器中或者复制光盘镜像到yum服务器中
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
#修改CentOS-Media.repo  光盘源
# vim CentOS-Media.repo
# - [c6-media]
# -  name=CentOS-$releasever - Media
# -  baseurl=file:///mnt/cdrom     #光盘挂载目录  注释掉下面没用的
# -          file:///media/cdrom
# -          file:///media/cdrecorder
# -  gpgcheck=1
# -  enabled=1
# -  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#---------------------------------

mkdir -p /var/www/html/yum
ll /var/www/html/yum/
mkdir /iso
mount -o loop CentOS-6.6-x86_64-minimal.iso /iso/  #创建光盘挂载
cp -rv /iso/* /var/www/html/yum/  #复制到光盘下的所有文件到/var/www/html/yum/目录下

#3. 现在我们访问下该目录,看看能不能正常显示
wget http://192.168.1.247/yum

#注意:在此我们没有创建yum数据库和信息索引文件,是因为光盘已经有yum数据库和信息索引文件,我们不需要再通过createrepo命令在进行。其实yum的数据库和信息索引文件,都在repodata文件夹下。如下:

#4. 为了光盘镜像实验的效果,我们在此以光盘镜像软件包中curl软件为例。如下:
ll /var/www/html/yum/Packages |grep curl
WeiyiGeek.repodata
WeiyiGeek.repodata

WeiyiGeek.repodata

特殊软件镜像配置,在前面我们还要求一个特殊的yum源用来存放特殊软件的,在此我们以lrzsz这个软件为例。

代码语言:javascript
复制
#1. 该yum源存放的位置/var/www/html/ilanni/目录下,然后把lrzsz这个软件的rpm包放在/var/www/html/ilanni/目录下,如下:
mkdir -p /var/www/html/ilanni
cp /var/cache/yum/x86_64/6/base/packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm /var/www/html/ilanni/
ll /var/www/html/ilanni/

#2. 创建该特殊源的yum数据库和信息索引文件
createrepo ./
tree repodata/

#3. 现在我们访问下该目录,看看能不能正常显示,如下:
wget http://192.168.1.247/ilanni
WeiyiGeek.
WeiyiGeek.

WeiyiGeek.

客户端的配置: yum客户端的操作就简单了很多,我们只需要修改客户端的repo文件即可。

代码语言:javascript
复制
#1. 进入/etc/yum.repos.d/目录,备份原有的repo文件,如下:
rename .repo .repo.bak *.repo

#2.然后在该目录下,创建一个新的repo文件ilanni.repo,该文件名可以变但是后缀一定是.repo。
#基本软件
[centos6]
name=centos6
baseurl=http://192.168.1.247/yum/
enabled=1
gpgcheck=0

#特殊软件安装
[ilanni]
name=ilanni
baseurl=http://192.168.1.247/ilanni/
enabled=1
gpgcheck=0


#3. 测试安装软件安装curl软件,如下:
yum clean all 
yum makecache
#yum -y update & yum -y upgrade  #常常一起执行

yum -y install curl
yum -y install lrzsz #安装lrzsz软

注意:如果客户端yum安装软件包时,提示找不到该软件。强烈建议在客户端上执行
yum clean all
yum list

以上就是我们在内网搭建yum源的步骤。

补充:更新rpm包

代码语言:javascript
复制
#在我们搭建完毕内网yum源后,会经常遇到这两种情况。一是软件版本的更新,二是新增软件。
#无论遇到以上那种情况,我们都需要先删除原来的yum服务器的yum数据库和信息索引文件,然后通过createrepo命令重新创建yum数据库和信息索引文件。
cp /var/cache/yum/x86_64/6/base/packages/lftp-4.0.9-1.el6_5.1.x86_64.rpm /var/www/html/ilanni/
ll /var/www/html/ilanni/
rm -fr /var/www/html/ilanni/repodata/
createrepo /var/www/html/ilanni/   #必须重新建立yum数据和信息索引文件

#请看缓存数据执行安装
yum clean all
yum list |grep lftp
yum -y install lftp

(2)企业内部yum源搭建

yum仓库服务端配置如下:

代码语言:javascript
复制
#1. 创建yum仓库目录
mkdir -p /data/yum_data/
cd /data/yum_data/  #可以上传rpm包到此目录,此目录下面还可以包括文件夹

#2. 安装httpd与 createrepo 并且将httpd配置文件指向设置为/data/yum_data目录中
#h或者使用 python -m SimpleHTTPServer 80 &> /dev/null &
createrepo -pdo /data/yum_data/ /data/yum_data/ #初始化repodata索引文件

[root@yum conf]$vi httpd.conf
DocumentRoot "/data/yum_data/"  #用搜索 /DocumentRoot 的方法
<Directory "/data/yum_data/">     #317行
#把默认主页配置移到tmp目录下,少用rm命令。
[root@yum httpd]$ mv conf.d/welcome.conf /tmp


#3.修改/usr/local/yumrepo目录的属主和属组为apache
[root@yum conf]# chown -R apache.apache /data/yum_data/
[root@yum conf]# ll -l /data/yum_data/
drwxr-xr-x. 3 apache apache 4096 11月 19 16:49 centos
drwxr-xr-x. 3 apache apache 4096 11月 19 16:50 epel
drwxr-xr-x. 2 apache apache 4096 11月 19 17:50 repodata


#4. 根据自己服务器ip地址进行配置
[root@yum yum_data]$echo "192.168.30.130 yum.weiyigeek.com" >>/etc/hosts
[root@yum yum_data]$tail -1 /etc/hosts  #添加hosts解析
192.168.30.130 yum.weiyigeek.com


#5. 启动httpd服务(并且测试是否可以进行正常访问)
service httpd restart

#6. 保留yum安装软件时不删除安装包,只下载不安装软件并移动到httpd网页目录中
sed -i "s#keepcache=0#keepcache=1#g" /etc/yum.conf
# 安装包存储目录
cachedir=/var/cache/yum/$basearch/$releasever
ll /var/cache/yum/x86_64/6/base/packages

#下载需要的rpm包不安装
yum --downloadonly install tftp

#把下载的rpm包,移到yum服务器目录中
[root@yum x86_64]#cd /var/cache/yum/x86_64/6/base/packages
[root@yum packages]# mv * /data/yum_data/centos/6/os/x86_64


#7. 每加入一个rpm包就要更新一下(每次发布新的内容都需要更新)
createrepo -pdo  /data/yum_data/ /data/yum_data/  #初始化
createrepo --update /data/yum_data/

客户端配置: 备注:注意更改为自己的域名地址

代码语言:javascript
复制
#1. centos7 系统yum源配置方法 (centos6只是配置一哈路径而已)
[root@B yum.repos.d]$ vi localyum.repo
[localyum]
name=centos7
baseurl=http://yum.weiyigeek.com/centos/7/os/x86_64/
enable=1
gpgcheck=0

[localepel]
name=epel
baseurl=http://yum.weiyigeek.com/epel/7/x86_64/
enable=1
gpgcheck=0

[localextra]
name=extra
baseurl=http://yum.weiyigeek.com/centos/7/extras/x86_64/
enable=1
gpgcheck=0


#2. 指定使用localyum库,并且是临时使用内网yum源,服务器重启后失效。
#如果需要永久使用,需要修改配置repo文件源,设置enabled=0即可(打开设置为1)
yum --enablerepo=localyum --disablerepo=base,extras,updates,epel list

(3) 同步镜公网镜像yum源配置方法 在我们自己搭建的yum镜像站由于yum软件的数据库文件repodata不一致就会导致问题,因此我想到的解决方法就是直接使用公网yum源的repodata。 在公司里搭建一个内网yum服务器进行实时同步公网镜像流程步骤如下:

镜像同步公网yum源:

  • 上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。http://mirrors.ustc.edu.cn/status/ CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/ epel源:rsync://mirrors.ustc.edu.cn/epel/
  • 正对于Centos6
代码语言:javascript
复制
# 使用rsync同步yum源为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。
# 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。


#1. 创建四个目录,用于同步公网yum源
mkdir -p /data/yum_data/centos/6/os/x86_64/
mkdir -p /data/yum_data/centos/6/extras/x86_64/
mkdir -p /data/yum_data/centos/6/updates/x86_64/
mkdir -p /data/yum_data/epel/6/x86_64/


#2. 下面四条命令,同时复制执行,就会开始同步官网yum源到本地。
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/
/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/

#3. 查看同步完成后yum源的大小:
$du -sh yum_data
12G     yum_data

$tree -L 3 yum_data/
yum_data/
WeiyiGeek.公网镜像repo
WeiyiGeek.公网镜像repo

WeiyiGeek.公网镜像repo

补充常见的错误处理

代码语言:javascript
复制
#问题1 Error1:
@ERROR: max connections (20) reached -- try again later
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
解决方法:
yum源服务器超过最大连接数,请过会再试。(多试几次,就成功啦)


#问题2:Error:
rsync: getaddrinfo: mirrors.ustc.edu.cn 873: Name or service not known
解决方法:
DNS无法解析,添加移动DNS
[root@node5 ~]#echo "nameserver 120.196.165.7" >> /etc/resolv.conf 
[root@node5 ~]# cat /etc/resolv.conf 
nameserver 120.196.165.7

0x03 附录脚本

(1) RHEL7系列快速配置本地yum源光盘 vim rhel7.repo.sh

代码语言:javascript
复制
#!/bin/bash
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
#自动挂载
echo "/dev/cdrom /media/cdrom iso9660 defaults 0 0" >> /etc/fstab

cd /etc/yum.repos.d
cat > rhel7.repo <<END
[rhel7]
name=rhel7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
END

yum clean all
yum makecach

测试安装:

代码语言:javascript
复制
yum install httpd -y
#最后出现Complete!说明httpd安装成功,同时也说明了yum仓库配置成功!

(2) RHEL7系列快速配置本地yum源之文件

vim fileyum.sh

代码语言:javascript
复制
#创建光盘镜像挂载目录以及创建软件包存放目录
mkdir /mnt/media /root/123
mount /dev/cdrom /mnt/media
cd /mnt/media && cd Packages
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
cd .. && cp -r * /root/123

cat > /etc/yum.repos.d/123.repo <<END
[REPO123]
name=123
baseurl=file:///root/123
enabled=1
gpgcheck=0
END

#镜像制作
createrepo /root/123
#至此如此本地yum源文件仓库就制作

0x04 补充扩展

1.CentOS下yum配置Proxy方法

/etc/yum.conf 文件中通常增加一行 proxy=http://xxx.xxx.xxx:xxxx 即可。

代码语言:javascript
复制
# 例如 vim /etc/yum.conf
# 代理无账号密码认证
proxy=http://xxx.xxx.xxx:xxxx

# 代理有账号密码认证
proxy_username=用户名
proxy_password=密码

0x05 入坑出坑

问题1.yum -y install 时出现This system is not registered with an entitlement server. You can use subscription-manager to register.问题;

代码语言:javascript
复制
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

# This system is not registered with an entitlement server. You can use subscription-manager to register.

问题原因: 由于yum没有 -y 这个命令该命令是install的子命令所以会报错,还有一种情况是Redhat的操作系统默认yum是需要收费的我们需要切换到免费的CentOS yum上即可

解决办法:

代码语言:javascript
复制
# (0) 安装命令参数错误导致修正
yum install -y 

# (1) 关闭子管理器
cat /etc/yum/pluginconf.d/subscription-manager.conf
[main]
enabled=0

# (3)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 Linux中软件安装的几种方式
  • 0x01 源码包安装过程及make命令
  • 0x02 yum介绍与命令
    • 1.yum 命令
      • yumdownloader 子命令
        • 2.createrepo 命令
          • 3.yum仓库配置
            • 4.yum仓库实战
            • 0x03 附录脚本
            • 0x04 补充扩展
              • 1.CentOS下yum配置Proxy方法
              • 0x05 入坑出坑
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档