YUM工具的工作原理,用法及源码包的编译安装
_ueditor_page_break_tag_
一、 CentOS: yum, dnf
1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具
注意:yum并不是rpm的取代者,只是rpm包管理器的前端工具,是依赖于rpm包管理器的,使用yum来解决安装问题,使用rpm来查询等
2.yum repository(仓库): yum repo
仓库中存储了众多rpm包,以及包的相关的元数据文件(元数据文件放置于特定目录下:repodata)
注意:repodata目录所在的位置就是仓库所指向的路径
默认安装情况下,光盘即为本地仓库。
3.文件服务器:(仓库本身也是一个文件服务器)
ftp://
http://
file:///(本地的,默认是光盘)
二、yum客户端配置文件:
1./etc/yum.conf:主配置文件,为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
2.仓库指向的定义:(具体可以 man yum。conf)
[repositoryID]
name=Some name for this repository:
当前仓库描述信息
baseurl=url://path/to/repository/ :
指明访问路径:通常为一个文件服务器上输出的某repository
enabled={1|0}:
是否启用仓库,默认是启用的
gpgcheck={1|0}:
是否对程序包做校验(完整性和来源合法性)
gpgkey=URL
指明秘钥文件路径
enablegroups={1|0}
failovermethod={roundrobin(轮循)|priority(指明优先级)}:
故障转移方法,
默认为:roundrobin,意为随机挑选;
cost= 默认为1000 (成本值)
3.创建自定义yum仓库
1)在/etc/yum.repos.d 下定义yum仓库。
注意:这里定义的是两个不同的仓库,里面所包含的rpm包是不一样的,如果仓库内容是一样的可以使用baseurl指向多个路径,轮循,优先级都可以。
2)使用yum repolist 来查看所有的仓库列表
三、yum命令的用法:
语法:yum [options] [command] [package …]
1.显示仓库列表:
repolist[all|enabled|disabled]显示所有,启用和禁用的
2.显示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1]通配符
3.安装程序包:
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安装)
4.升级程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)
检查可用升级:
yum check-update
5.卸载程序包:
yum remove | erase package1 [package2] […]
6.查看程序包简要信息information:
yum info […]
7.查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovidesfeature1 [feature2] […]
8.清理本地缓存:
yum clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]
9.构建缓存:
yum makecache
10.搜索:
yum search string1 [string2] […]
以指定的关键字搜索程序包名及summary(总结,概括)信息
11.查看指定包所依赖的capabilities(依赖关系分析):
yum deplist package1 [package2] […]
12.查看yum事务历史:
yum history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
13.日志:
/var/log/yum.log
14.安装及升级本地程序包:
* localinstall rpmfile1 [rpmfile2] […]
(用install替代)
* localupdate rpmfile1 [rpmfile2] […]
(用update替代)
15.包组管理的相关命令:
groupinstall group1 [group2] […]
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]列出所有包组
groupremove group1 [group2] […]卸载
groupinfo group1 […]显示指定包组详情
四、如何使用光盘当作本地yum仓库:
1. 挂载光盘至某目录,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
注意:因为我们是手动挂载,所以机器一重启,就会丢失。CentOS6 可以挂载到 /misc/cd 中,开机自动挂载
2. 创建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled
五、yum的命令行选项:
–nogpgcheck:禁止进行gpgcheck
-y: 自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
六.yum的repo配置文件中可用的变量:
这些变量可以自动获取当前平台的相关信息
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386
$YUM0-$YUM9:自定义变量
实例:
http://server/centos/$releasever/$basearch/os
http://server/centos/7/x86_64
七、创建yum仓库:
createrepo[options] <directory>
八、程序包编译安装:
1.编译安装
1)Application-VERSION-release.src.rpm–> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装
2)源代码–>预处理–>编译(gcc)–>汇编–>链接–>执行
3)源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
C、C++:make (项目管理器,configure –> Makefile.in –> makefile)
java: maven
2.C代码编译安装三步骤:
1)/configure:
通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile
检查依赖到的外部环境
2)make:根据makefile文件,构建应用程序
3)make install:复制文件到相应路径
3.开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in
注意:安装前查看INSTALL,README
4.开源程序源代码的获取:
□官方自建站点:
apache.org (ASF)
mariadb.org
…
□代码托管:
SourceForge.net
Github.com
code.google.com
□c/c++编译器: gcc(GNU C Complier)
5.编译C源代码:
□前提:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库
□通过“包组”提供开发组件
CentOS 6: "Development Tools",
"Server Platform Development
九、源码包的编译和安装步骤详解:
1.第一步:configure脚本
□选项:指定安装位置、指定启用的特性
□–help: 获取其支持使用的选项
选项分类:
安装路径设定:
–prefix=/PATH: 指定默认安装位置,默认为/usr/local/
–sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译
Optional Features: 可选特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可选包,
–with-PACKAGE[=ARG],依赖包
–without-PACKAGE,禁用依赖关系
第二步:make
第三步:make install
2.安装后的配置:
(1) 二进制程序目录导入至PATH环境变量中;
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 导入库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中;
让系统重新生成缓存:
ldconfig[-v]
(3) 导入头文件
基于链接的方式实现:
ln -sv
(4) 导入帮助手册
编辑/etc/man.config|man_db.conf文件
添加一个MANPATH
练习:
编译安装apache 2.2源码包,并启动此服务
步骤如下:
1.1)首先获取源代码,下载到当前主机,默认下载到家目录中。
2)因为下载的是以tar.bz2结尾的归档压缩包,所以,要解压缩,并展开归档,解压缩后生成的目录,也默认在当前文件中;
3)进到目录当中,可以看到有configure脚本,是可执行的,但不要着急执行,先看一下INSTALL,README和configure脚本帮助文档;
2.安装:
1)第一步,执行configure脚本,并指定安装路径等;
2)第二步,执行make
3)第三步,执行make install 生成目录,并查看,指定的安装路径下是否有目录生成;
3.安装后的配置
1)二进制程序目录导入至PATH环境变量中
2)导入帮助手册。编辑/etc/man.config|man_db.conf文件,添加一个MANPATH;
3)导入库文件路径,编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中,让系统重新生成缓存
4)导入头文件,基于链接的方式实现:
4.测试可否连接访问
原创文章,作者:zhumengxiaotao,如若转载,请注明出处:http://www.178linux.com/40266