安装RPM包或源码包
RPM工具
- RPM是Red Hat Manager的缩写。它是以一种数据库记录的方式将我们所需要的套件安装到Linux主机的一套管理程序。
如果虚拟机光驱中还有系统安装盘镜像,就可以通过执行如下命令把光驱挂载到/mnt目录下。先检查一下VMware右下角的小光驱图标是否点亮,如果没有,点击一下,再点击“连接”就可以点亮它。当挂载光驱后,会在/mnt/Packages目录下看到很多后缀为.rpm的文件,这些文件就是RPM包。
- 每个RPM包的名称都由-和.分成了若干部分。
- 比如在abrt-2.1.11-36.el7.centos.x86_64.rpm包中:
- abrt为包名
- 2.1.11为版本信息
- 45.e17.centos为发布版本号
- x86_64为运行平台。
- 常见的运行平台有:i386、i586、i686和x86_64。
- 注意的是,CPU目前分32位和64位,i386、i586和i686都为32位平台,x86_64为64位平台。
- 有些RPM包并没有写具体的平台而是noarch(如ant-1.9.2-el7.noach.rpm),这说明这个RPM包没有硬件平台限制。
安装RPM包
安装命令示例:
# cd /mnt/Packages/
# rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
- -i:表示安装
- -v:表示可视化
- -h:表示显示安装进度
另外,在安装RPM包时,常用的附带参数还包括: - –force:表示强制安装,即使覆盖属于其他包的文件也要安装。
- –nodeps:表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包。
升级RPM包
- 命令:rpm -Uvh filename
- -U:表示升级
卸载RPM包
- 命令:rpm -e filename
filename是通过rpm的查询功能所查询到的。 - 对此介绍:先查找一个已经安装的包,然后使用-e选项卸载。
示例命令:
# rpm -qa libjpeg-turbo-devel
# rpm -e libjpeg-turbo-devel
- 卸载时,-e选项后面的filename和安装时时有区别的。
- 安装时,是把一个存在的文件作为参数,而卸载时只要包名即可。
查询一个包是否已安装
格式命令:rpm -q RPM包名 //“包名”不带平台信息和后缀名的
示例命令:
- 如图显示不存在。
安装命令:
# rpm -ivh libjpeg-turbo-devel-1.2.9o-5.el7.x86_64.rpm
# rpm -q ibjpeg-turbo-devel
可以使用命令rpm -qa查询当前系统所有已安装的RPM包,限于篇幅,只列出前10个,如下:
# rpm -qa |head
得到一个已安装的RPM包的相关信息
要得到一个已安装RPM包的相关信息,可以使用以下格式命令:
# rpm -qi 包名 //不需要加平台信息和后缀名
示例命令:
# rpm -qi libjpeg-turbo-devel
列出一个RPM包的安装文件
格式命令:rpm -ql 包名
示例命令:# rpm -ql libjpeg-turbo-devel
列出某个文件属于哪个RPM包
格式命令:# rpm -qf 文件的绝对路径
示例命令:# rpm -qf /usr/lib64/libjpeg.so
yum工具
- yum工具比RPM工具更加方便。
- yum最大的优势是可以联网区下载所需要的RPM包,然后自动安装。如果要安装的RPM包有依赖关系,yum工具会依次安装所有相关的RPM包。
列出所有可用的RPM包
使用yum list命令,可以列出所有的RPM包资源,如:
# yum list | head -n 20
- 如图最左侧是RPM包名 中间是版本信息 最右侧是安装信息
- 如果安装,最右侧就显示@base、@update或@anaconda,前面都会有@符号,如果未安装,则显示base或anaconda;如果RPM包已安装但需升级,则显示updates
搜索RPM包
命令:# yum search [相关关键词]
示例命令:# yum search vim
可用grep过滤,而找到相应的RPM包,如:
# yum list |grep ‘vim’
安装RPM包
命令:# yum install [-y] [RPM包名]
如果不加-y选项,则会以与用户交互的方式安装。
示例命令:# yum install -y protobuf -vim
- 在这个过程中,它首先会把需要安装的RPM包列出,如果有依赖关系,也会把所有依赖的包列出来。然后询问用户是否需要安装,输入y则安装,输入n则不安装。
- 但可以直接加-y选项,就省略了这一步。
卸载RPM包
命令:# yum remove [-y] [RPM包名]
示例命令:# yum remove protobuf-vim
- 卸载和安装一样可以直接加上-y选项省略那一步。
升级RPM包
命令:# yum update [-y] [RPM包]
示例命令:# yum update bash
使用本地光盘制作yum源
在Linux系统下使用光盘制作yum源,步骤如下:
1.挂载光盘
# mount /dev/cdrom /mnt
2.删除/etc/yum.repos.d目录下所有的repo文件(删除前,最好做一个备份)
# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
# rm -rf /etc/yum.repos.d/*
3.创建新文件dvd.repo
# vim /etc/yum.repos.d/dvd.repo
4.刷新repos生成缓存
# yum makecache
然后就可以使用yum命令安装所需的软件包了,比如可安装一个tftp的RPM包,如:
# yum install -y tftp
利用yum工具下载RPM包
在进行操作前,需恢复上一步的yum源,否则yum还会出问题,操作如下:
# rm -rf /etc/yum.repos.d
# mv /etc/yum.repos.d_bak /etc/yum.repos.d
# yum list //必须执行,因为这样可以生成缓存,方便下次使用
- 有时候可以下载RPM包但不安装,这仅仅是复制给其他机器使用。
- 前面有介绍使用yum工具安装RPM包时,首先得下载RPM包,然后再去安装,所以使用yum工具完全可以做到只下载而不安装。
命令:# yum install 包名 -y --downloadonly
- 虽然下载了RPM包,但没保存到预想得目录下,默认会在/var/cache/yum/x86_64/7/xxx/packages,xxx指的时base、updates或extras,它和yum list最右侧的字符串时一致的。
下载到指定目录的命令:
# yum install 包名 -y --downloadonly --downloaddir=/usr/local/src
如果下载到/usr/local/src目录下,示例命令:
# yum install -y ypbind --downloadonly --downloaddir=/tmp/
- 如果包已经安装过了,yum install --downloadonly就不起作用了;
如果就是想下载包,方法如下:
# yum reinstall -y bash --downloadonly
安装源码包
- 常见的源码包一般都是用C语言开发的,因为C语言时Linux上最标准的程序语言。
- Linux上的C语言编译器称为gcc,它可以把C语言编译成可执行的二进制文件。
- 如果机器上没有安装gcc,就无法编译源码,安装命令如下:
# yum install -y gcc
下载源码包
- 下载源码包一定要区官方站点,因为从其他网站下载的源码包很有可能被修改过。
示例:把httpd的源码包下载到/usr/local/src目录下
# cd /usr/local/src/
# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz
解压源码包
- 示例命令:
# tar -zxvf httpd-2.2.32.tar.gz
··················