7.1 安装软件包的三种方法
- rpm工具
rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序。rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装/卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。
- yum工具
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
- 源码包
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境;缺点是难度较大。
7.2-7.3 rpm工具
rpm包介绍(准备工作)
挂载系统安装盘镜像(挂载到一个空目录,此处/mnt/目录未使用,所以直接挂载到/mnt/目录下)
1[root@cham3~]# df -h 2文件系统 容量 已用 可用 已用% 挂载点 3/dev/sda3 28G 1.3G 27G 5% / 4devtmpfs 483M 0 483M 0% /dev 5tmpfs 493M 0 493M 0% /dev/shm 6tmpfs 493M 6.8M 486M 2% /run 7tmpfs 493M 0 493M 0% /sys/fs/cgroup 8/dev/sda1 197M 109M 88M 56% /boot 9tmpfs 99M 0 99M 0% /run/user/0 10[root@cham3~]# mount /dev/cdrom /mnt/ 11mount: /dev/sr0 写保护,将以只读方式挂载 12[root@cham3 mnt]# ls 13CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 14EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 15EULA isolinux repodata TRANS.TBL 16[root@cham3 Packages]# # ls 17yum-plugin-changelog-1.1.31-40.el7.noarch.rpm 18yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm 19yum-plugin-tmprepo-1.1.31-40.el7.noarch.rpm 20yum-plugin-verify-1.1.31-40.el7.noarch.rpm 21yum-plugin-versionlock-1.1.31-40.el7.noarch.rpm 22…… 23(rpm包格式:包名、版本号、发布版本号、平台)
rpm包存放在Packages该文件下!
rpm工具用法
安装rpm包
语法: rpm [options] [参数]
Options:
-i:=install,安装
-v:可视化
-h:显示安装进度
在安装一个rpm包时常用附带选项:
--force:强制安装
--nodeps:=no dependent 无依赖安装(忽视与其他包之间的依赖关系)
说明: 安装有依赖关系的包时,可以先安装其所依赖的包再安装目标包(同时安装存在依赖关系的包),或者使用--force或--nodeps选项进行强行安装(不建议使用)。
7.4 yum工具用法
列出所有rpm包
语法: yum list
1[root@cham3 Packages]# yum list 2Failed to set locale, defaulting to C 3Loaded plugins: fastestmirror 4Loading mirror speeds from cached hostfile 5 * base: mirrors.btte.net 6 * extras: mirrors.aliyun.com 7 * updates: mirrors.tuna.tsinghua.edu.cn 8Installed Packages 9NetworkManager-libnm.x86_64 1:1.4.0-12.el7 @anaconda 10NetworkManager-team.x86_64 1:1.4.0-12.el7 @anaconda 11zsh.x86_64 5.0.2-25.el7_3.1 updates 12zsh-html.x86_64 5.0.2-25.el7_3.1 updates 13zziplib.i686 0.13.62-5.el7 base 14zziplib.x86_64 0.13.62-5.el7 base 15…… 16Exiting on Broken Pipe 17注: 第一列是包名,第二列是版本号,第三列是库
说明: 库所在位置有“@”表示已安装;“updates”表示已安装,有新版本,需要升级;其他的表示可安装但还未安装的rpm包。
-
yum配置文件
[root@cham3 Packages]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo
-
配置文件base的信息
[root@cham3 Packages]## cat /etc/yum.repos.d/CentOS-Base.repo
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 ……
说明: 该文件下有rpm包所在库base的镜像地址信息!
搜索rpm包
语法: yum search [关键词]
1[root@cham3 Packages]# yum search vim 2已加载插件:fastestmirror 3Loading mirror speeds from cached hostfile 4 * base: centos.ustc.edu.cn 5 * extras: centos.ustc.edu.cn 6 * updates: centos.ustc.edu.cn 7=================================================== N/S matched: vim =================================================== 8protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions 9vim-X11.x86_64 : The VIM version of the vi editor for the X Window System 10vim-common.x86_64 : The common files needed by any version of the VIM editor 11vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements 12vim-filesystem.x86_64 : VIM filesystem layout 13vim-minimal.x86_64 : A minimal version of the VIM editor 14 15 名称和简介匹配 only,使用“search all”试试。
说明: 使用该命令搜索时会列出所有包含‘vim’(关键词)的信息,不精确,为了只搜索相关rpm包,可用如下方法:
1[root@cham3 Packages]# yum list |grep 'vim' 2vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda 3protobuf-vim.x86_64 2.5.0-8.el7 base 4vim-X11.x86_64 2:7.4.160-2.el7 base 5vim-common.x86_64 2:7.4.160-2.el7 base 6vim-enhanced.x86_64 2:7.4.160-2.el7 base 7vim-filesystem.x86_64 2:7.4.160-2.el7 base 8vim-minimal.x86_64 2:7.4.160-2.el7 base
说明: grep表示过滤。
列出rpm包组
语法: yum grouplist
1[root@cham3 Packages]# yum list |grep 'vim' 2vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda 3protobuf-vim.x86_64 2.5.0-8.el7 base 4vim-X11.x86_64 2:7.4.160-2.el7 base 5vim-common.x86_64 2:7.4.160-2.el7 base 6vim-enhanced.x86_64 2:7.4.160-2.el7 base 7vim-filesystem.x86_64 2:7.4.160-2.el7 base 8vim-minimal.x86_64 2:7.4.160-2.el7 base 9[root@cham3 Packages]# yum grouplist 10已加载插件:fastestmirror 11没有安装组信息文件 12Maybe run: yum groups mark convert (see man yum) 13Loading mirror speeds from cached hostfile 14 * base: centos.ustc.edu.cn 15 * extras: centos.ustc.edu.cn 16 * updates: centos.ustc.edu.cn 17可用的环境分组: 18 最小安装 19 基础设施服务器 20 计算节点 21 文件及打印服务器 22 基本网页服务器 23 虚拟化主机 24 带 GUI 的服务器 25 GNOME 桌面 26 KDE Plasma Workspaces 27 开发及生成工作站 28可用组: 29 传统 UNIX 兼容性 30 兼容性程序库 31 图形管理工具 32 安全性工具 33 开发工具 34 控制台互联网工具 35 智能卡支持 36 科学记数法支持 37 系统管理 38 系统管理工具 39完成 40 41 42[root@cham3 Packages]# yum grouplist 43Failed to set locale, defaulting to C 44Loaded plugins: fastestmirror 45There is no installed groups file. 46Maybe run: yum groups mark convert (see man yum) 47Loading mirror speeds from cached hostfile 48 * base: mirrors.btte.net 49 * extras: mirrors.aliyun.com 50 * updates: mirrors.tuna.tsinghua.edu.cn 51Available Environment Groups: 52 Minimal Install 53 Compute Node 54…… 55Available Groups: 56 Compatibility Libraries 57 Console Internet Tools 58…… 59Done
安装rpm包
语法: yum install [-y] [包名]
说明: 如果不加‘-y’选项,则会以与用户交互的方式安装。首先是列出需要安装的rpm包,然后会问用户是否需要安装,输入‘y’则安装,输入‘n’则不安装,这样太麻烦,所以直接加上‘-y’选项,省略与用户之间的交互。
安装rpm包组
语法: yum groupinstall [-y] [包的组名]
如果不知道组名,可用yum grouplist查看(注:进行安装时只能用英文名)。
卸载rpm包
语法: yum remove [-y] [包名]
说明: ‘-y’选项同install的用法,需要注意的是,在使用该命令进行卸载时会将目标文件所依赖的所有包同时删除,所以要谨慎使用!
升级rpm包
语法: yum update [-y] [包名]
说明: 如果不加包名,则会升级系统内所有包以及系统本身(慎用,一般只在刚安装完系统时使用)。
yum provides
该命令的作用是通过已知命令名称来搜索其rpm包名。
用法:
1[root@cham3 Packages]# yum provides "/*/vim" 2已加载插件:fastestmirror 3Loading mirror speeds from cached hostfile 4 * base: centos.ustc.edu.cn 5 * extras: centos.ustc.edu.cn 6 * updates: centos.ustc.edu.cn 7base/7/x86_64/filelists_db | 6.7 MB 00:00:08 8extras/7/x86_64/filelists_db | 486 kB 00:00:00 9updates/7/x86_64/filelists_db | 2.1 MB 00:00:03 10cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system 11源 :base 12匹配来源: 13文件名 :/usr/share/cmake/editors/vim 14 15 16 172:docker-unit-test-1.12.6-48.git0fdc778.el7.centos.x86_64 : Automates deployment of containerized applications - for 18 : running unit tests 19源 :extras 20匹配来源: 21文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 22文件名 :/var/lib/docker-unit-test/contrib/syntax/vim 23文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 24文件名 :/var/lib/docker-unit-test/runc-79c3939053c870fbb4de5484d98640d5ba028ef4/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 25文件名 :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim 26 27 28 292:docker-unit-test-1.12.6-55.gitc4618fb.el7.centos.x86_64 : Automates deployment of containerized applications - for 30 : running unit tests 31源 :extras 32匹配来源: 33文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 34文件名 :/var/lib/docker-unit-test/contrib/syntax/vim 35文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 36文件名 :/var/lib/docker-unit-test/runc-31a9f6e22729606814e9bcbcf9eeebc1887527cb/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 37文件名 :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim 38 39 40 412:docker-unit-test-1.12.6-61.git85d7426.el7.centos.x86_64 : Automates deployment of containerized applications - for 42 : running unit tests 43源 :extras 44匹配来源: 45文件名 :/var/lib/docker-unit-test/runc-c5d311627d39439c5b1cc35c67a51c9c6ccda648/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 46文件名 :/var/lib/docker-unit-test/contrib/syntax/vim 47文件名 :/var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 48文件名 :/var/lib/docker-unit-test/docker-novolume-plugin-385ec70baac3ef356f868f391c8d7818140fbd44/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim 49文件名 :/var/lib/docker-unit-test/containerd-fa8fb3d455e1baf716f3131581f0ed8b07c573a6/vendor/src/github.com/docker/docker/contrib/syntax/vim 50 51 52 53git-1.8.3.1-11.el7.x86_64 : Fast Version Control System 54源 :base 55匹配来源: 56文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim 57 58 59 60git-1.8.3.1-12.el7_4.x86_64 : Fast Version Control System 61源 :updates 62匹配来源: 63文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim 64 65 66 672:vim-common-7.4.160-2.el7.x86_64 : The common files needed by any version of the VIM editor 68源 :base 69匹配来源: 70文件名 :/usr/share/vim 71 72 73 742:vim-enhanced-7.4.160-2.el7.x86_64 : A version of the VIM editor which includes recent enhancements 75源 :base 76匹配来源: 77文件名 :/usr/bin/vim
说明: 因为该命令位置不确定,所以进行搜索时使用‘*’(通配符)来代表其路径。