7.1 安装软件包的三种方法
各系统中安装的文件
- windows中,安装包双击的exe文件,也是二进制安装包,不能使用记事本或word这种文本文档工具去查看
- linux中,安装包也是二进制文件,不能使用cat、less、head等工具去查看
安装软件包的方法
- linux中安装软件包有三种方法
- rpm工具
- 这种包就类似于windows中的exe比较相似,直接使用rpm工具就能将软件装上,不需要做过多的设置——>安装路径和文件名基本都是固定好的
- yum工具
- 它是另外一种工具安装rpm包。
- 在centos和redhat下,这种包就做 rpm包 。
- yum属于使用python开发的工具,它实际操作的对象也是rpm包
- yum工具比rpm工具有一个优势,支持自动安装依赖的包
- 源码包
- 在windows下,几乎没有
- 源码包,就是所谓的源代码,可以查看到各个语言开发的各种文件件,需要通过一种编辑器,把源码包编译一种可执行的文件
在三种方法中,源码包是最难的,yum工具是最简单的
7.2 rpm包介绍
rpm介绍概要
- 设置光驱并挂载
- rpm包格式,包名、版本名、发布版本号、平台
rpm包介绍
- 要想使用rpm包,就需要先有rpm工具
[root@hf-01 mnt]# cd Packages/
[root@hf-01 Packages]# ls
yum-utils-1.1.31-24.el7.noarch.rpm
zenity-3.8.0-4.el7.x86_64.rpm
zip-3.0-10.el7.x86_64.rpm
zlib-1.2.7-13.el7.x86_64.rpm
zlib-devel-1.2.7-13.el7.x86_64.rpm
zsh-5.0.2-7.el7.x86_64.rpm
等等等
- 我们可以看到它是由 . 和 - 组成
yelp-3.8.1-7.el7.x86_64.rpm
yelp-libs-3.8.1-7.el7.x86_64.rpm
- 从左到右可以将它们划分为几部分
- 第一部分,字符串,这些字符串就是 包名 ,比如:yelp
- 有时在包名中也会存在 - 或 数字 , 在包名后紧跟的是版本号
- 第二部分,版本号 ,比如:3.8.1
- 版本号里面又分为主版本号,次版本号,小版本号(小版本号又称之为修正版本)
- 第1个数字就是版本号,第2个数字就是次版本号,第3个数字为小版本号
- 版本号里面又分为主版本号,次版本号,小版本号(小版本号又称之为修正版本)
- 第三部分,发布版本号 ,比如:7.el7
- 第四部分,发布平台位数 ,比如:x86_64——>64位系统
- 在centos7中,已经不再区分32位和64位,默认都是64位
- 在centos6之前的版本(包括版本6),都是区分32位还是64位的
- 64的平台可以安装32位的安装包的 (32位平台安装64位的包是不支持的)
- 第五部分,后缀名 比如:.rpm
7.3 rpm工具用法
rpm使用目录概要
- rpm -ivh rpm包文件 //安装
- rpm -Uvh rpm包文件 //升级
- rpm -e 包名 //卸载
- rpm -qa //查询安装的包
- rpm -q 包名 //查询指定包是否安装
- rpm -qi 包名 //查询指定包的信息
- rpm -ql 包名 //列出包安装的文件
- rpm -qf 文件绝对路径 //查看一个文件是否是由哪个包安装的
1.安装rpm包
- rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm //安装
- i 表示安装
- v 表示可视化
- h 表示显示安装进度
[root@localhost Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:zsh-5.0.2-25.el7 ################################# [100%]
代码语言:javascript复制这个文件在当前路径,可以加 ./zsh-5.0.2-25.el7.x86_64.rpm,或者可以使用相对路径,不用加 ./
安装rpm包的时候,也会存在依赖包
2.升级rpm包
- rpm -Uvh zsh-5.0.2-25.el7.x86_64.rpm
- 当发现新版本的时候,就可以直接升级
3.卸载rpm包
- rpm -e zsh 卸载zsh包名的rpm包 //详细请看7.2rpm介绍
[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]#
代码语言:javascript复制直接删除,不会有任何提示。(若是有提示,很有可能是出现什么错误了)
- 在卸载rpm包的时候,有可能会提示有依赖包存在,在去卸载依赖包的时候,会提示有更好的依赖包存在,所以rpm不太容易使用
4.查询安装包
- rpm -qa //查看安装包
[root@localhost Packages]# rpm -qa 这里截取了前几行代码
trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
nss-softokn-freebl-3.16.2.3-14.4.el7.x86_64
libthai-0.1.14-9.el7.x86_64
代码语言:javascript复制列出来的都是已经安装好的包,这些都可以直接卸载
5.查询指定包是否安装
- rpm -q ppp 查看ppp包是否安装(ppp表示包名)
[root@localhost Packages]# rpm -q ppp
ppp-2.4.5-33.el7.x86_64
[root@localhost Packages]#
代码语言:javascript复制若是已经安装的包,会直接显示出来;
若是未安装的包,则会提示未安装软件包。
查询指定包信息
- rpm -qi vim-enhanced //查询指定包信息
- q 表示 信息
[root@localhost Packages]# rpm -qi vim-enhanced
Name : vim-enhanced //包名
Epoch : 2
Version : 7.4.160 //版本
Release : 2.el7 //发布版本
Architecture: x86_64 //架构
Install Date: 2017年11月02日 星期四 11时24分32秒 //安装时间
Group : Applications/Editors //属于哪个组
Size : 2292098
License : Vim
Signature : RSA/SHA256, 2017年08月11日 星期五 04时15分38秒, Key ID 24c6a8a7f4a80eb5
Source RPM : vim-7.4.160-2.el7.src.rpm
Build Date : 2017年08月02日 星期三 08时46分12秒
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.vim.org/
Summary : A version of the VIM editor which includes recent enhancements
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor. Vi was the first real screen-based editor for UNIX, and is
still very popular. VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more. The
vim-enhanced package contains a version of VIM with extra, recently
introduced features like Python and Perl interpreters.
Install the vim-enhanced package if you'd like to use a version of the
VIM editor which includes recently added enhancements like
interpreters for the Python and Perl scripting languages. You'll also
need to install the vim-common package.
[root@localhost Packages]#
列出包安装的文件
- rpm -ql vim-enhanced //列出vim-enhanced包安装的文件
[root@localhost Packages]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
[root@localhost Packages]#
6.根据绝对路径去查询是由哪个包安装的
- rpm -qf 文件绝对路径 //查看一个文件是否是由哪个包安装的
[root@localhost Packages]# rpm -qf /usr/bin/vim 根据文件的绝对路径来查看到是由哪个包安装的
vim-enhanced-7.4.160-2.el7.x86_64
[root@localhost Packages]#
7.rpm特殊命令``
- rpm -qf
which cd
- 特殊命令,反引号``
- 举例:若是有一个命令 cd,但不知道它的路径在哪里
- 使用 which cd 去查看
- 举例:若是有一个命令 cd,但不知道它的路径在哪里
- 特殊命令,反引号``
[root@localhost Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
[root@localhost Packages]# which cd
/usr/bin/cd
[root@localhost Packages]#
7.4 yum工具用法
yum工具目录概要
- yum list //列出可用rpm包
- ls /etc/yum.repos.d/
- yum search vim //搜索包
- yum install [-y] //安装包的命令
- yum grouplist //搜索组的命令
- yum groupinstall [-y] //安装组的命令
- yum remove [-y] //卸载rpm包(直接卸载依赖包)
- yum update [-y] //升级rpm包
- yum provides "/*/vim" //查找命令缩依赖的包
列出可用的rpm包
- yum工具可以解决包之间的依赖关系,只需输入包名
- yum list //列出可用的rpm包
[root@localhost Packages]# yum list //列出可用的rpm包(这里只截取了一点)
zziplib-devel.i686 0.13.62-5.el7 base
zziplib-devel.x86_64 0.13.62-5.el7 base
zziplib-utils.x86_64 0.13.62-5.el7 base
代码语言:javascript复制最左侧是包的名字加相关信息
中间这一列是它的版本号以及平台版本号
最右侧是它仓库的名字
代码语言:javascript复制仓库名字的由来,可以从 /etc/yum.repos.d/ 看yum的配置文件,在 /etc/yum.repos.d/中最核心的就是CentOS-Base.repo文件
[root@localhost Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@localhost Packages]# ls /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo
[root@localhost Packages]# cat !$
cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[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
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost Packages]#
代码语言:javascript复制会看到其中 方括号中 的就是仓库的名字,把包放进容器中,而容器就是仓库,而仓库的地址上述有链接,rpm包就是在里面寻找
搜索一个包
- yum search vim //搜索vim包
[root@localhost Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.163.com
=================================== N/S matched: vim ===================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor
名称和简介匹配 only,使用“search all”试试。
[root@localhost Packages]#
代码语言:javascript复制会搜索到与vim相关的包,但也会搜索出来一些说明。(若想只要包,则可以过滤) 如下
- 若想搜索的更加精准,则可以使用grep过滤下
- yum list |grep 'vim' 搜索可用的vim包
[root@hf-01 Packages]# yum list |grep 'vim'
vim-common.x86_64 2:7.4.160-2.el7 @base
vim-enhanced.x86_64 2:7.4.160-2.el7 @base
vim-filesystem.x86_64 2:7.4.160-2.el7 @base
vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda
protobuf-vim.x86_64 2.5.0-8.el7 base
vim-X11.x86_64 2:7.4.160-2.el7 base
vim-minimal.x86_64 2:7.4.160-2.el7 base
[root@hf-01 Packages]#
代码语言:javascript复制只要包名带有vim的,就会显示出来,并且vim还会有颜色显示
安装包的命令
- yum install [-y] 包名 ——>这里的 -y 表示加了就不在询问是否需要安装
列出可用组
- yum grouplist //把可用的组全都列出来
[root@hf-01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
Available environment groups:
最小安装
基础设施服务器
计算节点
文件及打印服务器
基本网页服务器
虚拟化主机
带 GUI 的服务器
GNOME 桌面
KDE Plasma Workspaces
开发及生成工作站
可用组:
传统 UNIX 兼容性
兼容性程序库
图形管理工具
安全性工具
开发工具
控制台互联网工具
智能卡支持
科学记数法支持
系统管理
系统管理工具
完成
[root@hf-01 Packages]#
代码语言:javascript复制若选择其中的组就会安装组里面的rpm包,在安装完系统后,进入系统,使用yum工具安装这些组
- 若想不想中文显示,可以输入 LANG=en
安装组的命令
- yum groupinstall [-y] //安装可用组
- 若安装的组是一个单词,可以不用加任何的字符
- 若组之间是由几个单词构成(区别:就是有空格),那就加上单引号 ' '
[root@hf-01 Packages]# yum groupinstall 'Virtualization Host'
yum卸载包的命令
- yum remove [-y] //卸载包的命令
- yum卸载包的时候,会直接卸载依赖的包(比较危险)
yum升级包的命令
- yum update [-y] //升级包的命令
- 在升级包的时候,若是在该 yum update 命令后面不加载包名,则会把系统中所有的rpm包升级(包括系统、内核都会升级)
- 一般升级的时候,都是在刚安装完系统的时候去做;若是已经安装了一些服务等,然后去升级,则会有可能出现问题
yum搜索命令是由哪个包组成
- yum provides "/*/vim" //查找vim命令是由哪个包构成
7.5 yum搭建本地仓库
yum本地仓库目录概要
- 挂载镜像到/mnt/目录
- 先将光驱连接起来
- 然后在挂载 mount /dev/cdrom /mnt/
- 切换到/etc/yum.repos.d目录下
- cp -r /etc/yum.repos.d /etc/yum.repos.d.bak 将文件和目录一同拷贝到另一个位置
- vim /etc/yum/repos.d/dvd.repo //内容如下
- [dvd]
- name=install dvd
- baseurl=file:///mnt
- enable=1
- gpgcheck=0
- yum clean all
- yum list
搭建yum本地仓库
- 假设在centos中,却不能联网,而默认的yum仓库则需要远程连接资源网站下载的的,而我们则可以搭建一个yum的本地仓库,在本地的路径中安装rpm包
在做本地仓库的时候,首先需要一个光驱或光盘(镜像文件)
然后挂载,访问到其中的rpm包
并将一下文件添加到 vi dvd.repo 中去
清除之前的缓存 yum clean all
使用yum list查看,或者翻屏查看命令 yum list |less
yum本地仓库,方便使用本地的光盘作为他的仓库,做为它的依赖的包
扩展
-
- yum保留已经安装过的包
- 设置yum保留已经下载的rpm包,供以后升级或重新安装时使用
- 修改/etc/yum.conf文件
- [main]
- cachedir=/home/soft1/yumcache
- keepcache=1
- debuglevel=2
- cachedir是设置下载包的地方,可以修改为自己想存放的位置
- keepcashe为1 时,表示已经保存下载的rpm包了
[root@hf-01 ~]# vim /etc/yum.conf
[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2
-
- 搭建局域网yum源