您的位置:首页 > 运维架构 > Linux

linux基础11-软件管理rpm、yum、源码

2019-07-28 19:42 561 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/baidu_39267608/article/details/97544165

rpm

rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

#rpm包格式
zip-3.0-11.el7.x86_64.rpm
zip:包名
3.0.11:版本号
el7:系统,el7指CentOs7.x,el6指Centos6.x
x86_64:平台。noarch指所有
1.安装
-i			#安装软件包
-v			#显示安装的过程
-h			#显示安装的进度条
--test		#模拟演练
--force		#强制安装
#重本地库里安装
# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
#网上安装,只实用与没有依赖的情况
# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
2.卸载
# rpm -e tree
3.升级
# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
4.查看
# rpm -q		查看指定软件包是否安装
# rpm -q vsftpd
# rpm -qa		查看系统中已安装的所有RPM软件包列表
# rpm -qa|grep "samba"	#列出所有的rpm包,然后筛选名称是samba的相关包
# rpm -ql		查询指定软件包所安装的目录,文件列表,存放的位置
# rpm -qc		查询指定软件包的所有配置文件

yum

Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=0             #缓存是否保存,1保存,0不保存。
debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log    #yum的日志文件所在的位置
exactarch=1   #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1   #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1    #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1     #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3   #允许保留多少个内核包。
exclude=selinux*     #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。

进入/etc/yum.repo.d目录下,
vi CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

name=CentOS-$releasever - Base:具体的yum源名字,其实相当于对它的描述描述信息 $r releasever:你可以使用这个变量参考红帽企业Linux发行版,也就是说表示当前发行版的大版本号。

baseurl:镜像服务器地址,只能写具体的确定地址。下面的例子中,只能有一个baseurl,但里面可以包含多个url

mirrorlist:镜像服务器的地址列表,里面有很多的服务器地址。这里有一个变量arch,cpu体系,还有一个变量:$basearch,cpu的基本体系组

baseurl和mirrorlist都是指向yum源的地址,不同点是包含地址的多少。你若自己写的话,我们一般只写一个地址,直接用baseurl就行

gpgcheck=0 :使用公钥检验rpm的正确性
gpgcheck若是1将对下载的rpm将进行gpg的校验,校验密钥就是gpgkey,一般自己的yum源是不需要检测的。gpgcheck=0,那么gpgkey就可以不填写

1.查看信息
[root@k8s-node01 ~]# yum list 				#查看所有的rpm包  配合less
[root@k8s-node01 ~]# yum list | grep ftp		#模糊匹配的方式
[root@k8s-node01 ~]# yum info vsftpd			#查看vsftpd软件的详情

2.yum通过公网仓库搜索进行安装
[root@k8s-node01 ~]# yum install vsftpd			#交互
[root@k8s-node01 ~]# yum install vsftpd -y		#非交互

3.yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系
[root@k8s-node01 ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm

4.yum直接安装本的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
[root@k8s-node01 ~]# yum localinstall  samba-4.8.3-4.el7.x86_64.rpm

5.如果误删除某个软件的配置文件,可以使用reinstall进行重装
[root@k8s-node01 ~]# yum reinstall vsftpd

6.更新所有的软件包,包括内核
[root@k8s-node01 ~]# yum update acl -y
[root@k8s-node01 ~]# yum update -y

7.如何去删除一个软件包
[root@k8s-node01 ~]# yum remove samba -y

8.查看正在使用的仓库基本信息
[root@k8s-node01 ~]# yum repolist
[root@k8s-node01 ~]# yum repolist all  查看所有的仓库

#启用和禁用仓库
[root@k8s-node01 ~]# yum install https://dev.mysql.com/get/mysql80-community-release-el7- 3.noarch.rpm
[root@k8s-node01 ~]# yum repolist all|grep mysql
[root@k8s-node01 ~]# yum-config-manager --disable mysql80-community		#关闭仓库
[root@k8s-node01 ~]# yum-config-manager --enable mysql57-community		#启用仓库
本质:  都是在修改repo文件中的enable的值   0 不启用  1 启用

9.查找一个命令或文件所属的软件包是什么?
[root@k8s-node01 ~]# rpm -qf $(which cd)
bash-4.2.46-31.el7.x86_64
PS: rpm需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包
[root@k8s-node01 ~]# yum provides cd
[root@k8s-node01 ~]# yum provides ifconfig
10.组包的安装与卸载
[root@k8s-node01 ~]# yum groups install Development Tools
[root@k8s-node01 ~]# yum groups remove  -y Base

11.如何使用yum缓存已经安装过了的软件包
#缓存rpm包方式一、修改yum全局配置文件
[root@k8s-node01 ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1     #启动缓存

#缓存rpm包方式二,只下载不安装
[root@k8s-node01 ~]# yum install httpd -y --downloadonly --downloaddir=/tmp

#1.先清空
[root@k8s-node01 ~]# yum clean packages
当你的yum出现问题,进行了一次替换后,你需要执行  yum clean all

#2.开启缓存,然后再下载软件包

12.yum的历史记录
#1.查看历史执行yum命令
[root@k8s-node01 ~]# yum history

#2.查询历史执行yum命令ID详细信息
[root@k8s-node01 ~]# yum history info N

#3.撤销历史执行过的yum命令
[root@k8s-node01 ~]# yum history undo N

源码安装

1.下载nginx的源码包
[root@k8s-node01 ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz

2.解压源码包
[root@k8s-node01 ~]# tar xf nginx-1.16.0.tar.gz

3.对软件进行各种自定义操作
[root@k8s-node01 ~]# cd nginx-1.16.0/
[root@k8s-node01 ~]#./configure --prefix=/soft/nginx-1.16.0 --with-http_ssl_module

4.生成makfile后,根据makefile的文件进行编译,使用make命令
[root@k8s-node01 ~]# make

5.将编译好的二进制文件和配置文件,拷贝到./configure指定的目录
[root@k8s-node01 ~]# make install

6.将程序设定一个软连接,便于后续的升级
[root@k8s-node01 ~]# ln -s /soft/nginx-1.16.0/ /soft/nginx

7.执行二进制文件,然后在浏览器中输入当前服务器的IP地址,测试是否有welcome to nginx
[root@k8s-node01 ~]# /soft/nginx/sbin/nginx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: