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.编译过程 以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.
文件:/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
特殊软件镜像配置,在前面我们还要求一个特殊的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.
客户端的配置: 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
# 使用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
补充常见的错误处理:
代码语言: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
即可。
# 例如 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.
问题;
已加载插件: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)