Linux 软件包管理

一、RPM

1.什么是 rpm

Redhat Packages Manager,是红帽推出的软件包管理工具。 

2.rpm 软件包的组成有哪些部分

例:bash-4.2.46-31.el7.x86_64

bash:软件名称

4.2.46:版本号

31.el7:发行次数

x86:硬件平台

64:扩展名(64位)

3.如何获取 rpm 软件包

  • 本地 IOS 镜像文件(使用 IOS 镜像文件安装时一定要注意 CD/DVD是要连接状态)
    • 软件包数量有限,版本较低

Linux 软件包管理_第1张图片

  • 互联网
    • 方便获取,版本较新

4.除了 rpm 安装以外的安装方式

源码包:手动编译打包,安装繁琐。

二进制包:解压即用,安装简单。

5.rpm 使用方法

5.1.安装

语法:

rpm [参数] [软件包名称]

参数:

        -i:安装软件包

        -h:显示进度条

        -v:显示详情

示例:

#本地 IOS 镜像文件
##挂载镜像文件至 /mnt 目录下
~]# ls /mnt/
~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only(可以忽略)
~]# ls /mnt/
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

##当 /mnt 目录下有内容后说明已经挂载成功了,下面开始安装工具 tree
~]# rpm -ihv /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]

5.2.依赖

使用 rpm 安装软件时如果遇到一个软件包依赖另外一个软件包,这个时候需要手动去安装那个依赖的软件包,但是有些工具需要的依赖可不仅仅是一两个依赖那么简单。所以 CentOS 软件管理使用 yum 的比较多一些,yum 可以自行解决依赖的问题。

5.3.升级

参数:

        -U:更新软件

例:zabbix

#安装低版本
~]# rpm -ihv https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-1.el6.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.ekImXT: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-6.0-1.el6         ################################# [100%]

~]# rpm -qa | grep zabbix-release-6.0-1.el6
zabbix-release-6.0-1.el6.noarch

#更新
~]# rpm -Uhv https://mirrors.aliyun.com/zabbix/zabbix/6.5/rhel/6/x86_64/zabbix-release-6.5-1.el6.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/6.5/rhel/6/x86_64/zabbix-release-6.5-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.1MtLDU: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-6.5-1.el6         ################################# [ 50%]
Cleaning up / removing...
   2:zabbix-release-6.0-1.el6         ################################# [100%]
~]# rpm -qa | grep zabbix
zabbix-release-6.5-1.el6.noarch

5.4.卸载

参数:

        -e:卸载软件

示例

~]# rpm -e zabbix-release
~]# rpm -qa | grep zabbix

5.5.查询相关参数

rpm -q:在系统中查找某个软件包

~]# rpm -q tree
tree-1.6.0-10.el7.x86_64

rpm -qa:列出所有已安装的软件包

~]# rpm -qa | grep tree
tree-1.6.0-10.el7.x86_64

rpm -ql:列出软件所有文件所在路径

~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

rpm -qc:查看软件包的配置文件

~]# yum install nginx -y
~]# rpm -qc nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf

rpm -qf:查询系统已安装的命令输入那个软件包(需要加命令绝对路径)

~]# which nginx
/usr/sbin/nginx
[root@localhost ~]# rpm -qf /usr/sbin/nginx 
nginx-1.20.1-10.el7.x86_64

二、YUM

1.什么是 yum

yum 于 rpm 一样,也是一个软件包管理工具,不过 yum 可以自动处理软件包依赖关系。

2.什么是 yum 源

yum 源其实就是 rpm 包仓库,配置 yum 源指的就是指定 yum 从哪个软件仓库下载。

2.1.配置 yum 源的方式

yum 源(repo文件存放位置:/etc/yum.repos.d/

2.1.1.手动创建 reop 文件

2.1.2.使用下载命令下载 repo 文件

2.1.3.使用 yum 安装(yum install epel-release -y)

3.常用国内 yum 源地址

阿里:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

163:欢迎访问网易开源镜像站

中科大:USTC Open Source Software Mirror

清华:https://mirrors.tuna.tsinghua.edu.cn/

4.yum 的使用方法

4.1.安装

#单个软件
~]# yum install sl -y

#多个软件
~]# yum install sl tree -y

4.2.本地安装

#先将 rpm 包下载至本地
~]# wget  https://mirrors.aliyun.com/epel/7/x86_64/Packages/a/aalib-libs-1.4.0-0.22.rc5.el7.x86_64.rpm

#本地安装
~]# yum localinstall aalib-libs-1.4.0-0.22.rc5.el7.x86_64.rpm -y

4.3.更新

#查看系统中哪些软件包可以更新
~]# yum check-updates

#升级已安装的软件包
~]# yum update curl

#对所有软件进行升级,适合刚装完系统使用。运行一段使用的话会导致库文件发生变化。
~]# yum  update

4.4.查询

#查询已安装与未安装的软件包
~]# yum list

#查询系统中已安装的软件包
~]# yum list installed

4.5.卸载

~]# yum remove sl

5.yum 仓库相关指令

5.1.查看可用的 yum 源

#查看可用状态的 yum 源仓库
~]# yum repolist

#查看所有状态的 yum 源仓库
~]# yum repolist all

 5.2.启用、禁用 yum 仓库

enabled 的值控制是否启用仓库

0=禁用

1=启用

#启用状态
~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

#禁用状态
~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 5.3.查找命令所属软件包

~]# yum provides sl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
sl-5.02-1.el7.x86_64 : Joke command for when you type 'sl' instead of 'ls'
Repo        : @epel

PS:如果查询不到,需要检查下命令是否写错,命令没有问题的话说明软件仓库中没有,需要添加更多的 yum 源。

5.4.缓存软件包

keepcache 的值控制是否启用缓存,cachedir 缓存路径

0=禁用

1=启用

#禁用状态
~]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

​#启用状态
~]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release


#安装一个软件
~]# yum install sl -y
​

5.5.清除缓存

#清除所有软件包的信息
~]# yum clean all

#清除所有缓存的软件包
~]# yum clean packages

5.6.组包相关指令

#安装一整个组的软件
~]# yum groups list 

#安装组包
~]# yum groups install  "Development and Creative Workstation"

#删除组包
~]# yum groups remove "Development and Creative Workstation"

你可能感兴趣的:(linux,服务器,运维)