程序包管理之yum命令详解
1.yum是什么?
创新互联专业提供成都IDC机房托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买成都IDC机房托管服务,并享受7*24小时金牌售后服务。
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
2.yum客户端的配置文件
配置文件:
/etc/yum.conf 为所有仓库提供公共配置或不属于仓库的配置
/etc/yum.repos.d/*.repo 为仓库的指向提供配置
/etc/yum.repos.d/*.repo : 定义仓库
[repositoryID]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
enabled=[0|1]仓库开启或关闭
gpgcheck ={1|0} 检查来源合法性
gpgkey=URL 指明密钥文件
enablegroups ={0|1} 使用组来批量管理程序包
failovermethod = {roundrobin(轮询)|specified(优先级)}
故障转移方法默认为roundrobin,为随机挑选
cost(开销)=# 默认为1000
yum的repo配置文件中可用的变量:
$releasever:当前OS的发行版的主版本号
$arch:平台类型
$basearch :基础平台
$YUM0-$YUM9 :用户自定义的变量
这里以 http://mirrors.aliyun.com/ 为例:
~]# cd /etc/yum.repos.d/ ~]# vim aliyun.repo [base] name=aliyun baseurl=http://mirrors.aliyun.com/centos/6.7/os/x86_64/ gpgcheck=1
我们也可以用变量的方式来设置baseurl:
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
3.如何使用光盘做本地yum仓库
这里以CentOS 6.7的ISO镜像为例:
(1)挂载光盘
~]# mount -r /dev/cdrom /media/cdrom
(2)创建配置文件
~]# cd /media/cdrom/ ~]# ls -->这里查看一下是否有"repodata"目录,一般默认都有,如果没有 ~]# createrepo -->创建"repodata"目录,如有,则不用创建 ~]# vim /etc/yum.repos.d/local.repo [base] name=local baseurl=file:///media/cdrom/ gpgcheck=1 ~]# yum repolist --> 配置完成后可以用这个命令检查是否配置成功
注: 创建yum仓库 createrepo [options]
4.yum常用命令
yum的命令行选项:
--nogpgcheck :进制进行gpg check
-y :自动回答为"yes"
-q :静默模式
--disabledrepo=repoidglob :临时禁用此处指定的repo
--enabledrepo=repoidglob :临时启用此处的指定的repo
--noplugins :禁用所有插件
常用命令:
显示仓库列表:
repolist [all|enabled|disabled]
显示程序包:
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
安装程序包:
install package1 [package2][...]
reinstall package1 [package2] [...] 重新安装
升级程序包:
update package1 [package2] [...]
downgrade package1 [package2] [...] 降级
检查可用升级:
check-update
卸载程序包:
remove | erase package1 [package2] [...]
查看程序包的简要信息:
info[]
查看指定的特性是由那个程序包提供:
provides | whatprovides feature1 [feature2] [...]
清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
makecache
搜索:
search string1 [string2] [...]
以指定的关键字搜索程序包名及summary信息
查看指定包所依赖的capabilities:
deplist [package1] [package2] [...]
查看yum事物历史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
包组管理的常用命令:
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
5.程序包编译安装
源码包的一般格式:
testapp-VERSION-release.src.rpm
安装后,使用rpmbuil命令制作成二进制格式的rpm包,而后在安装
源代码 --> 预处理 --> 编译(gcc)--> 汇编 --> 链接 --> 执行
编译安装三步骤:
./configure
1.通过选项传递参数,指定启用特性、安装路径等,执行时会参考用户的指定以及Makefile.in文件生成makefile
2.检查依赖到的外部环境
make
根据makefile文件,构建应用程序,调用编译器来完成编译
make install
编译C源代码:
前提:提供开发工具及开发环境
开发工具:make,gcc等
开发环境:开发库,头文件
glibc:标准库
通过“包组”提供开发组件:
CentOS 6:"Development Tools","Server Platform Development"
CentOS 7:"开发工具"
第一步:configure脚本
选项:指定安装位置、指定启用的特性
--help:获取其支持使用选项
安装路径设定:
--prefix=/PATH/TO/SOMEWHERE :指定默认安装位置,默认位为/usr/local
--sysconfdir=/PATH/TO/SOMEWHERE :配置文件安装路径
System types(系统类型): 交叉编译可以用到
Optional Features :可选特性
--disable-FEATURE 禁用某特性
--enable-FEATURE[=ARG] 启用某特性
Optional Packages:可选程序包,
--with-PACKAGE[=ARG] 定义依赖的程序包
--without-PACKAGE不需要依赖的程序包
第二步:make
第三步:make install
安装后的配置:
(1)导出二进制程序目录至PATH环境变量中
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2)导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中
/usr/local/apache2/lib
让系统重新生成缓存
ldconfig [-v]
(3)导出头文件到/usr/include
基于链接的方式实现:
ln -sv
导出目录为一个符号链接
(4)导出帮助手册
编辑/etc/man_db.conf文件
添加一个 MANPATH
这里以在CentOS 6.7上编译安装apache 2.2为例:
~]# cd httpd-2.2.29 --> 这里先切换到httpd目录下 ~]# ./configure --prefix=/usr/local/ --sysconfdir=/etc/httpd2.2 ~]# make ~]# make install ~]# cd /usr/local ~]# ./httpd --> 启动http服务
6.开源程序的获取方式
官方自建站点:
apache.org(ASF项目)
mariadb.org
...
代码托管:
SourceForge
Github.com
code.google.com
...
本文名称:程序包管理之yum命令详解
新闻来源:http://cdiso.cn/article/gsegdg.html