程序包管理:rpm、yum以及(make)源代码编译安装
在Linux上安装程序一般都有三种方法:源代码编译安装,rpm包安装和rpm包的前端安装yum, (rpm,和yum程序包管理器是针对CentOS6平台的)
程序包管理方式都大同小异: 源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–>组织称为一个或者几个包文件;包含的功能:安装、升级、卸载、修复、查询、校验。
程序包的命名方式: 源代码:NAME-VERSION.tar.gz VERSION:major.minor.release;rpm包:NAME-VERSION-release.os.arch.rpm; VERSION:major.minor.release
第一:源代码编译安装
一般源代码都是打包了的文件格式有:*.tar.gz,*.tar.bz2,*.tar.xz等等
步骤:
1), 解压包,tar -zvxf|jvxf|Jvxf PACKAGE; 可以不用指定解压方式
2), 切换到解压目录:先看看INSTALL 和 README;
3), ./configure; 通过选项传递参数,指定启用相关特性,安装路径,执行时参考Makefile,让后生成makefile;还有检查外部环境变量
相关选项:–help 获取这个源代码包中,配置相关信息的选项(可能每个包都是不同的);
–prefix=/path/to/somedir :指定安装的目录, 默认是安装到/usr/local;
–sysconfdir=/path/to/somedir ;配置文件的安装目录;
–builddir=/path/to/somedir
4) make && make install ; 编译和建立相应的程序文件
安装后配置程序环境
1), 导出二进制文件,编辑:/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文件 添加 一个 MANPATH
第二、rpm包管理(CentOS6平台测试的)
1,程序包的组成清单:
文件清单和安装和卸载时运行的 脚本
2,数据库包含的信息(CentOS系列/var/lib/rpm
程序包的名称和版本;依赖关系;功能说明;安装生成的指定文件路径及校验信息
3,获取一个包,我们看其合法性和完整性:一是,获取程序包的时候,一般都是在官方获取;二是验证完整性:rpm -V package
https://www.linux178.com/linux/6.html :可以参考这个
rpm命令 主要包含下列几类:
安装:-i
升级:-U,–update
卸载:-e,–erase
查询:-q,–query
校验:-V,–verifyf
数据库维护:–builddb
安装:
-v 详细信息;-vv 更详细的信息
-h:以hash进度条显示安装百分比,每个#表示2%的进度
–test:测试安装,检查报告依赖和冲突
–nodeps 忽略依赖关系,不建议使用
-ivh –replacepkgs ;删除必要的程序文件,而又找不回来,就重新安装
–nosignature:不检查包的签名
–nodigest:不检查包完整
升级:
–force 强制执行
–oldpackage 降级到老版本
-U,升级或者安装
-F,系统没有老版本,就不能升级操
注意:不建议系统内核升级,linux支持多版本内核并存,所以直接安装多版本内核就行
卸载:
-e 卸载
–allmatches 卸载所有匹配指定名称的程序包各版本
–nodeps:忽略依赖关系
–test:测试卸
查询:
rpm {-q|–query} [select-options] [query-options]
-q 查询是否安装及包的版本
-a,–all:查询所有已经安装过的包
-qa :查询系统上所有已经安装的包
-qf somefile :查询这个文件所有哪个包生成的
-p,–package PACKAGE_FILE:用于实现未安装的程序包的安装后生成哪些文件而进行的查询
–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供
–whatrequires CAPABILITY:查询指定的CAPABILITY依赖于哪个程序包
[query-options]
–changelog :查询程序的日志,就是它的故事
-l:列出一个程序包安装生成所有的文件列表
-i,–info 程序包相关的信息,版本号,大小,包组
-c,–configfiles :查询指定程序包的配置文件
-d,–docfiles,查询指定的程序包的帮助文档
–provides:查询指定程序提供了什么功能
-R,–requires :查询指定程序包的依赖关系
–scripts :查询定指定程序包中使用的脚本
校验:
-V:校验查询,查询安装后文件是否被修改过
rpm -V 程序
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities
导入校验方式:
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 : 导入公钥
手动验证:rpm -K PACKAGE_FILE
重建数据库
/var/lib/rpm ; rpm数据库位置
rpm查询操作就是基于此数据库实现的
rpm { –initdb | –rebuilddb } [–dbpath=/tmp/rpm]
–initdb :初始化数据库,当前无数据库时,可实现创建一个新的数据库,当前有时不执行任何操作
–rebuilddb:重新构建,有数据库,但是不完整
第三、yum源安装
yum源安装—>配置文件指定服务器(URL:统一资源配置服务)—>匹配包列表文件—>下载相关联的程序包安装,yum repository:yum repos;存在rpm包的库,以及包相关的元数据文件(存放特定目录下:repodata)
支持的文件服务器有:ftp:// ;http://; nfs:// ; file:///
yum的客服端:配置文件
/etc/yum.conf : 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo ;为仓库的指向提供配置
仓库的定义:查询文档(man yum.conf),基本格式
[repositoryid]
name=some name for this repository
baseurl=url://path/to/repository
enabled={1|0} 是否启用此仓库,默认开启的
gpgcheck={1|0} 是否校验签名信息
gpgkey=URL ;指明秘钥文件
enabledgroups:支持组的方式管理此程序包
failovermethod 随机
安装:
yum install package1 ….. ;默认安装最新版本的程序包,可以安装指定 版本号的程序包
yum updates [package1] … 升级
yum check-update ; 检查可用升级
yum remove|erase package1 … 卸载
yum info ;查包的信息
yum provides | […] 查看某文件有哪个包提供的 相当于 rpm -qf PACKAGE_FILE
yum clean [packages|metadata|all} 清楚本地指定相关缓存
yum search string1 [….] 以指定关键字搜索程序包名以及summary信息
yum deplist package1 … 查看指定包的依赖关系
yum history : 查看使用yum 操作的相关事务历史(使用yum的日志) ,stats :查看统计数据
–nogpgcheck 不检查秘钥
-y 自动选择“yes”
-q 安静安装,不输出信息
-noplugins:禁用所有插件
-
yum的repo配置文件中可用的变量
$releasever:当前系统的发新版的主版本号
$arch:系统架构
$basearch:基础平台
$YUM0-YUM9 ;自定义的变量
比如配置本地光盘的Package ,(挂载到/mnt/cdrom
备份原有的.repo文件,vim /etc/yum.repos.d/CentOS-local.repo,如下:
[Base]
name=CentOS Linux release 7.3
baseurl=file:///mnt/cdrom/
enable=1
gpgcheck=1
gpgkey=file:///media/RPM-GPG-KEY-CentOS-7
实例:
lrzsz安装
rpm -ivh /home/giveup/soft/lrzsz-0.12.20-27.1.el6.x86_64.rpm
安装zsh为例,利用yum源安装
~]# yum install zsh
原创文章,作者:不忘初衷,如若转载,请注明出处:http://www.178linux.com/66369
评论列表(1条)
yum可结果后面的http进行搭建,加油!!!