第4节. 实现yum源仓库和使用yum管理软件以及dnf
定下来学某个东西的时候,就要摸清楚来龙去脉,这样比较对得起人这种动物它这个脑部、神经、心跳节奏的规律。否则不舒服的,我在试图理解底层心理学?显然这是不对的,感觉对了就好。
配置内网的YUM源
yum -y install httpd
安装httpd服务,通过光盘镜像安装就行(各种rpm包,和yum仓库-repodata元数据)
通过rpm -ql 查看安装的文件
systemctl start httpd
目录结构
所以就是/var/www/html/centos/7/os/x86_64
把centos7的安装光盘整个目录复制过去,也可以挂在光盘的。
再接一个CENTOS6的
把对应的光盘挂过去-工作中复制过去
临时挂用命令mount就行
centos6的也有了
yum源就OK了。
服务端就配置好了,下面开始配置CLIENT
只要不是repo后缀的就不会干扰repo源。
验证可以不写,写的话也很简单
这就是校验文件,赋值一下路径
搞定,当然上面的6也可以用$releasever替代他
测试下
这里注意下,6713个包的解释:我们就挂了一张盘,但是6K个包是两张盘的总量,可能就是第一张盘里有两张盘的包总量信息。然后一些偏门的包在第二张盘里,你是安装不了的。
以上就是基于HTTP协议的yum源
如果没有光驱-显然基本都没有,就用iso文件去挂
光盘可以挂,ISO文件也可以挂
然后web看到就成功了
但是前置条件别忘了:selinux和防火墙
还有客户端
其他补充
mirrorlist是把多个路径写到一个文件里
现在这个机器可以指两个源,准备添加一个网上的阿里源:
复制远端路径
把上面的txt路径一复制,贴到下面去就行了。
搞定了
不信可以看看centos默认的yum源写法,他也是用的mirrorlist的。
包组的管理用group
group分为环境组和普通组,环境组就是安装系统的时候让你选择的包--老王使用的事GNOME Destop,老刘使用的是Server with GUI,俺使用的是Minimal Install。
你选择某一种比如Serer with GUI就会对应地安装很多包。
开发包组里的包
"Development Tools"注意引号,否则当作两个包组了。
强制组、可选组
不是随着group包组安装的,是随系统安装的。
不同符号不同状态
groupinstall可以连起来写
工作中一般不用包组group,都是需要什么安装什么,group里的东西可能太多了。
yum 的脚本安装可以加上-q
--disablerepo和--enablerepo没有试验成功,不知道咋弄的,不过我倒是可以用sed 来开关。恩,也不常用。这么用的,临时的,所以是要配和install xx一起用的
创建自定义的仓库createrepo-其实就是为一堆rpm包生成元数据。
仓库虽然说要rpm包和元数据以及公钥,但实际上站在机器角度,仓库其实就只要一个repodata文件夹和里面的元数据。
自己研发的rpm包,或者网上找的单个rpm包,没有现成的仓库,或是就算你down的是常规的rpm包,但是仓库没down,也可以自己生成。这个题外话参考别人的博客https://www.jianshu.com/p/3b669bcebfb6
👆这样仓库的元数据就有了。
但是有个问题
httpd要开启443
仓库路径得找repodata的路径。
如图是在server下的,而其他的分别是集群、集群存储、server、虚拟化的repodata
多个repodata就是多个yum源。如果你不需要就配一个yum源就行了。
上图👆两个点①cat 重定向写法ctrl + d安全退出才行②baseurl的路径是repodate的pwd路径。
DNF
dnf比yum的优势据说就是速度快
推荐yum install *.rpm因为包可能不全,还需要依赖。
这样就可以用dnf了,
dnf的使用和yum一样
仓库配置也是一样yum的配置文件。
比较下dnf的性能
= = 效果不行啊,哈哈
time dnf reinstall httpd -y
time yum reinstall httpd -y
这个可以看到dnf快些,可能。
yum其实是python写的程序
yum底层就是依赖于rpm的
小软件编译举例
上图gcc hello.c 回车,会自动生成一个a.out。注意上图不是一个命令哦。
指定一个名称-o
将来要编译的软件必然不是一个c文件咯:
看看这个httpd的源码有多少个c
解开的文件里有284个c文件
gcc 能搞定吗?还有编译先后顺序的。所以就不是gcc这种方式了。
那是项目了,项目管理工具了,不同的语言编译工具不一样。JAVA用maven。C语言里make