在Linux中,不同的发行版软件管理的方式可能不一样,具体来说,主要分为两大派:
1. dpkg .deb apt-get
代表发行版: Ubuntu,Debian,Mint
2. rpm .rpm rpm,yum
代表发行版: Redhat,Centos,Fedora
RPM: Rpm Package Manager
rpm: 安装简单,可定制性差,一台机器上不能装多个相同的软件,稳定性高
源码包: 编译安装,安装复杂,可定制性好,一台机器上可安装多个相同的软件
二进制包: 安装简单,可定制性差,一台机器可安装多个相同的软件,稳定性较高
在网络上下载rpm包: http://rpmfind.net/ #下载不常见的rpm包
网络yum源中获取 #epel,CentOS
镜像中获取: 在光盘镜像中的Packages目录下
1.将光盘连接上
2.将光盘挂载到相应的挂载点
# mount /dev/cdrom /mnt
3.通过挂载点访问光盘内容
# ls /mnt
zsh-5.0.2-25.el7.x86_64.rpm 包全名
zsh: 包名
5.0.2: 主版本号.次版本号.源程序的发行号
25: rpm发行号
el7: 平台 一般来说,不同平台的包不兼容
x86_64: 架构
x86_64: 64位
i686: 32位
noarch: 通用
# rpm -ivh 包全名 //安装软件包
# rpm -Uvh 包全名 //升级软件包,如果本来没有安装,则安装
# rpm -e 包名
--nodeps //只卸载当前软件,不检查依赖关系
查询已安装的:
查询指定软件包有没有安装: # rpm -q 包名
查询所有已安装的软件包: # rpm -qa
查询已安装的软件包安装的所有文件: # rpm -ql 包名
查询已安装的软件包安装的配置文件: # rpm -qc 包名
通过文件名反查文件是由哪个包安装的: # rpm -qf 文件的绝对路径
查询未安装的:
查询未安装的软件包将会安装的所有文件: # rpm -qpl 包全名
查询未安装的软件包将会安装的配置文件: # rpm -qpc 包全名
扩展:
``反引:等价于$(),引用命令的输出结果,``内部一定是命令
例:
# rpm -qf `which useradd`
shadow-utils-4.1.5.1-24.el7.x86_64
# rpm -qf $(which useradd)
shadow-utils-4.1.5.1-24.el7.x86_64
rpm包无法自动解决依赖性问题,需要手动解决,非常麻烦…
yum可以解决软件包之间的依赖问题
1.多个rpm包
2.记录这些包及包之间的依赖关系 - repodata目录
要使用yum仓库,需要先进行配置
主配置文件: /etc/yum.conf
[root@localhost mnt]# tail -2 /etc/yum.conf
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d //仓库可以定义在这里 或 /etc/yum.repos.d目录下以.repo结尾的单独的文件中
实验:配置本地yum仓库
配置过程:
1.将系统光盘挂载到/mnt
2.关闭其他仓库
# cd /etc/yum.repos.d //进入仓库配置文件存放目录
# mkdir repo
# mv *.repo repo/ //将其他的仓库配置文件移动到子目录,让其失效
3.创建配置文件
# vim localdisk.repo
[localdisk] //仓库ID
name=local disk of centos7.3 //仓库名称(描述)
baseurl=file:///mnt //仓库的URL
enabled=1 //开关,0为关,1为开
gpgcheck=0 //校验开关
4.检验
# yum repolist
常用网络源: centos官方源, epel源
国外源下载比较慢,建议使用国内镜像源: 如阿里云,清华大学,网易… 直接搜索 xxx开源镜像站
例:
# cat /etc/yum.repos.d/tsinghua.repo
[centos7]
name=centos-el7-tsinghua
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
[epel]
name=epel-el7-tsinghua
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/epel/RPM-GPG-KEY-EPEL-7
# yum list //列出所有的软件包,,最后一列以@开头的是本机已安装的
# yum repolist //列出所有的仓库
# yum clean all //清缓存
# yum makecache //创建缓存
# yum install xxx xxx //安装软件
-y //不交互
--downloadonly //仅下载,不安装
--downloaddir=DIR //指定下载的目录
# yum reinstall xxx -y //重新安装
# yum localinstall 包全名 -y //本地安装,不在仓库里找此包本身
# yum groupinstall xxx -y //安装组件
# yum remove xxx xxx //卸载软件,会卸载本软件及所有依赖本软件的软件
# yum provides path/file //查询文件是由什么包安装的
# yum search 关键字 //搜索所有源中名称或描述中包含有关键字的包
# yum update xxx //升级软件包,如果不接包名,将升级所有的软件包
如果要保存从网络源上下载的软件,修改主配置文件
[root@clone1 ~]# head -3 /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //保存的位置
keepcache=1 //1为打开,0为关闭,默认关闭