目录
第二步:在本地下载createrepo命令软件,用于创建元信息,这个一定是对包的上一级目录使用命令,这里需要去到根,对根下面的data目录操作,生成服务端需要的内容
第三步:模拟优盘(这里用远程拷贝)给到另一台主机,假设另一台主机删除所有的yum源,然后创建用优盘的内容写软件的yum配置文件
1、只下载不安装,离线安装软件
用法:没有网的环境下,有一台主机或只想要把一种软件的相关依赖关系等软件全部下载下来,以及createrepo命令的软件包,给另一台没有网的主机上安装软件;
注意:一定要去最小化安装去下载,要不然软件包不全!!
这是我想要下载的nginx的所有依赖关系的软件包,指定放在了/data/Packages中
2、自行打包创建元数据
环境:首先自研公司的包并不在网络源,也不在本地光驱的yum仓库,那么客户强行要求使用yum安装,该如何解决?
模拟解决思路:使用yum安装的前提是由服务端,服务端的必要条件是Packages和repodata (软件包和元信息),那么现在模拟有关于nginx的一批软件包,然后实验生成关于nginx包的yum仓库
第一步:先准备好nginx的软件包,放在一个文件夹下
一定一定是最小化安装 获取的软件包才比较全
[root@mini ~]# mkdir /data
[root@mini ~]# cd /data/
[root@mini data]# mkdir Packages
[root@mini data]# yum install nginx --downloadonly --downloaddir=/data/Packages/
第二步:在本地下载createrepo命令软件,用于创建元信息,这个一定是对包的上一级目录使用命令,这里需要去到根,对根下面的data目录操作,生成服务端需要的内容
第三步:模拟优盘(这里用远程拷贝)给到另一台主机,假设另一台主机删除所有的yum源,然后创建用优盘的内容写软件的yum配置文件
第四步:测试下载
3、同步网络上的仓库,下载到本地
mkdir /data
cd /data/
yum install epel-release
reposync -r epel -p /data/
yum -y install createrepo
createrepo -v /data/epel
原本想要通过这种方法下载拷贝到Windows真机电脑,但是文件太大了,建议还是在官网去下载吧,这种针对base源也是一样适用!!
4、升级内核
两种方法:编译安装(非常的麻烦),另一种是有一家公司已经解决了这个问题,需要去下载
这是网址:
http://elrepo.org/tiki/HomePage
centos7的yum仓库下载命令
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
[root@localhost yum.repos.d]#yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
[root@localhost yum.repos.d]#ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo elrepo.repo
[root@localhost yum.repos.d]#vim elrepo.repo
[root@localhost yum.repos.d]#yum list *kernel*
5、误删rpm包,如何救急
chroot /mnt/sysimage
cd /run/install/repo/Packages/
ls |grep rpm-
找到对应的rpm的软件包
rpm -ivh rpm-4.11.3-25.el7.x86_64 --root=/mnt/sysimage
exit
不知道哪个无聊的家伙,会删掉rpm,真是无聊,但是为了实验,我们还是模拟试试吧
6、总结
①深刻理解yum的服务端的两个必要条件,在创建元信息的时候,一定是在Packsges目录的上上级别目录,如createrepo -v data ,这里的 Packsges是data的子目录,这样创建出来的repodata也会自动存在data的子目录,否则不生效!!
②建议在没网环境下,先将软件的yum服务端的资料都准备好(有Packsges和repodata后),并测试成功以后,再拷贝到没网的机器上,这样效率和排错更容易!!
③升级内核的时候需要将内核的repo配置文件中的enable开启;