0
点赞
收藏
分享

微信扫一扫

一文解决所有软件包问题(未完待续)

minute_5 2022-05-14 阅读 58

1.为什么需要rpm包。

linux系统安装完成之后,如果要部署业务,就需要安装rpm包,rpm包从哪寻找呢?分为2种情况,一种有互联网环境,一种没有互联网环境

  • 有互联网环境:

系统有默认的yum仓库,因为仓库中的地址在国外,所以基本无法访问,就是能访问传输也比较慢,将yum仓库改为国内各大公司公开的yum仓库地址。


  • 无互联网环境

在部署linux业务的时候,很多机器无法连接互联网,但是又需要rpm下载,1.可以将rpm下载好上传到服务器,但是无法解决依赖的关系,而且操作复杂,不建议。2.可以搭建本地私有仓库。通过系统光盘挂载到服务器上搭建本地仓库,只能能解决一部分的rpm包的安装。3.搭建私有仓库,将互联网公开的yum仓库的rpm包下载到公司内网,搭建公司内网私有yum仓库解决。

本文针对于上述提到的解决方案,均会搭建实验环境。

2.使用公开的yum仓库

找公共的yum仓库进行修改,国内各大网站建立自己的yum源,并公开,我们可以使他们的。清华源,阿里源...修改系统yum源地址为阿里源mirrors.aliyum.com,直接按照ali官网的步骤修改就可以

一文解决所有软件包问题(未完待续)_yum源

进入网站,根据配置方法,逐步进行配置即可。

#1.备份当前系统的yum源
[root@ceshi yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.old



#2.下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/,通过curl和wget其中一种方法就可以
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#curl 相当于浏览器访问网站,将访问的结果下载到本地 -O 下载到指定目录的指定文件中。默认系统没有curl命令

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
#wget 下载指定链接的软件 -O 下载到指定目录的指定文件中。

#下载完成后,验证可以看到CentOS-Base.repo文件
[root@ceshi yum.repos.d]# ll
total 44
-rw-r--r-- 1 root root 2523 May 14 13:18 CentOS-Base.repo
-rw-r--r-- 1 root root 1664 May 14 13:14 CentOS-Base.repo.old
-rw-r--r--. 1 root root 1309 Apr 8 2020 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Apr 8 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 8 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 7577 Apr 8 2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo



#3.运行yum clean all 清楚缓存,只要yuam源发生变化就需要执行此命令,清楚留存在本机的rpm包列表
[root@ceshi yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base epel extras updates
Cleaning up list of fastest mirrors
Other repos take up 51 M of disk space (use --verbose for details)


#4.运行 yum makecache 生成缓存,将yum源的软件列表缓存到本地,下载软件的时候,不用老到yum仓库询问软件是否存在。
[root@ceshi yum.repos.d]# yum makecache


#查看CentOS源的信息,base仓库 系统基础仓库,extras 额外,updates 软件更新放的仓库
[root@ceshi yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 509
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 3,773
repolist: 14,354 #总共有14354个rpm包

#epel源:CentOS 源包含的大多数的库都是比较旧的(各个公开的yum源,其实就是从CentOS源拉取的 )。EPEL 在其基础上不仅全,而且还够新。装上了 EPEL 之后,就相当于添加了一个第三方源。

#fedora是红帽的测试版系统,所以功能比较新。fedora做的epel源。

所以除了CentOS 源,我们再添加一个epel源进行补充,就能解决大部分的rpm包的问题,同样在阿里云的官网也有epel源的安装方式。

一文解决所有软件包问题(未完待续)_yum源_02

#阿里云的epel,按照阿里的操作
#1.备份当前系统的yum源,系统中没有epel源,跳过备份。

#2.下载新repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#3. 运行yum clean all && yum makecache 生成缓存,将yum源的软件列表缓存到本地,下载软件的时候,不用老到yum仓库询问软件是否存在。
#epel.repo下载好的epel仓库
[root@ceshi yum.repos.d]# ll
total 44
-rw-r--r-- 1 root root 2523 May 14 13:18 CentOS-Base.repo
-rw-r--r-- 1 root root 1664 May 14 13:14 CentOS-Base.repo.old
-rw-r--r--. 1 root root 1309 Apr 8 2020 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Apr 8 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 8 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 7577 Apr 8 2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 664 Dec 26 2020 epel.repo


#执行yum repolist查看yum 仓库信息,在CentOS源的base仓库 ,extras仓库 ,updates仓库只要多了一个epel/x86_64仓库
#repolist 也多了很多。

[root@ceshi yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,755
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 509
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 3,773
repolist: 28,109
[root@ceshi yum.repos.d]#


#此时就可以安装rpm包了。

如果其他地方找不到的软件包可以尝试使用rpmfind网站来搜索软件包

一文解决所有软件包问题(未完待续)_rpm包_03

3.通过CentOS系统光盘

在无互联网的场景下,可以通过CentOS系统光盘,挂载到本地,下载光盘中的RPM包。

(1)将以iso结尾的光盘镜像挂载到虚拟机(真机就是将光盘插到服务器的光驱,没有光驱借一个)

一文解决所有软件包问题(未完待续)_rpm包_04

(2)光驱连接到了操作系统,光盘在linux的/dev/cdrom这个目录下,创建一个文件夹,名字自定义,将光盘通过mount命令挂载到你创建的这个目录。

#我自定义目录文件夹是/mnt
[root@ceshi /]# mkdir /mnt


#通过mount命令将光盘所在目录挂载到我定义的目录下面,提示read-only,忽略即可,光盘文件就是只读的
[root@ceshi /]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only



#通过df -Th查看磁盘信息,可以看到/dev/sr0已经挂载到了/mnt下。 /dev/cdrom 就是/dev/sr0
[root@ceshi /]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs tmpfs 1.4G 12M 1.4G 1% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 50G 2.2G 48G 5% /
/dev/sda1 xfs 1014M 151M 864M 15% /boot
/dev/mapper/centos-home xfs 46G 33M 46G 1% /home
tmpfs tmpfs 280M 0 280M 0% /run/user/0
/dev/sr0 iso9660 4.5G 4.5G 0 100% /mnt
#可以看到/dev/cdrom 有一个软连接指向到了sr0,所以/dev/cdrom 就是/dev/sr0(软连接类似windows的快捷方式)
[root@ceshi /]# ls -l /dev/cdrom
lrwxrwxrwx 1 root root 3 May 14 10:23 /dev/cdrom -> sr0



#使用ls -l /mnt就可以看到光盘里的文件了。这个时候就可以使用光盘文件作为yum源了。
[root@ceshi /]# ls -l /mnt
total 694
-rw-rw-r-- 2 root root 14 Apr 21 2020 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 Apr 21 2020 EFI
-rw-rw-r-- 3 root root 227 Aug 30 2017 EULA
-rw-rw-r-- 3 root root 18009 Dec 10 2015 GPL
drwxr-xr-x 3 root root 2048 Apr 21 2020 images
drwxr-xr-x 2 root root 2048 Apr 21 2020 isolinux
drwxr-xr-x 2 root root 2048 Apr 21 2020 LiveOS
drwxr-xr-x 2 root root 671744 Apr 22 2020 Packages
drwxrwxr-x 2 root root 4096 Apr 22 2020 repodata
-rw-rw-r-- 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 Apr 22 2020 TRANS.TBL



(3)光盘挂载成功后,重启后,挂载就会掉需要重新挂载,就要设置linux开机启动挂载光盘

[root@ceshi ~]# vim /etc/fstab 

# /etc/fstab
# Created by anaconda on Sat Jul 17 13:55:15 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=732158c8-52a7-4501-8488-e258eba2478c /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
#挂载的源路径 挂载的目的路径 文件系统 默认defaults 默认0 默认0

#保存退出之后,执行mount -a就是重新加载fstab文件中的内容,这步骤必须做,如果/etc/fstab配置的有问题能够及时发现,否则可能机器无法正常启动
[root@ceshi ~]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only

(4)开始配置yum源

将系统默认使用的仓库配置为我们配置的光盘仓库。系统默认的仓库都放在/etc/yum.repos.d下。

#系统默认的仓库都放在/etc/yum.repos.d下,备份下面文件。
[root@ceshi /]# ll /etc/yum.repos.d/
total 44
-rw-r--r--. 1 root root 2523 Jul 17 2021 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 8 2020 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Apr 8 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 8 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 7577 Apr 8 2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo


#创建一个/backup文件夹,将所有.repo文件剪贴到备份文件夹。
root@ceshi /]# cd /etc/yum.repos.d/
[root@ceshi yum.repos.d]# mkdir backup
[root@ceshi yum.repos.d]# mv *.repo backup/


#书写local.repo,为本地镜像源
[root@ceshi yum.repos.d]# cat local.repo

#书写local.repo的配置,表示名字
[local]
#描述
name=this is cdrom repo
#这个目录一定要对应repodata这个文件,这个文件有软件包列表等信息,repodata需要命令生成,光盘里都是配置好的。
baseurl=file:///data/cdrom/
#打开这个仓库
enable=1
#不进行校验
gpgcheck=0



#配置完成后,需要清除缓存,和重新生成缓存,缓存为仓库的rpm包的列表
[root@ceshi yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local
Cleaning up list of fastest mirrors
Other repos take up 132 M of disk space (use --verbose for details)

[root@ceshi yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
local | 3.6 kB 00:00:00
(1/4): local/group_gz | 153 kB 00:00:00
(2/4): local/filelists_db | 3.3 MB 00:00:00
(3/4): local/primary_db | 3.3 MB 00:00:00
(4/4): local/other_db | 1.3 MB 00:00:00
Metadata Cache Created


#缓存生成成功,仓库基本就建立好了。可以执行yum repolist查看我们配置的仓库信息。
[root@ceshi yum.repos.d]# yum repolist查看我们配置的仓库信息。
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
local this is cdrom repo 4,071
repolist: 4,071

(5)安装traceroute包做测试

[root@ceshi yum.repos.d]# yum install -y traceroute

4.搭建内网yum仓库

在无互联网场景,使用系统光盘,挂载的方式只能解决一部分的rpm包,也不能解决,大型局域网多台机器下载rpm包的场景,就需要搭建内网的yum仓库。

举报

相关推荐

0 条评论