千家信息网

程序包管理之yum命令详解

发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,1.yum是什么?yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的
千家信息网最后更新 2024年11月29日程序包管理之yum命令详解

1.yum是什么?

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=aliyunbaseurl=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=localbaseurl=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

...

0