yum与rpm的详解
--用来安装软件
关键字:本地yum 第三方yum yum参数 yum软件控制 rpm参数 永久挂载 软件的依赖性
第一部分:配置本地yum源
1.yum安装http服务,并共享给其他主机可以访问
如果在服务器不在的情况下或是无法从网上获取第三方软件时,此时,可以利用自己的镜像进行安装,需要一个与本机匹配的安装镜像,rhel-server-7.0-x86_64-dvd.iso,这个文件从官方网站下载得到
第一步 配置本地的yum 源
脚本文件
vim yum.sh
#!/bin/bash
########create local yum source#########
mkdir /westos
#该步骤的目的建立一个目录挂载镜像,挂载的意思有些文件系统会有独立的inode、block、super block等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统与目录树结合的操作称为挂载,重点是,挂载点一定是目录 ,该目录为进入该文件系统的入口。
mount /iso/rhel-server-7.1-x86_64-dvd.iso /westos
#将磁盘挂载到这个目录下
cat >/etc/yum.repos.d/yum.repo <<end
编写 yum设置文件,后结尾必须是.repo文件 『后边<<end 做结束』。
[text]
#仓库的名字,中括号一定要存在,里面的名称可以任意取,但是不能有两个相同的容器名称,否则yum会不知道到哪里去找仓库相关软件列表文件。
name=software
#仓库的描述#
baseurl=file:///westos
#仓库的实际地址#
gpgcheck=0
#用gpg文件检查文件的签名.是否检测软件的gpgkey,设成1的话,与系统匹配,如果出现不一样就不给装。
End
当然也可以加入enable=1/0 说明启用更新库,0表示不启用。
yum clean all
#将之前缓存数据删除,刷新新的出来,yum会先下载仓库的清单到本机的/var/cache/yum里面去,但是我们修改了网址却没有修改容器名称(中括号内的名字),可能就会造造成本机的列表与yum服务器的列表不同步,此时就会出现无法更新的问题,解决该问题就是清除掉本机上的旧数据即可,就是用yum的 clean 参数即可。
第二步 安装打开本机上的http服务
######install share server##############
yum install httpd -y
#安装httpd服务 -y表示不提醒。
systemctl start httpd
#开启httpd服务。
systemctl enable httpd
#设置开机时自动开启httpd服务。
systemctl disable firewalld
#设置开机不启动防火墙。
systemctl stop firewalld
#现在关掉防火墙,就是别的用户访问的时候可以访问。
第三步 分享httpd服务
#####mount iso to share directory#####
umount /westos
mkdir /var/www/html/rhel7.1
#在http服务这个默认的目录下新建一个目录,特殊的服务都有特殊的目录,执行都是要在其底下,所以要在这种默认的目录下新建个目录。
mount /iso/rhel-server-7.1-x86_64-dvd.iso /var/www/html/rhel7.1
#把镜像挂载到这个上边。
第四步 把之前新改的挂载目录重新放到配置文件中
#####cofig local yum################
rm -rf /etc/yum.repos.d/yum.repo
cat >/etc/yum.repos.d/yum.repo <<end
[test]
name=test
baseurl=file://(访问的方式)/var/www/html/rhel7.1
或者可以改成 http://172.25.254.200/rhel7.1
gpgcheck=0
end
至此就可以实现本地访问,如果其他主机也想要访问的话,就还是配置...repo文件,配置与第四步类似相同。
第二部分:yum相关参数功能
yum
yum list all ###列出所有安装包
yum list installed ###列出已经安装的
yum list available ###列出没有安装的
yum remove software ###卸载软件
yum install software ###安装软件
yum search 关键字 ###搜索与关键字相关的软件
yum whatprovides 文件 ###搜索包含此文件的包*/ls
yum reinstall software ###从新安装软件
yum localinstall 第三方软件 ###安装第三方软件并解决依赖关系
yum info software ###查询软件信息
yum groups list ###列出软件组,组中包含多个软件
yum groups install ###安装组
yum groups remove ###卸载组
yum groups info ###查看组信息
yum repolist all ###列出目前yum server 所使用的仓库有哪些
第三部分:安装系统中没有装的软件,比如gcc
vim hello.c
#include<stdio.h>
int main(){
printf("Hello world\n");
return 0;
}
用gcc 编译
gcc hello.c -o hello
执行 ./hello或在./a.out
如果gcc编译时没有这个命令,可以安装上这个yum install gcc
第四部分:安装第三方软件,比如linux下的qq
rpm -ivh /home/kiosk/Desktop/linuxqq-v1.0.2-beta1.i386.rpm
底下会显示出安装这个软件还需要依赖的文件。然后要找到这些文件是在哪个包中:
yum whatprovides libatk-1.0.so.0
然后安装包含这个文件的包
第五部分:rpm命令的使用#############
rpm ###底层软件管理工具
-i ###install
-v ###显示信息
-h ###指定包的解密方式为hash
-q ###查询
-p ###指定软件包本身
-l ###列出软件中文件的名字
--scripts ###查看软件安装和卸载过程中所执行的动作
-f ###查询某个文件属于那个安装包
-a ###所有
-e ###卸载
--force ###强制
--nodeps ###忽略依赖性
第六部分:yum软件控制
vim /etc/yum.conf
#配置该文件的目的是可以屏蔽掉某些不需要安装的包。
exclude=*.x86_64
#忽略64位安装包。
exclude=*.i686
还可以再加单独的包,字符串用空格隔开,忽略32位安装包。
第七部分:第三方软件仓库的搭建
就是如何把第三方软件包录入到yum 仓库中
1.把所有rpm包放到指定目录中,比如方到/software中
2.在这个目录中执行createrepo -v /software/,(创建yum仓库元数据)生成repodate目录,生成repodata文件。
3.编写/etc/yum.repos.d/xxx.repo指定/software位yum源
第八部分:实验补充:
要实现永久挂载,编辑配置文件:
永久挂载后,当你umount后,在用mount -a就可以实现再次挂载。
###要想用ssh控制图形需要用到-X:
安装有依赖性的软件:
安装,有依赖性。
在所有目录中查询此软件:
查到,安装:
这样反复进行,直到解决所有依赖性。
对于安装qq这个软件的解决方法。
--force 忽略依赖性,直接安装。
查询软件:
查询所有
查询软件中文件的名字
查询指定软件包本身: 查看执行的动作:
下面是yum软件控制:
Zsh软件是x86 64位软件,
在主配置文件中忽略32位的和64位的。
将配置文件改为忽略64位,则list 时就不会有64位的wps,如下:
###插入 yum list 软件名称 是用来查询仓库中有的软件包的信息。
第三方软件仓库的搭建:
首先获得包:
就像系统软件仓库一样,作为一个仓库最基本的是有软件包和repodata这个目录,如下:
所以首先要创建repodata目录:
配置yum 源:
每次配置完yum 源都要进行 yum clean all 和 yum repo补全 all
下面就可以安装第三方软件了:
Gpgcheck校验:
查询软件位置:
本文出自 “Y LINUX XF” 博客,请务必保留此出处http://yaoxiaofeng.blog.51cto.com/11915773/1852871